diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index d7a4516d2a..109c4a5930 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -23,15 +23,12 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.6.2 (Default) + - 1.7.0 (Default) - upcoming (Edge) + - 1.6.2 - 1.6.1 - 1.6.0 - - 1.5.3 - - 1.5.2 - - 1.5.1 - - 1.5.0 - - pre-1.5.0 + - pre-1.6.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index 0c3378eb3f..74e13a0a35 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -23,15 +23,12 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.6.2 (Default) + - 1.7.0 (Default) - upcoming (Edge) + - 1.6.2 - 1.6.1 - 1.6.0 - - 1.5.3 - - 1.5.2 - - 1.5.1 - - 1.5.0 - - pre-1.5.0 + - pre-1.6.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index 538dae0383..c449e8b648 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -23,15 +23,12 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.6.2 (Default) + - 1.7.0 (Default) - upcoming (Edge) + - 1.6.2 - 1.6.1 - 1.6.0 - - 1.5.3 - - 1.5.2 - - 1.5.1 - - 1.5.0 - - pre-1.5.0 + - pre-1.6.0 validations: required: true - type: input diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 930d20a018..612c771871 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -11,6 +11,9 @@ +## Feature(s) this PR does NOT handle: + + ## **Discord contact info** - \ No newline at end of file + diff --git a/.gitignore b/.gitignore index fa01e7526f..af9009dd01 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,6 @@ sound/**/*.bin sound/songs/midi/*.s tools/agbcc *.map -*.ld *.bat *.dump *.sa* diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d599aaf3f..5b56aca136 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,122 +1,5 @@ -# Pokeemerald-Expansion Changelog +# Pokeemerald-Expansion Changelogs -# Version 1.6.2 +## [Version 1.7.0](docs/changelogs/1.7.0.md) - Feature Release -## 🌋 *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 +## [Version 1.6.2](docs/changelogs/1.6.2.md) - Bugfix release diff --git a/Makefile b/Makefile index 443ea1bb20..db883cb60c 100644 --- a/Makefile +++ b/Makefile @@ -146,8 +146,6 @@ ifneq ($(MODERN),1) CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef endif -LDFLAGS = -Map ../../$(MAP) - SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c GFX := tools/gbagfx/gbagfx$(EXE) AIF := tools/aif2pcm/aif2pcm$(EXE) @@ -280,8 +278,7 @@ clean-check-tools: @$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);) mostlyclean: tidynonmodern tidymodern tidycheck - rm -f $(SAMPLE_SUBDIR)/*.bin - rm -f $(CRY_SUBDIR)/*.bin + find sound -iname '*.bin' -exec rm {} + rm -f $(MID_SUBDIR)/*.s find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc @@ -466,19 +463,20 @@ endef $(foreach src, $(TEST_SRCS), $(eval $(call TEST_DEP,$(patsubst $(TEST_SUBDIR)/%.c,$(TEST_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(TEST_SUBDIR)/%.c,%,$(src))))) ifeq ($(MODERN),0) -LD_SCRIPT := ld_script.txt +LD_SCRIPT := ld_script.ld LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld else -LD_SCRIPT := ld_script_modern.txt +LD_SCRIPT := ld_script_modern.ld LD_SCRIPT_DEPS := endif $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld +LDFLAGS = -Map ../../$(MAP) $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " - @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) + @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent $(ROM): $(ELF) @@ -489,7 +487,7 @@ agbcc: all modern: all -LD_SCRIPT_TEST := ld_script_test.txt +LD_SCRIPT_TEST := ld_script_test.ld $(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS) cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT_TEST) > ld_script_test.ld diff --git a/README.md b/README.md index fc2a012780..c48adac1fe 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,38 @@ -# 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.7.0 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) - [Overworld configurations](/include/config/overworld.h) - [Debug configurations](/include/config/debug.h) -- Upgraded battle engine. +- ***Upgraded battle engine.*** - Gen5+ damage calculation. - 2v2 Wild battles support. - 1v2/2v1 battles support. - Fairy Type (configurable). - - Physical/Special/Status Category Split (configurable). + - Physical/Special/Status Category (configurable). - New moves and abilities up to Scarlet and Violet. - Custom Contest data up to SwSh, newer moves are WIP. ([source](https://pokemonurpg.com/info/contests/rse-move-list/)) - - [Form change tables](/src/data/pokemon/form_change_tables.h) that allow customizing most form changes. - - Mega Evolution, Primal Reversion and Ultra Burst. + - Mega Evolution + - Primal Reversion + - Ultra Burst - Z-Moves - Gen 8+ damaging moves are given power extrapolated from Gen 7. - Gen 8+ status moves have no additional effects, like Healing Wish. + - Dynamax + - Gigantamax forms - Initial battle parameters - Queueing stat boosts (aka, Totem Boosts) - Setting Terrains. @@ -31,6 +40,7 @@ The pokeemerald Expansion is a feature branch meant to be integrated into existi - Quick Poké Ball selection in Wild Battles - Press `R` to use last selected Poké Ball. - Hold `R` to change selection with the D-Pad. + - Run option shortcut - Faster battle intro - Message and animation/cry happens at the same time. - Faster HP drain. @@ -52,7 +62,7 @@ The pokeemerald Expansion is a feature branch meant to be integrated into existi - Level 100 Pokémon can earn EVs. - Inverse battle support. - TONS of other features listed [here](/include/config/battle.h). -- Full Trainer customization +- ***Full Trainer customization*** - Nickname, EVs, IVs, moves, ability, ball, friendship, nature, gender, shininess. - Custom tag battle support (teaming up an NPC in a double battle). - Sliding trainer messages. @@ -61,11 +71,12 @@ The pokeemerald Expansion is a feature branch meant to be integrated into existi - New flag options to let you customize the intelligence of your trainers. - Faster calculations. - Specify Poké Balls by Trainer class. -- Pokémon Species from Generations 1-8. - - Option to disable unwanted generations. +- ***Pokémon Species from Generations 1-9.*** + - Simplified process to add new Pokémon. + - Option to disable unwanted families. - Updated sprites to DS style. - Updated stats, types, abilities and egg groups (configurable). - - Updated Hoenn's Regional Dex to match ORAS'. + - Updated Hoenn's Regional Dex to match ORAS' (configurable). - Updated National Dex incorporating the new species. - Sprite and animation visualizer. - Accesible by pressing `Select` on a Pokémon's Summary screen. @@ -80,46 +91,56 @@ The pokeemerald Expansion is a feature branch meant to be integrated into existi - Available via Ability Patch. - Compatible with Ghoul's DexNav branch. - All gender differences. - - Different icons for female Hippopotas and Hippowdon - - 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts -- Breeding + - Custom female icons for female Hippopotas Hippowdon, Pikachu and Wobbufett + - 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts. +- ***Customizable form change tables. Full list of methods [here](/include/constants/form_change_types.h).*** + - Item holding (eg. Giratina/Arceus) + - Item using (eg. Oricorio) + - Time of day option for Shaymin + - Fainting + - Battle begin and end (eg. Xerneas) + - Move change option for Zacian/Zamazenta + - Battle end in terrains (eg. Burmy) + - Switched in battle (eg. Palafin) + - HP Threshold (eg. Darmanitan) + - Weather (eg. Castform) + - End of turn (eg. Morpeko) + - Time of day (Shaymin) +- ***Breeding Improvements*** - Incense Baby Pokémon now happen automatically (configurable). - - Level 1 eggs. - - Poké Ball inheriting. - - Egg Move Transfer, including Mirror Herb. - - Nature inheriting 100% of the time with Everstone - - Gen6+ Ability inheriting. -- Items from newer Generations. Full list [here](/include/constants/items.h). + - Level 1 eggs (configurable). + - Poké Ball inheriting (configurable). + - Egg Move Transfer, including Mirror Herb (configurable). + - Nature inheriting 100% of the time with Everstone (configurable) + - Gen6+ Ability inheriting (configurable). +- ***Items from newer Generations. Full list [here](/include/constants/items.h).*** - ***Gen 6+ Exp. Share*** (configurable) + - Berserk Gene + - Most battle items from Gen 4+ - Existing item data but missing effects: - Mints - Dynamax Candy - Mulches - - Rotom Catalog - - DNA Splicers - - Zygarde Cube - - N Solarizer/Lunarizer - - Reins of Unity - - Dynamax Band - Gimmighoul Coin - Booster Energy - Tera Shards - Tera Orb -- Feature branches incorporated: - - [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by Xhyzi. +- ***Feature branches incorporated (with permission):*** + - [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by @Xhyzi. - A small signature from all of us to show the collective effort in the project :) - - [Overworld debug](https://github.com/TheXaman/pokeemerald/tree/tx_debug_system) by TheXaman + - [Overworld debug](https://github.com/TheXaman/pokeemerald/tree/tx_debug_system) by @TheXaman - May be disabled. - Accesible by pressing `R + Start` in the overworld by default. - **Additional features**: - *Clear Boxes*: cleans every Pokémon from the Boxes. - *Hatch an Egg*: lets you choose an Egg in your party and immediatly hatch it. - - [HGSS Pokédex](https://github.com/TheXaman/pokeemerald/tree/tx_pokedexPlus_hgss) by TheXaman + - [HGSS Pokédex](https://github.com/TheXaman/pokeemerald/tree/tx_pokedexPlus_hgss) by @TheXaman - May be disabled. - **Additional features**: - *Support for new evolution methods*. - *Dark Mode*. -- Other features + - [Nature Colors](https://github.com/DizzyEggg/pokeemerald/tree/nature_color) in summary screen by @DizzyEggg +- ***Other features*** - Pressing B while holding a Pokémon drops them like in modern games (configurable). - Running indoors (configurable). - Configurable overworld poison damage. @@ -136,16 +157,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.2`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.7.0`. ### 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 +183,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_ai_script.inc b/asm/macros/battle_ai_script.inc deleted file mode 100644 index eeea15dba6..0000000000 --- a/asm/macros/battle_ai_script.inc +++ /dev/null @@ -1,783 +0,0 @@ - .macro if_random_less_than param0:req, param1:req - .byte 0x0 - .byte \param0 - .4byte \param1 - .endm - - .macro if_random_greater_than param0:req, param1:req - .byte 0x1 - .byte \param0 - .4byte \param1 - .endm - - .macro if_random_equal param0:req, param1:req - .byte 0x2 - .byte \param0 - .4byte \param1 - .endm - - .macro if_random_not_equal param0:req, param1:req - .byte 0x3 - .byte \param0 - .4byte \param1 - .endm - - .macro score param0:req - .byte 0x4 - .byte \param0 - .endm - - .macro if_hp_less_than battler:req, param1:req, param2:req - .byte 0x5 - .byte \battler - .byte \param1 - .4byte \param2 - .endm - - .macro if_hp_more_than battler:req, param1:req, param2:req - .byte 0x6 - .byte \battler - .byte \param1 - .4byte \param2 - .endm - - .macro if_hp_equal battler:req, param1:req, param2:req - .byte 0x7 - .byte \battler - .byte \param1 - .4byte \param2 - .endm - - .macro if_hp_not_equal battler:req, param1:req, param2:req - .byte 0x8 - .byte \battler - .byte \param1 - .4byte \param2 - .endm - - .macro if_status battler:req, status1:req, param2:req - .byte 0x9 - .byte \battler - .4byte \status1 - .4byte \param2 - .endm - - .macro if_not_status battler:req, status1:req, param2:req - .byte 0xa - .byte \battler - .4byte \status1 - .4byte \param2 - .endm - - .macro if_status2 battler:req, status2:req, param2:req - .byte 0xb - .byte \battler - .4byte \status2 - .4byte \param2 - .endm - - .macro if_not_status2 battler:req, status2:req, param2:req - .byte 0xc - .byte \battler - .4byte \status2 - .4byte \param2 - .endm - - .macro if_status3 battler:req, status3:req, param2:req - .byte 0xd - .byte \battler - .4byte \status3 - .4byte \param2 - .endm - - .macro if_not_status3 battler:req, status3:req, param2:req - .byte 0xe - .byte \battler - .4byte \status3 - .4byte \param2 - .endm - - .macro if_side_affecting battler:req, sidestatus:req, param2:req - .byte 0xf - .byte \battler - .4byte \sidestatus - .4byte \param2 - .endm - - .macro if_not_side_affecting battler:req, sidestatus:req, param2:req - .byte 0x10 - .byte \battler - .4byte \sidestatus - .4byte \param2 - .endm - - .macro if_less_than param0:req, param1:req - .byte 0x11 - .byte \param0 - .4byte \param1 - .endm - - .macro if_more_than param0:req, param1:req - .byte 0x12 - .byte \param0 - .4byte \param1 - .endm - - .macro if_equal param0:req, param1:req - .byte 0x13 - .byte \param0 - .4byte \param1 - .endm - - .macro if_not_equal param0:req, param1:req - .byte 0x14 - .byte \param0 - .4byte \param1 - .endm - - .macro if_less_than_ptr param0:req, param1:req - .byte 0x15 - .4byte \param0 - .4byte \param1 - .endm - - .macro if_more_than_ptr param0:req, param1:req - .byte 0x16 - .4byte \param0 - .4byte \param1 - .endm - - .macro if_equal_ptr param0:req, param1:req - .byte 0x17 - .4byte \param0 - .4byte \param1 - .endm - - .macro if_not_equal_ptr param0:req, param1:req - .byte 0x18 - .4byte \param0 - .4byte \param1 - .endm - - .macro if_move param0:req, param1:req - .byte 0x19 - .2byte \param0 - .4byte \param1 - .endm - - .macro if_not_move param0:req, param1:req - .byte 0x1a - .2byte \param0 - .4byte \param1 - .endm - - .macro if_in_bytes param0:req, param1:req - .byte 0x1b - .4byte \param0 - .4byte \param1 - .endm - - .macro if_not_in_bytes param0:req, param1:req - .byte 0x1c - .4byte \param0 - .4byte \param1 - .endm - - .macro if_in_hwords param0:req, param1:req - .byte 0x1d - .4byte \param0 - .4byte \param1 - .endm - - .macro if_not_in_hwords param0:req, param1:req - .byte 0x1e - .4byte \param0 - .4byte \param1 - .endm - - .macro if_user_has_attacking_move param0:req - .byte 0x1f - .4byte \param0 - .endm - - .macro if_user_has_no_attacking_moves param0:req - .byte 0x20 - .4byte \param0 - .endm - - .macro get_turn_count - .byte 0x21 - .endm - - .macro get_type param0:req - .byte 0x22 - .byte \param0 - .endm - - .macro get_considered_move_power - .byte 0x23 - .endm - - .macro get_how_powerful_move_is - .byte 0x24 - .endm - - .macro get_last_used_bank_move battler:req - .byte 0x25 - .byte \battler - .endm - - .macro if_equal_u32 param0:req, param1:req - .byte 0x26 - .4byte \param0 - .4byte \param1 - .endm - - .macro if_not_equal_u32 param0:req, param1:req - .byte 0x27 - .4byte \param0 - .4byte \param1 - .endm - - .macro if_user_goes param0:req, param1:req - .byte 0x28 - .byte \param0 - .4byte \param1 - .endm - - .macro if_cant_use_belch battler:req, ptr:req - .byte 0x29 - .byte \battler - .4byte \ptr - .endm - - .macro nop_2A - .byte 0x2a - .endm - - .macro nop_2B - .byte 0x2b - .endm - - .macro count_usable_party_mons battler:req - .byte 0x2c - .byte \battler - .endm - - .macro get_considered_move - .byte 0x2d - .endm - - .macro get_considered_move_effect - .byte 0x2e - .endm - - .macro get_ability battler:req - .byte 0x2f - .byte \battler - .endm - - .macro get_highest_type_effectiveness - .byte 0x30 - .endm - - .macro if_type_effectiveness param0:req, param1:req - .byte 0x31 - .byte \param0 - .4byte \param1 - .endm - - .macro nop_32 - .byte 0x32 - .endm - - .macro nop_33 - .byte 0x33 - .endm - - .macro if_status_in_party battler:req, status1:req, param2:req - .byte 0x34 - .byte \battler - .4byte \status1 - .4byte \param2 - .endm - - .macro if_status_not_in_party battler:req, status1:req, param2:req - .byte 0x35 - .byte \battler - .4byte \status1 - .4byte \param2 - .endm - - .macro get_weather - .byte 0x36 - .endm - - .macro if_effect param0:req, param1:req - .byte 0x37 - .2byte \param0 - .4byte \param1 - .endm - - .macro if_not_effect param0:req, param1:req - .byte 0x38 - .2byte \param0 - .4byte \param1 - .endm - - .macro if_stat_level_less_than battler:req, stat:req, param2:req, param3:req - .byte 0x39 - .byte \battler - .byte \stat - .byte \param2 - .4byte \param3 - .endm - - .macro if_stat_level_more_than battler:req, stat:req, param2:req, param3:req - .byte 0x3a - .byte \battler - .byte \stat - .byte \param2 - .4byte \param3 - .endm - - .macro if_stat_level_equal battler:req, stat:req, param2:req, param3:req - .byte 0x3b - .byte \battler - .byte \stat - .byte \param2 - .4byte \param3 - .endm - - .macro if_stat_level_not_equal battler:req, stat:req, param2:req, param3:req - .byte 0x3c - .byte \battler - .byte \stat - .byte \param2 - .4byte \param3 - .endm - - .macro if_can_faint param0:req - .byte 0x3d - .4byte \param0 - .endm - - .macro if_cant_faint param0:req - .byte 0x3e - .4byte \param0 - .endm - - .macro if_has_move battler:req, param1:req, param2:req - .byte 0x3f - .byte \battler - .2byte \param1 - .4byte \param2 - .endm - - .macro if_doesnt_have_move battler:req, param1:req, param2:req - .byte 0x40 - .byte \battler - .2byte \param1 - .4byte \param2 - .endm - - .macro if_has_move_with_effect battler:req, param1:req, param2:req - .byte 0x41 - .byte \battler - .byte \param1 - .4byte \param2 - .endm - - .macro if_doesnt_have_move_with_effect battler:req, param1:req, param2:req - .byte 0x42 - .byte \battler - .byte \param1 - .4byte \param2 - .endm - - .macro if_any_move_disabled_or_encored battler:req, param1:req, param2:req - .byte 0x43 - .byte \battler - .byte \param1 - .4byte \param2 - .endm - - .macro if_curr_move_disabled_or_encored param0:req, param1:req - .byte 0x44 - .byte \param0 - .4byte \param1 - .endm - - .macro flee - .byte 0x45 - .endm - - .macro if_random_safari_flee param0:req - .byte 0x46 - .4byte \param0 - .endm - - .macro watch - .byte 0x47 - .endm - - .macro get_hold_effect battler:req - .byte 0x48 - .byte \battler - .endm - - .macro get_gender battler:req - .byte 0x49 - .byte \battler - .endm - - .macro is_first_turn_for battler:req - .byte 0x4a - .byte \battler - .endm - - .macro get_stockpile_count battler:req - .byte 0x4b - .byte \battler - .endm - - .macro is_double_battle - .byte 0x4c - .endm - - .macro get_used_held_item battler:req - .byte 0x4d - .byte \battler - .endm - - .macro get_move_type_from_result - .byte 0x4e - .endm - - .macro get_move_power_from_result - .byte 0x4f - .endm - - .macro get_move_effect_from_result - .byte 0x50 - .endm - - .macro get_protect_count battler:req - .byte 0x51 - .byte \battler - .endm - - .macro if_move_flag flag jumpptr - .byte 0x52 - .4byte \flag - .4byte \jumpptr - .endm - - .macro if_field_status flag jumpptr - .byte 0x53 - .4byte \flag - .4byte \jumpptr - .endm - - .macro get_move_accuracy - .byte 0x54 - .endm - - .macro call_if_eq value, ptr - .byte 0x55 - .2byte \value - .4byte \ptr - .endm - - .macro call_if_move_flag flag ptr - .byte 0x56 - .4byte \flag - .4byte \ptr - .endm - - .macro nop_57 - .byte 0x57 - .endm - - .macro call param0:req - .byte 0x58 - .4byte \param0 - .endm - - .macro goto param0:req - .byte 0x59 - .4byte \param0 - .endm - - .macro end - .byte 0x5a - .endm - - .macro if_level_cond param0:req, param1:req - .byte 0x5b - .byte \param0 - .4byte \param1 - .endm - - .macro if_target_taunted param0:req - .byte 0x5c - .4byte \param0 - .endm - - .macro if_target_not_taunted param0:req - .byte 0x5d - .4byte \param0 - .endm - - .macro if_target_is_ally param0:req - .byte 0x5e - .4byte \param0 - .endm - - .macro is_of_type battler:req, type:req - .byte 0x5f - .byte \battler - .byte \type - .endm - - .macro check_ability battler:req, ability:req - .byte 0x60 - .byte \battler - .byte \ability - .endm - - .macro if_flash_fired battler:req, param1:req - .byte 0x61 - .byte \battler - .4byte \param1 - .endm - - .macro if_holds_item battler:req, param1:req, param2:req - .byte 0x62 - .byte \battler - .2byte \param1 - .4byte \param2 - .endm - - .macro get_ally_chosen_move - .byte 0x63 - .endm - - .macro if_has_no_attacking_moves battler:req, param1:req - .byte 0x64 - .byte \battler - .4byte \param1 - .endm - - .macro get_hazards_count battler:req, effect:req - .byte 0x65 - .byte \battler - .2byte \effect - .endm - - .macro if_doesnt_hold_berry battler:req, ptr:req - .byte 0x66 - .byte \battler - .4byte \ptr - .endm - - .macro if_share_type battler1:req, battler2:req, ptr:req - .byte 0x67 - .byte \battler1 - .byte \battler2 - .4byte \ptr - .endm - - .macro if_cant_use_last_resort battler:req, ptr:req - .byte 0x68 - .byte \battler - .4byte \ptr - .endm - - .macro if_has_move_with_split battler:req, split:req, ptr:req - .byte 0x69 - .byte \battler - .byte \split - .4byte \ptr - .endm - - .macro if_has_no_move_with_split battler:req, split:req, ptr:req - .byte 0x6A - .byte \battler - .byte \split - .4byte \ptr - .endm - - .macro if_physical_moves_unusable attacker:req, target:req, ptr:req - .byte 0x6B - .byte \attacker - .byte \target - .4byte \ptr - .endm - - .macro if_ai_can_go_down ptr:req - .byte 0x6C - .4byte \ptr - .endm - - .macro if_has_move_with_type battler:req, type:req, ptr:req - .byte 0x6D - .byte \battler - .byte \type - .4byte \ptr - .endm - - .macro if_no_move_used battler:req, ptr:req - .byte 0x6E - .byte \battler - .4byte \ptr - .endm - - .macro if_has_move_with_flag battler:req, flag:req, ptr:req - .byte 0x6F - .byte \battler - .4byte \flag - .4byte \ptr - .endm - - .macro if_battler_absent battler:req, ptr:req - .byte 0x70 - .byte \battler - .4byte \ptr - .endm - - .macro if_grounded battler:req, ptr:req - .byte 0x71 - .byte \battler - .4byte \ptr - .endm - - .macro get_best_dmg_hp_percent - .byte 0x72 - .endm - - .macro get_curr_dmg_hp_percent - .byte 0x73 - .endm - - .macro get_move_split_from_result - .byte 0x74 - .endm - - .macro get_considered_move_split - .byte 0x75 - .endm - - .macro get_considered_move_target - .byte 0x76 - .endm - - .macro compare_speeds battler1:req, battler2:req - .byte 0x77 - .byte \battler1 - .byte \battler2 - .endm - - .macro is_wakeup_turn battler:req - .byte 0x78 - .byte \battler - .endm - - .macro if_has_move_with_accuracy_lt battler:req, value:req, ptr:req - .byte 0x79 - .byte \battler - .byte \value - .4byte \ptr - .endm - -@ useful script macros - .macro if_has_physical_move battler:req, ptr:req - if_has_move_with_split \battler, SPLIT_PHYSICAL, \ptr - .endm - - .macro if_has_no_physical_move battler:req, ptr:req - if_has_no_move_with_split \battler, SPLIT_PHYSICAL, \ptr - .endm - - .macro if_has_special_move battler:req, ptr:req - if_has_move_with_split \battler, SPLIT_SPECIAL, \ptr - .endm - - .macro if_has_no_special_move battler:req, ptr:req - if_has_no_move_with_split \battler, SPLIT_SPECIAL, \ptr - .endm - - .macro if_holds_no_item battler, ptr:req - if_holds_item \battler, 0, \ptr - .endm - - .macro get_curr_move_type - get_type AI_TYPE_MOVE - .endm - - .macro get_user_type1 - get_type AI_TYPE1_USER - .endm - - .macro get_user_type2 - get_type AI_TYPE2_USER - .endm - - .macro get_target_type1 - get_type AI_TYPE1_TARGET - .endm - - .macro get_target_type2 - get_type AI_TYPE2_TARGET - .endm - - .macro if_ability battler:req, ability:req, ptr:req - check_ability \battler, \ability - if_equal 1, \ptr - .endm - - .macro if_no_ability battler:req, ability:req, ptr:req - check_ability \battler, \ability - if_equal 0, \ptr - .endm - - .macro if_type battler:req, type:req, ptr:req - is_of_type \battler, \type - if_equal 1, \ptr - .endm - - .macro if_no_type battler:req, type:req, ptr:req - is_of_type \battler, \type - if_equal 0, \ptr - .endm - - .macro if_target_faster ptr:req - if_user_goes 1, \ptr - .endm - - .macro if_user_faster ptr:req - if_user_goes 0, \ptr - .endm - - .macro if_double_battle ptr:req - is_double_battle - if_equal 1, \ptr - .endm - - .macro if_not_double_battle ptr:req - is_double_battle - if_equal 0, \ptr - .endm - - .macro if_any_move_disabled battler:req, ptr:req - if_any_move_disabled_or_encored \battler, 0, \ptr - .endm - - .macro if_any_move_encored battler:req, ptr:req - if_any_move_disabled_or_encored \battler, 1, \ptr - .endm - - .macro call_if_always_hit ptr:req - get_move_accuracy - call_if_eq 0, \ptr - .endm diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index f53595c16d..6b7704acec 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -364,11 +364,6 @@ .byte 0x3f .endm - .macro jumpifaffectedbyprotect failInstr:req - .byte 0x40 - .4byte \failInstr - .endm - .macro call instr:req .byte 0x41 .4byte \instr @@ -1094,8 +1089,9 @@ .4byte \failInstr .endm - .macro trycopyability failInstr:req + .macro trycopyability battler:req, failInstr:req .byte 0xd3 + .byte \battler .4byte \failInstr .endm @@ -1319,6 +1315,15 @@ .byte \battler .4byte \jumpInstr .endm + + .macro allyswitchswapbattlers + callnative BS_AllySwitchSwapBattler + .endm + + .macro allyswitchfailchance jumpInstr:req + callnative BS_AllySwitchFailChance + .4byte \jumpInstr + .endm .macro jumpifholdeffect battler:req, holdEffect:req, jumpInstr:req callnative BS_JumpIfHoldEffect @@ -1382,6 +1387,22 @@ 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 trycopycat failInstr:req + callnative BS_TryCopycat + .4byte \failInstr + .endm + .macro setzeffect callnative BS_SetZEffect .endm @@ -1520,6 +1541,33 @@ .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 + + .macro trydefog clear:req, failInstr:req + callnative BS_TryDefog + .byte \clear + .4byte \failInstr + .endm + + .macro trytriggerstatusform + callnative BS_TryTriggerStatusForm + .endm + @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES @@ -1711,11 +1759,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 @@ -1784,11 +1827,6 @@ .4byte \jumpInstr .endm - .macro trycopycat failInstr:req - various BS_ATTACKER, VARIOUS_TRY_COPYCAT - .4byte \failInstr - .endm - .macro showabilitypopup battler:req various \battler, VARIOUS_ABILITY_POPUP .endm @@ -1797,12 +1835,6 @@ various \battler, VARIOUS_UPDATE_ABILITY_POPUP .endm - .macro defogclear battler:req, clear:req, failInstr:req - various \battler, VARIOUS_DEFOG - .byte \clear - .4byte \failInstr - .endm - .macro jumpiftargetally jumpInstr:req various BS_ATTACKER, VARIOUS_JUMP_IF_TARGET_ALLY .4byte \jumpInstr @@ -2175,14 +2207,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 @@ -2307,6 +2331,15 @@ goto \jumpInstr .endm + .macro setallytonextattacker jumpInstr:req + jumpifbyte CMP_GREATER_THAN, gBattlerAttacker, 0x1, 1f + addbyte gBattlerAttacker, 0x2 + goto \jumpInstr + 1: + subbyte gBattlerAttacker, 0x2 + goto \jumpInstr + .endm + .macro jumpifleafguardprotected battler:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED .4byte \jumpInstr diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc index a43dc07ac5..b0bb1f35ee 100644 --- a/asm/macros/movement.inc +++ b/asm/macros/movement.inc @@ -162,5 +162,7 @@ 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 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 be0ae0adbb..4cdb0ecb99 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -860,6 +860,21 @@ gBattleAnims_Moves:: .4byte Move_MATCHA_GOTCHA .4byte Move_SYRUP_BOMB .4byte Move_IVY_CUDGEL + .4byte Move_833 + .4byte Move_834 + .4byte Move_835 + .4byte Move_836 + .4byte Move_837 + .4byte Move_838 + .4byte Move_839 + .4byte Move_840 + .4byte Move_841 + .4byte Move_842 + .4byte Move_843 + .4byte Move_844 + .4byte Move_845 + .4byte Move_846 + .4byte Move_847 @@@@ Z MOVES .4byte Move_BREAKNECK_BLITZ .4byte Move_ALL_OUT_PUMMELING @@ -1010,6 +1025,9 @@ gBattleAnims_General:: .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:: @@ -5607,6 +5625,11 @@ Move_QUICK_GUARD: end Move_ALLY_SWITCH: + call SetPsychicBackground + createvisualtask AnimTask_AllySwitchAttacker, 2 + createvisualtask AnimTask_AllySwitchPartner, 2 + call DoubleTeamAnimRet + call UnsetPsychicBg end Move_SCALD: @@ -15610,6 +15633,7 @@ Move_FREEZING_GLARE:: Move_FIERY_WRATH:: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_PURPLE_RING + monbg ANIM_DEF_PARTNER playsewithpan SE_M_SACRED_FIRE2, 0xc0 createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x2, 0x0, 0xE, 0x0 createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_ATTACKER, 0x4, 0x0, 0x8, 0x1F @@ -15630,6 +15654,7 @@ Move_FIERY_WRATH:: createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_DEF_SIDE, 0x2, 0x9, 0x0, 0x3006 createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x1, 0xE, 0x0, 0x0 waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER end FieryWrathGeyser: @@ -15647,6 +15672,7 @@ FieryWrathGeyser: delay 0x0 createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_TARGET, 0xfffc, 0x10 createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_DEF_PARTNER, 0xfffc, 0x10 + delay 0x0 createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_TARGET, 0x100D, 0x10 createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_DEF_PARTNER, 0x100D, 0x10 delay 0x0 @@ -15679,10 +15705,10 @@ FieryWrathGeyser: delay 0x0 createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_TARGET, 0xfff0, 0x10 createsprite gSpriteTemplate_FieryWrathGeyser, ANIM_TARGET, 4, ANIM_DEF_PARTNER, 0xfff0, 0x10 + delay 0x0 return - @Credits to Skeli Move_THUNDEROUS_KICK:: loadspritegfx ANIM_TAG_IMPACT @@ -16832,6 +16858,77 @@ SyrupBombSpeedDropYellow: waitforvisualfinish end +Move_CHILLY_RECEPTION:: + loadspritegfx ANIM_TAG_CONFETTI + loadspritegfx ANIM_TAG_PINK_CLOUD + loadspritegfx ANIM_TAG_ICE_CRYSTALS + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 1, 0, 13, RGB_BLACK + delay 60 + waitforvisualfinish + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 1, 13, 0, RGB_BLACK + createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 + waitforvisualfinish + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_ROAR + setalpha 12, 4 + monbg ANIM_ATTACKER + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 122, 3, -14, 18, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 121, 3, 14, 6, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 120, 3, -12, 12, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 119, 3, 14, 18, 24 + createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 118, 3, 0, 0, 24 + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + call CreateFlatterConfetti + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 10 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 0, 3, RGB_WHITE + playsewithpan SE_M_GUST, SOUND_PAN_ATTACKER + call ChillyReceptionSnowballs + call ChillyReceptionSnowballs + call ChillyReceptionSnowballs + call ChillyReceptionSnowballs + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET + waitforvisualfinish + waitsound + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 3, 0, RGB_WHITE + end +ChillyReceptionSnowballs: + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -150, 24, 0, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -100, 24, -10, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -100, 24, 10, 56, -4, 3, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -200, 24, -20, 56, -4, 5, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -150, 24, 15, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -200, 24, -20, 56, 4, 4, 0 + delay 3 + createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 200, -200, 24, 20, 56, 4, 4, 0 + delay 3 + return + Move_TERA_BLAST:: Move_AXE_KICK:: Move_LAST_RESPECTS:: @@ -16859,7 +16956,6 @@ Move_RUINATION:: Move_COLLISION_COURSE:: Move_ELECTRO_DRIFT:: Move_SHED_TAIL:: -Move_CHILLY_RECEPTION:: Move_TIDY_UP:: Move_POUNCE:: Move_TRAILBLAZE:: @@ -16887,6 +16983,21 @@ Move_IVY_CUDGEL:: Move_NONE: Move_MIRROR_MOVE: Move_POUND: +Move_833: +Move_834: +Move_835: +Move_836: +Move_837: +Move_838: +Move_839: +Move_840: +Move_841: +Move_842: +Move_843: +Move_844: +Move_845: +Move_846: +Move_847: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 @@ -19242,9 +19353,8 @@ Move_TELEPORT: call UnsetPsychicBg waitforvisualfinish end - -Move_DOUBLE_TEAM: - createvisualtask AnimTask_DoubleTeam, 2 + +DoubleTeamAnimRet: setalpha 12, 8 monbg ANIM_ATK_PARTNER playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER @@ -19268,6 +19378,11 @@ Move_DOUBLE_TEAM: clearmonbg ANIM_ATK_PARTNER blendoff delay 1 + return + +Move_DOUBLE_TEAM: + createvisualtask AnimTask_DoubleTeam, 2 + call DoubleTeamAnimRet end Move_MINIMIZE: @@ -27060,6 +27175,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 @@ -27070,7 +27189,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 @@ -27303,8 +27422,6 @@ General_RestoreBg: waitbgfadein end -end - General_ZMoveActivate: loadspritegfx ANIM_TAG_FOCUS_ENERGY @focus energy loadspritegfx ANIM_TAG_Z_MOVE_SYMBOL @Z-Move Symbol @@ -27515,6 +27632,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 9decc8c1d7..9cb075b77c 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -69,7 +69,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectRecoilIfMiss @ EFFECT_RECOIL_IF_MISS .4byte BattleScript_EffectMist @ EFFECT_MIST .4byte BattleScript_EffectFocusEnergy @ EFFECT_FOCUS_ENERGY - .4byte BattleScript_EffectHit @ EFFECT_RECOIL_25 + .4byte BattleScript_EffectHit @ EFFECT_RECOIL .4byte BattleScript_EffectConfuse @ EFFECT_CONFUSE .4byte BattleScript_EffectAttackUp2 @ EFFECT_ATTACK_UP_2 .4byte BattleScript_EffectDefenseUp2 @ EFFECT_DEFENSE_UP_2 @@ -123,7 +123,6 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectSpite @ EFFECT_SPITE .4byte BattleScript_EffectHit @ EFFECT_FALSE_SWIPE .4byte BattleScript_EffectHealBell @ EFFECT_HEAL_BELL - .4byte BattleScript_EffectHit @ EFFECT_ALWAYS_CRIT .4byte BattleScript_EffectTripleKick @ EFFECT_TRIPLE_KICK .4byte BattleScript_EffectHit @ EFFECT_THIEF .4byte BattleScript_EffectMeanLook @ EFFECT_MEAN_LOOK @@ -215,7 +214,6 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectSnatch @ EFFECT_SNATCH .4byte BattleScript_EffectHit @ EFFECT_LOW_KICK .4byte BattleScript_EffectSecretPower @ EFFECT_SECRET_POWER - .4byte BattleScript_EffectHit @ EFFECT_RECOIL_33 .4byte BattleScript_EffectTeeterDance @ EFFECT_TEETER_DANCE .4byte BattleScript_EffectHitEscape @ EFFECT_HIT_ESCAPE .4byte BattleScript_EffectMudSport @ EFFECT_MUD_SPORT @@ -231,7 +229,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 @@ -303,9 +301,6 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectGrowth @ EFFECT_GROWTH .4byte BattleScript_EffectHit @ EFFECT_UNUSED_279 .4byte BattleScript_EffectLastResort @ EFFECT_LAST_RESORT - .4byte BattleScript_EffectHit @ EFFECT_RECOIL_33_STATUS - .4byte BattleScript_EffectHit @ EFFECT_UNUSED_282 - .4byte BattleScript_EffectHit @ EFFECT_RECOIL_50 .4byte BattleScript_EffectShellSmash @ EFFECT_SHELL_SMASH .4byte BattleScript_EffectShiftGear @ EFFECT_SHIFT_GEAR .4byte BattleScript_EffectDefenseUp3 @ EFFECT_DEFENSE_UP_3 @@ -432,9 +427,40 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectHit @ EFFECT_POPULATION_BOMB .4byte BattleScript_EffectHit @ EFFECT_UNUSED_408 .4byte BattleScript_EffectSaltCure @ EFFECT_SALT_CURE - .4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL + .4byte BattleScript_EffectChillyReception @ EFFECT_CHILLY_RECEPTION .4byte BattleScript_EffectMaxMove @ EFFECT_MAX_MOVE .4byte BattleScript_EffectGlaiveRush @ EFFECT_GLAIVE_RUSH + .4byte BattleScript_EffectBrickBreak @ EFFECT_RAGING_BULL + .4byte BattleScript_EffectHit @ EFFECT_RAGE_FIST + .4byte BattleScript_EffectDoodle @ EFFECT_DOODLE + +BattleScript_EffectDoodle: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + setbyte gBattleCommunication, 0 +BattleScript_EffectDoodle_CopyAbility: + trycopyability BS_ATTACKER, BattleScript_ButItFailed +.if B_ABILITY_POP_UP == TRUE + setbyte sFIXED_ABILITY_POPUP, TRUE + showabilitypopup BS_ATTACKER + pause 60 + sethword sABILITY_OVERWRITE, 0 + updateabilitypopup BS_ATTACKER + pause 20 + destroyabilitypopup + pause 40 +.endif + printstring STRINGID_PKMNCOPIEDFOE + waitmessage B_WAIT_TIME_LONG + switchinabilities BS_ATTACKER + jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd + addbyte gBattleCommunication, 1 + jumpifnoally BS_TARGET, BattleScript_MoveEnd + setallytonextattacker BattleScript_EffectDoodle_CopyAbility + goto BattleScript_MoveEnd BattleScript_EffectGlaiveRush:: call BattleScript_EffectHit_Ret @@ -457,6 +483,154 @@ BattleScript_SyrupBombEndTurn:: BattleScript_SyrupBombTurnDmgEnd: end2 +BattleScript_EffectChillyReception:: + printstring STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE + waitmessage B_WAIT_TIME_LONG + attackcanceler + ppreduce + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalSun + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalRain + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_EffectChillyReceptionBlockedByStrongWinds + call BattleScript_EffectChillyReceptionPlayAnimation + setsnow + call BattleScript_MoveWeatherChangeRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionPlayAnimation: + attackstring + attackanimation + waitanimation + return +BattleScript_EffectChillyReceptionBlockedByPrimalSun: + call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed + call BattleScript_ExtremelyHarshSunlightWasNotLessenedRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionBlockedByPrimalRain: + call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed + call BattleScript_NoReliefFromHeavyRainRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionBlockedByStrongWinds: + call BattleScript_EffectChillyReceptionTrySwitchWeatherFailed + call BattleScript_MysteriousAirCurrentBlowsOnRet + goto BattleScript_MoveSwitch +BattleScript_EffectChillyReceptionTrySwitchWeatherFailed: + jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_FailedFromAtkString + jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_FailedFromAtkString + call BattleScript_EffectChillyReceptionPlayAnimation + return + +BattleScript_CheckPrimalWeather: + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain + jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + return + +BattleScript_MoveSwitch: + jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_MoveSwitchEnd + jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_MoveSwitchEnd + printstring STRINGID_PKMNWENTBACK + waitmessage B_WAIT_TIME_SHORT + openpartyscreen BS_ATTACKER, BattleScript_MoveSwitchEnd + switchoutabilities BS_ATTACKER + waitstate + switchhandleorder BS_ATTACKER, 2 + returntoball BS_ATTACKER + getswitchedmondata BS_ATTACKER + switchindataupdate BS_ATTACKER + hpthresholds BS_ATTACKER + trytoclearprimalweather + printstring STRINGID_EMPTYSTRING3 + waitmessage 1 + printstring STRINGID_SWITCHINMON + switchinanim BS_ATTACKER, TRUE + waitstate + switchineffects BS_ATTACKER +BattleScript_MoveSwitchEnd: + end + +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,14 +715,14 @@ BattleScript_EffectRevivalBlessing:: waitanimation printstring STRINGID_PKMNREVIVEDREADYTOFIGHT waitmessage B_WAIT_TIME_LONG - jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_EffectRevivalBlessingSendOut + jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_EffectRevivalBlessingSendOut goto BattleScript_MoveEnd BattleScript_EffectRevivalBlessingSendOut: - switchinanim BS_SCRIPTING, FALSE + switchinanim BS_SCRIPTING, FALSE waitstate switchineffects BS_SCRIPTING - goto BattleScript_MoveEnd + goto BattleScript_MoveEnd BattleScript_StealthRockActivates:: setstealthrock BattleScript_MoveEnd @@ -585,6 +759,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 @@ -599,6 +774,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 @@ -613,10 +795,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 @@ -882,8 +1064,7 @@ BattleScript_EffectFling: attackcanceler jumpifcantfling BS_ATTACKER, BattleScript_FailedFromAtkString setlastuseditem BS_ATTACKER - removeitem BS_ATTACKER - accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + accuracycheck BattleScript_FlingMissed, ACC_CURR_MOVE attackstring pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNFLUNG @@ -892,6 +1073,7 @@ BattleScript_EffectFling: critcalc damagecalc adjustdamage + removeitem BS_ATTACKER attackanimation waitanimation effectivenesssound @@ -915,9 +1097,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: @@ -967,6 +1149,12 @@ BattleScript_FlingWhiteHerb: swapattackerwithtarget goto BattleScript_FlingEnd +BattleScript_FlingMissed: + removeitem BS_ATTACKER + attackstring + ppreduce + goto BattleScript_MoveMissedPause + BattleScript_EffectShellSideArm: shellsidearmcheck setmoveeffect MOVE_EFFECT_POISON @@ -1006,7 +1194,7 @@ BattleScript_EffectClangorousSoul: attackstring ppreduce cutonethirdhpraisestats BattleScript_ButItFailed - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_SKIP_DMG_TRACK | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_BIDE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE attackanimation waitanimation healthbarupdate BS_ATTACKER @@ -1182,9 +1370,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 @@ -1303,8 +1491,11 @@ BattleScript_EffectAllySwitch: attackstring ppreduce jumpifnoally BS_ATTACKER, BattleScript_ButItFailed + allyswitchfailchance BattleScript_ButItFailed attackanimation waitanimation + @ The actual data/gfx swap happens in the move animation. Here it's just the gBattlerAttacker / scripting battler change + allyswitchswapbattlers printstring STRINGID_ALLYSWITCHPOSITION waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -1443,11 +1634,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 @@ -1534,22 +1725,7 @@ BattleScript_EffectPartingShotTrySpAtk: waitmessage B_WAIT_TIME_LONG BattleScript_EffectPartingShotSwitch: moveendall - jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_PartingShotEnd - jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_PartingShotEnd - openpartyscreen BS_ATTACKER, BattleScript_PartingShotEnd - switchoutabilities BS_ATTACKER - waitstate - switchhandleorder BS_ATTACKER, 2 - returntoball BS_ATTACKER - getswitchedmondata BS_ATTACKER - switchindataupdate BS_ATTACKER - hpthresholds BS_ATTACKER - trytoclearprimalweather - flushtextbox - printstring STRINGID_SWITCHINMON - switchinanim BS_ATTACKER, TRUE - waitstate - switchineffects BS_ATTACKER + goto BattleScript_MoveSwitch BattleScript_PartingShotEnd: end @@ -1932,7 +2108,7 @@ BattleScript_EffectDefog: jumpifsubstituteblocks BattleScript_DefogIfCanClearHazards jumpifstat BS_TARGET, CMP_NOT_EQUAL, STAT_EVASION, MIN_STAT_STAGE, BattleScript_DefogWorks BattleScript_DefogIfCanClearHazards: - defogclear BS_ATTACKER, FALSE, BattleScript_FailedFromAtkString + trydefog FALSE, BattleScript_FailedFromAtkString BattleScript_DefogWorks: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring @@ -1952,7 +2128,7 @@ BattleScript_DefogPrintString:: waitmessage B_WAIT_TIME_LONG BattleScript_DefogTryHazards:: copybyte gEffectBattler, gBattlerAttacker - defogclear BS_ATTACKER, TRUE, NULL + trydefog TRUE, NULL copybyte gBattlerAttacker, gEffectBattler goto BattleScript_MoveEnd BattleScript_DefogTryHazardsWithAnim: @@ -2542,7 +2718,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 @@ -2767,7 +2943,7 @@ BattleScript_EffectTelekinesis: settelekinesis BattleScript_ButItFailed attackanimation waitanimation - printstring STRINGID_PKMNIDENTIFIED + printstring STRINGID_HURLEDINTOTHEAIR waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -3003,23 +3179,8 @@ BattleScript_EffectHitEscape: moveendfrom MOVEEND_TARGET_VISIBLE jumpifbattleend BattleScript_HitEscapeEnd jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0, BattleScript_HitEscapeEnd - jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_HitEscapeEnd - jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_HitEscapeEnd jumpifemergencyexited BS_TARGET, BattleScript_HitEscapeEnd - openpartyscreen BS_ATTACKER, BattleScript_HitEscapeEnd - switchoutabilities BS_ATTACKER - waitstate - switchhandleorder BS_ATTACKER, 2 - returntoball BS_ATTACKER - getswitchedmondata BS_ATTACKER - switchindataupdate BS_ATTACKER - hpthresholds BS_ATTACKER - trytoclearprimalweather - flushtextbox - printstring STRINGID_SWITCHINMON - switchinanim BS_ATTACKER, TRUE - waitstate - switchineffects BS_ATTACKER + goto BattleScript_MoveSwitch BattleScript_HitEscapeEnd: end @@ -4704,9 +4865,7 @@ BattleScript_EffectSandstorm:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather setsandstorm goto BattleScript_MoveWeatherChange @@ -4895,25 +5054,25 @@ BattleScript_EffectRainDance:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather setrain BattleScript_MoveWeatherChange:: attackanimation waitanimation + call BattleScript_MoveWeatherChangeRet + goto BattleScript_MoveEnd + +BattleScript_MoveWeatherChangeRet:: printfromtable gMoveWeatherChangeStringIds waitmessage B_WAIT_TIME_LONG call BattleScript_ActivateWeatherAbilities - goto BattleScript_MoveEnd + return BattleScript_EffectSunnyDay:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather setsunny goto BattleScript_MoveWeatherChange @@ -5351,9 +5510,7 @@ BattleScript_EffectHail:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather sethail goto BattleScript_MoveWeatherChange @@ -5582,7 +5739,7 @@ BattleScript_EffectRolePlay:: attackstring ppreduce accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON - trycopyability BattleScript_ButItFailed + trycopyability BS_ATTACKER, BattleScript_ButItFailed attackanimation waitanimation .if B_ABILITY_POP_UP == TRUE @@ -6494,7 +6651,7 @@ BattleScript_DamagingWeatherHeal: printstring STRINGID_ICEBODYHPGAIN waitmessage B_WAIT_TIME_LONG BattleScript_DamagingWeatherHpChange: - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER @@ -6504,7 +6661,7 @@ BattleScript_DamagingWeatherLoopIncrement:: addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop BattleScript_DamagingWeatherContinuesEnd:: - bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE call BattleScript_ActivateWeatherAbilities end2 @@ -7041,7 +7198,7 @@ BattleScript_EarthEaterActivates:: call BattleScript_AbilityPopUp pause B_WAIT_TIME_LONG tryhealquarterhealth BS_TARGET, BattleScript_EarthEaterRet - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_PKMNREGAINEDHEALTH @@ -7517,7 +7674,7 @@ BattleScript_FocusPunchSetUp:: BattleScript_MegaEvolution:: flushtextbox - trytrainerslidemegaevolutionmsg BS_ATTACKER + trytrainerslidemegaevolutionmsg printstring STRINGID_MEGAEVOREACTING BattleScript_MegaEvolutionAfterString: waitmessage B_WAIT_TIME_LONG @@ -7533,7 +7690,7 @@ BattleScript_MegaEvolutionAfterString: BattleScript_WishMegaEvolution:: flushtextbox - trytrainerslidemegaevolutionmsg BS_ATTACKER + trytrainerslidemegaevolutionmsg printstring STRINGID_FERVENTWISHREACHED goto BattleScript_MegaEvolutionAfterString @@ -7561,7 +7718,7 @@ BattleScript_PrimalReversionRet:: BattleScript_UltraBurst:: flushtextbox - trytrainerslidezmovemsg BS_ATTACKER + trytrainerslidezmovemsg printstring STRINGID_ULTRABURSTREACTING waitmessage B_WAIT_TIME_LONG setbyte gIsCriticalHit, 0 @@ -7618,7 +7775,7 @@ BattleScript_CudChewActivates:: call BattleScript_AbilityPopUp setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries consumeberry BS_TARGET, FALSE - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER setbyte sBERRY_OVERRIDE, 0 @@ -7678,10 +7835,11 @@ BattleScript_IllusionOff:: return BattleScript_CottonDownActivates:: - setbyte sFIXED_ABILITY_POPUP, TRUE - call BattleScript_AbilityPopUp + showabilitypopup BS_TARGET + pause B_WAIT_TIME_LONG + destroyabilitypopup copybyte gEffectBattler, gBattlerTarget - savetarget + swapattackerwithtarget setbyte gBattlerTarget, 0 BattleScript_CottonDownLoop: jumpiffainted BS_TARGET, TRUE, BattleScript_CottonDownLoopIncrement @@ -7700,8 +7858,7 @@ BattleScript_CottonDownLoopIncrement: addbyte gBattlerTarget, 1 jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_CottonDownLoop BattleScript_CottonDownReturn: - restoretarget - destroyabilitypopup + swapattackerwithtarget return BattleScript_AnticipationActivates:: @@ -7714,12 +7871,14 @@ BattleScript_AnticipationActivates:: BattleScript_AftermathDmg:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUp + jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_AftermathDmgRet orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_AFTERMATHDMG waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER +BattleScript_AftermathDmgRet: return BattleScript_DampPreventsAftermath:: @@ -7984,6 +8143,8 @@ BattleScript_MoveEffectSleep:: BattleScript_UpdateEffectStatusIconRet:: updatestatusicon BS_EFFECT_BATTLER waitstate + trytriggerstatusform + flushtextbox return BattleScript_YawnMakesAsleep:: @@ -8734,14 +8895,8 @@ BattleScript_SoundproofProtected:: goto BattleScript_MoveEnd BattleScript_IceFaceNullsDamage:: - attackstring - attackanimation - waitanimation - effectivenesssound - hitanimation BS_TARGET - waitstate call BattleScript_TargetFormChangeWithString - goto BattleScript_MoveEnd + return BattleScript_DazzlingProtected:: attackstring @@ -8765,14 +8920,14 @@ BattleScript_GrassyTerrainLoop: printstring STRINGID_GRASSYTERRAINHEALS waitmessage B_WAIT_TIME_LONG BattleScript_GrassyTerrainHpChange: - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER BattleScript_GrassyTerrainLoopIncrement:: addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_GrassyTerrainLoop BattleScript_GrassyTerrainLoopEnd:: - bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_PERMANENT, BattleScript_GrassyTerrainHealEnd BattleScript_GrassyTerrainHealEnd: end2 @@ -9050,7 +9205,7 @@ BattleScript_KingsShieldEffect:: return BattleScript_BanefulBunkerEffect:: - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT seteffectsecondary setmoveeffect 0 @@ -9328,7 +9483,7 @@ BattleScript_ItemHealHP_RemoveItemRet_Anim: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING removeitem BS_SCRIPTING @@ -9343,7 +9498,7 @@ BattleScript_ItemHealHP_RemoveItemEnd2_Anim: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER removeitem BS_ATTACKER @@ -9399,7 +9554,7 @@ BattleScript_ItemHealHP_Ret:: playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER return @@ -9454,7 +9609,7 @@ BattleScript_BerryConfuseHealEnd2_Anim: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING printstring STRINGID_FORXCOMMAYZ @@ -9473,7 +9628,7 @@ BattleScript_BerryConfuseHealRet_Anim: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT printstring STRINGID_PKMNSITEMRESTOREDHEALTH waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING printstring STRINGID_FORXCOMMAYZ @@ -9780,7 +9935,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 @@ -9789,7 +9944,7 @@ BattleScript_ZMoveActivateDamaging:: BattleScript_ZMoveActivateStatus:: flushtextbox - trytrainerslidezmovemsg BS_ATTACKER + trytrainerslidezmovemsg savetarget printstring STRINGID_ZPOWERSURROUNDS playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL @@ -10080,9 +10235,6 @@ BattleScript_PastelVeilLoopIncrement: BattleScript_PastelVeilEnd: end3 -sByteFour: -.byte MAX_BATTLERS_COUNT - BattleScript_NeutralizingGasExits:: savetarget pause B_WAIT_TIME_SHORT @@ -10092,7 +10244,7 @@ BattleScript_NeutralizingGasExits:: BattleScript_NeutralizingGasExitsLoop: switchinabilities BS_TARGET addbyte gBattlerTarget, 1 - jumpifbytenotequal gBattlerTarget, sByteFour, BattleScript_NeutralizingGasExitsLoop @ SOMEHOW, comparing to gBattlersCount is problematic. + jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_NeutralizingGasExitsLoop restoretarget return @@ -10211,7 +10363,7 @@ BattleScript_DamageNonTypesLoop:: waitmessage B_WAIT_TIME_LONG effectivenesssound hitanimation BS_ATTACKER - orword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER @@ -10221,7 +10373,7 @@ BattleScript_DamageNonTypesLoopIncrement:: addbyte gBattleCommunication, 1 jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamageNonTypesLoop BattleScript_DamageNonTypesContinuesEnd:: - bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE + bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE end2 BattleScript_EffectTryReducePP:: @@ -10380,6 +10532,7 @@ BattleScript_EffectSteelsurge:: BattleScript_DynamaxBegins:: flushtextbox + trytrainerslidedynamaxmsg returnatktoball pause B_WAIT_TIME_SHORT returntoball BS_SCRIPTING @@ -10454,8 +10607,6 @@ BattleScript_EffectSnow:: attackcanceler attackstring ppreduce - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_SUN_PRIMAL, BattleScript_ExtremelyHarshSunlightWasNotLessened - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_NoReliefFromHeavyRain - jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_MysteriousAirCurrentBlowsOn + call BattleScript_CheckPrimalWeather setsnow goto BattleScript_MoveWeatherChange diff --git a/data/event_scripts.s b/data/event_scripts.s index a376866181..7ce6f60485 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1005,6 +1005,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 49fcf798b6..43f4222596 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" @@ -72,6 +73,9 @@ gFieldEffectScriptPointers:: .4byte gFieldEffectScript_RayquazaSpotlight @ FLDEFF_RAYQUAZA_SPOTLIGHT .4byte gFieldEffectScript_DestroyDeoxysRock @ FLDEFF_DESTROY_DEOXYS_ROCK .4byte gFieldEffectScript_MoveDeoxysRock @ FLDEFF_MOVE_DEOXYS_ROCK + .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 @@ -343,3 +347,15 @@ gFieldEffectScript_DestroyDeoxysRock:: gFieldEffectScript_MoveDeoxysRock:: field_eff_callnative FldEff_MoveDeoxysRock 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/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 4a22bf8eea..a4fcc0237c 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -257,14 +257,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_ChoosePartyForMultiBattle:: goto MossdeepCity_SpaceCenter_2F_EventScript_ReadyForBattlePrompt MossdeepCity_SpaceCenter_2F_EventScript_DoStevenMultiBattle:: - special ReducePlayerPartyToSelectedMons - frontier_set FRONTIER_DATA_SELECTED_MON_ORDER - setvar VAR_0x8004, SPECIAL_BATTLE_STEVEN - setvar VAR_0x8005, 0 - special DoSpecialTrainerBattle - waitstate - frontier_saveparty - special LoadPlayerParty + multi_2_vs_2 TRAINER_MAXIE_MOSSDEEP, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, TRAINER_TABITHA_MOSSDEEP, MossdeepCity_SpaceCenter_Text_TabithaDefeat, PARTNER_STEVEN, TRAINER_BACK_PIC_STEVEN switch VAR_RESULT case 1, MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha fadescreen FADE_TO_BLACK @@ -336,14 +329,6 @@ MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayerWest:: turnobject LOCALID_STEVEN, DIR_EAST return -MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer:: - trainerbattle TRAINER_BATTLE_SET_TRAINER_A, TRAINER_MAXIE_MOSSDEEP, 0, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand, MossdeepCity_SpaceCenter_2F_Text_JustWantToExpandLand - end - -MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer:: - trainerbattle TRAINER_BATTLE_SET_TRAINER_B, TRAINER_TABITHA_MOSSDEEP, 0, MossdeepCity_SpaceCenter_Text_TabithaDefeat, MossdeepCity_SpaceCenter_Text_TabithaDefeat - end - MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: lockall checkplayergender diff --git a/data/scripts/debug.inc b/data/scripts/debug.inc index 3e482c8391..4d14a2a2a6 100644 --- a/data/scripts/debug.inc +++ b/data/scripts/debug.inc @@ -216,3 +216,17 @@ 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 ab7924bd21..44cfcb5d23 100644 --- a/data/scripts/repel.inc +++ b/data/scripts/repel.inc @@ -1,117 +1,152 @@ -EventScript_RepelWoreOff:: +.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 + 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_BufferSprayName_2: + bufferitemname STR_VAR_1, ITEM_REPEL + goto EventScript_BufferSprayName_1 + + +EventScript_SprayWoreOff:: + lock + 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 - 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 + goto EventScript_ChooseWhichSpray +.else + goto EventScript_UseSingleSpray +.endif + return + + +EventScript_SprayWoreOffMessage:: + msgbox Text_SprayWoreOff, MSGBOX_SIGN + releaseall + end + + +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_RepelUseAnother + compare VAR_RESULT, TRUE + goto_if_eq EventScript_UseSingleSpray_2 + call EventScript_UseDifferentSpray .endif - lock - msgbox Text_RepelWoreOff, MSGBOX_SIGN - release +EventScript_UseSingleSpray_1: + closemessage + releaseall end -EventScript_RepelUseAnother: - lock - msgbox Text_UseAnotherRepel, 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_RepelWoreOff_End - callnative TryDrawRepelMenu - goto_if_eq VAR_RESULT, FALSE, EventScript_RepelWoreOff_Chose +EventScript_ChooseWhichSpray:: + message Text_SprayWoreOffAskUseAnother + waitmessage + callnative DrawSprayMenu 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 -.else - goto_if_eq VAR_RESULT, YES, EventScript_UsedRepel -.endif -EventScript_RepelWoreOff_End: - release + compare VAR_RESULT, MULTI_B_PRESSED + goto_if_ne EventScript_ChooseWhichSpray_3 +EventScript_ChooseWhichSpray_1: + closemessage + releaseall end -EventScript_UsedRepel: - 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 HandleUseExpiredRepel - release - end + callnative HandleSprayMenuChoice + removeitem LOCAL_VAR_SPRAY, 1 + bufferitemname STR_VAR_2, LOCAL_VAR_SPRAY + msgbox Text_SprayWoreOffUseX, MSGBOX_SIGN + return -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 -.else - checkitem VAR_LAST_REPEL_LURE_USED, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_LureUseAnother -.endif - lock - msgbox Text_LureWoreOff, MSGBOX_SIGN - release - end -EventScript_LureUseAnother: - lock - msgbox Text_UseAnotherLure, MSGBOX_YESNO -.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 - 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 - end +Text_SprayWoreOff:: + .string "{STR_VAR_1}'s effect wore off…$" -EventScript_UsedLure: - 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 HandleUseExpiredLure - release - end - -Text_RepelWoreOff: - .string "REPEL's effect wore off…$" - -Text_UseAnotherRepel:: - .string "REPEL's effect wore off!\n" +Text_SprayWoreOffAskUseAnother:: + .string "{STR_VAR_1}'s effect wore off!\n" .string "Use another?$" -Text_LureWoreOff: - .string "Lure's effect wore off…$" +Text_SprayWoreOffAskUseX:: + .string "{STR_VAR_1}'s effect wore off…\n" + .string "Use a {STR_VAR_2}?$" -Text_UseAnotherLure:: - .string "Lure's effect wore off!\n" - .string "Use another?$" - -Text_UsedNewRepelLure:: +Text_SprayWoreOffUseX:: .string "{PLAYER} used the\n" .string "{STR_VAR_2}.$" diff --git a/data/specials.inc b/data/specials.inc index ded2e3f4fe..152210c176 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 c3e85ef504..ac3747f805 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/docs/changelogs/1.6.2.md b/docs/changelogs/1.6.2.md new file mode 100644 index 0000000000..4e5e187af7 --- /dev/null +++ b/docs/changelogs/1.6.2.md @@ -0,0 +1,126 @@ +# Version 1.6.2 + +```md +## How to update +- 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.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/docs/changelogs/1.7.0.md b/docs/changelogs/1.7.0.md new file mode 100644 index 0000000000..c9afdcc0e0 --- /dev/null +++ b/docs/changelogs/1.7.0.md @@ -0,0 +1,584 @@ +# Version 1.7.0 + +```md +## How to update +- 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.7.0`. +``` + +## 🌋 *IMPORTANT CHANGES* 🌋 +### [***The Expansion now uses Modern compilers by default***](https://github.com/rh-hideout/pokeemerald-expansion/pull/3305) +* We have enabled `-Werror -Wall` in the Makefile. These flags show warnings for undefined behaviors in the old compiler (`agbcc`), and sets all warnings as errors. As such, we have updated the codebase so that all warnings that **gcc 13** throws are handled: + * CI now uses devkitarm container to run a more modern gcc by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3429 + * Fix by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3530 + * Fixed `-Wall -Werror` errors on Modern by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3412 + * Fixed warnings introduced by gcc 13 by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3428 + * `-Warray-bounds` + * `-Waddress` + * `-Warray-parameter` + * Fixed `-Wmaybe-uninitialized` for `ModifyPersonalityForNature` test by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3457 +* ***Modern compiler may raise the following errors for code introduced from outside the expansion, so we recommend solving those errors:*** + * `unused-function`. To solve it, add `UNUSED` to the function definition. + ```diff + -static void Function(void) + +static void UNUSED Function(void) + ``` + * `unused-variable`. To solve it, remove the unused variable. + ```diff + static void Function(void) + { + - u8 unused; + u8 used; + ... + ``` + * `unused-but-set-variable`. To solve it, add `UNUSED` to the variable definition. + ```diff + static void Function(void) + { + - u8 unused; + + u8 UNUSED unused; + u8 used; + unused = DoSomething(); + ... + ``` +* Updated modern compiler install instructions by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3527 +* ***You may still use `agbcc` by adding*** `agbcc` to your `make` command to finish the update process before fixing these errors. + * eg. `make -j8 agbcc`. + * We may drop support for it in the future, so we recommend updating the code to support the new compilers. + * This will generate `pokeemerald_agbcc.gba`, while modern will generate `pokeemerald.gba` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3462 + +## 🧬 General 🧬 +### Added +* Incorporated @TheXaman's HGSS Style Pokédex by @AaghatIsLive in https://github.com/rh-hideout/pokeemerald-expansion/pull/3288 + * Includes Dark Mode + * Fix by @AaghatIsLive in https://github.com/rh-hideout/pokeemerald-expansion/pull/3479 + * Updated evolution strings by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/3375 + * Changes to omit adding the code when disabling the feature by @SBird1337 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3445 + * Teachable move list fix by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3624 +* Incorporated @DizzyEggg's nature color branch by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3582 + * Shows nature stat modifiers in summary screen. + * Added `SUMMARY_SCREEN_NATURE_COLORS` config to disable it. + * Updates stat reduction to blue to align with official implementation. +* Added `I_SELL_VALUE_FRACTION` config that changes selling factor of items to 1/4th when set to Gen 9 by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3315 +* Added `P_FRIENDSHIP_EVO_THRESHOLD` config to update the Friendship evolution threshold to Gen8+'s standard by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3376 +* Debug Menu + * Added `ROM Space` Utility option to check ROM space by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3453 + * Added `Toggle Match Call` Flag option to toggle Match Call by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3489 + * Added `Move Reminder` option by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3707 + * Moved Party/Boxes related functions to their own menu by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3707 +* Added expansion Rom Header by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3454 + * Added defines for Expansion version number. + * Added option to see the version number in debug menu. +* Added option to restore Japan-only Walda PC backgrounds by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3550 +* Added `BATTLE_PYRAMID_RANDOM_ENCOUNTERS` config to enable Battle Pyramid Wild Encounter randomization by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/2581 +* Added a `GetSpeciesPreEvolution` function by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3696 +### Changed +* Converted `Get(Box)MonData2` to proper functions by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3416 +* Added `src/data/map_group_count.h` to `.gitignore` by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3423 +* `Cheat Start` option now gives all badges and enables all Fly locations. `Fly to...` option no longer enables all Fly locations by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3489 +* Better documentation for Type Effectiveness table by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3374 +* Generational defines now start at `GEN_1` instead of `GEN_3` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3628 + * Fixes and cleanup + * By @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3720 + * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3723 +### Fixed +* Fixed potential Fly and Badge mismatch when using debug options by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3489 +* Fixed Pokémon Animation debug menu ignoring animation delay by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562 +* Fixed `IS_DITTO` macro by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3558 +* Added RTC failsafe to Debug menu's `Cheat Start` option by @ravepossum in https://github.com/rh-hideout/pokeemerald-expansion/pull/3561 + +## 🐉 Pokémon 🐉 +### Added +* ***Added Generation 9 species up to Teal Mask*** by @leo60228, @AlexOn1ine, @katykat5099, @kittenchilly and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3249 + * ***IMPORTANT:*** Enabling Gen 9 species currently break saves. If you don't want to use them, you can disable `P_GEN_9_POKEMON` in `include/config/species_enabled.h`. + * Reserved Indigo Disk IDs + * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3725 + * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3726 + * By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3727 + * Reserved Form IDs that will be supported in future versions by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3750 + * Shadow Lugia + * Totem Forms + * Partner Pikachu and Eevee + * Updated UIs to support 4-digit Dex numbers. + * Added Dunsparce and Tandemaus evolution methods by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3547 + * Tandemaus still does the evolution cutscene for now. + * Ported newer PokéCommunity sprites by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3643 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3646 + * Fixes and cleanup + * By @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3539 + * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3655 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3749 + * By @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3751 +* ***Adjusted Pokemon sprites and palettes - Part 2*** by @CyanSMP64 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3612 + * From Magnemite to Tangela + Hitmontop + Nidoking adjustment by MrDollSteak. + * Corrected sprite sizes and elevations + * Further palette adjustments by @CyanSMP64 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3744 + * Pidgeotto, Tentacruel, Feraligatr, Furret, Flaaffy, Marill, Azumarill and Miltank. +* Added missing Alcremie forms by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3469 + * Previously, only Strawberry Sweet forms were available + * Missing: Icons for non-Ruby Cream forms. + * Cleanup by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3488 +* Added species define synonyms for base forms with form names by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3248 + * Eg. `SPECIES_GIRATINA_ALTERED` is equal to `SPECIES_GIRATINA`. + * The original defines can be used in combination of `GET_BASE_SPECIES_ID(species)` to check for the whole species instead of specific forms. +* Added Gen 7 Pokémon 2nd frames and animations by @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3426 + * Rowlet family + * Pikipek family + * Cutiefly family + * Rockruff family + * Oranguru + * Passimian + * Fixed its shiny palette. + * Togedemaru + * Drampa + * Jangmo-O family +* Added Gen 6 Pokémon 2nd frames and animations by @katykat5099 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3543 + * Chespin + * Bunnelby + * Fletchling family + * Floette family + * Added missing 2nd frame for Eternal Flower Form. + * Amaura +* Added mising World Cap Pikachu icon by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3401 +* Added `P_CUSTOM_GENDER_DIFF_ICONS` config to use custom female icon sprites for Pikachu and Wobbuffet by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3506 + * Removed `P_HIPPO_GENDER_DIFF_ICONS` in favor of Hippopotas and Hippowdon to use this new config. +* Added `P_UPDATED_FRIENDSHIP` config that updates Pokémon base friendship to Gen 8+ standards by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3491 +### Changed +* ***Species Simplifier™*** (Parts [1](https://github.com/rh-hideout/pokeemerald-expansion/pull/3544), [2](https://github.com/rh-hideout/pokeemerald-expansion/pull/3546) and [3](https://github.com/rh-hideout/pokeemerald-expansion/pull/3562)) + * **Moved most data to `gSpeciesInfo`** + * Species names + * Cries + * Refactored Cry tables to simplify the process of adding new cries. Now there's a single entry in the table per cry, and species are asigned cry IDs in `gSpeciesInfo`. + * Graphical data now have their pointers in `gSpeciesInfo` (Sprites, palettes and animations) + * Removed all files in `src/data/pokemon_graphics/` with the exception of `front_pic_anims.h`. + * Removed unused 2nd animations. + * Dex Entries + * Individual form information is visible in the HGSS Pokédex (Vanilla Dex TBD) + * National Dex numbers are assigned to the species in `gSpeciesInfo`, removing the need of `sSpeciesToHoennPokedexNum` and `sSpeciesToNationalPokedexNum` arrays. + * Height and Weight are now saved separately per form, so weight in battle is now more accurate. + * Pokédex size page proportions are also separate. + * Pokédex descriptions are now saved as compound strings in `gSpeciesInfo` and differ by form. Shared entries are at the top of `src/data/pokemon/species_info.h`. + * Missing Pokédex texts for forms by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3708 + * Level Up and Teachable learnset pointers are now stored in `gSpeciesInfo`. + * Evolutions are now stored as compound literals in `gSpeciesInfo`. + * Fix by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3696 + * Form tables pointers are now stored in `gSpeciesInfo`. + * **Added toggles to disable specific family groups of species** + * Located in `include/config/species_enabled.h`. + * Moved the original `P_GEN_x_POKEMON` configs to this file. + * Options to disable groups of species: + * Battle-gimmick forms (Megas, Primals, etc.) + * Regional Forms (Includes evolutions of those species, such as Sirfetch'd) + * Pikachu extra forms. + * Cross-Generation Evolutions + * Also added separate option to add cross-evolutions to the Regional Dex. + * Generation 1-3 families can now be disabled. + * Pokémon will not evolve into species that have been disabled. + * Pokémon will produce offspring of species that have been disabled. + * Pokémon will not change form into forms that have been disabled. + * Fixes and cleanup + * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3722 + * Grouped data by species family. + * Converted species flags to gcc flags. + * Converted `P_UPDATED_STATS` "ifdef blocks" to ternaries. + * Added Mega Evolution hidden ability failsafes. + * Separated `gSpeciesInfo` by Generation by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3729 + * Fixes and cleanup + * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3656 + * By @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3698 +* Updated `P_UPDATED_ABILITIES` Gen 9's config for Piplup's line, Gallade and Shiftry by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3353 + * Shiftry's 2nd regular ability was changed from Early Bird to Wind Rider. + * Piplup, Prinplup and Empoleon's Hidden abilities were changed from Defiant to Competitive. + * Gallade was given Sharpness as a 2nd regular ability. +* Updated Legends Arceus Pokémon data and Level Up learnsets to Scarlet/Violet's by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3458 +* Applied missing uses of `PLACEHOLDER_ANIM_SINGLE_FRAME` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562 +* Renamed `PLACEHOLDER_TWO_FRAME_ANIMATION` to `PLACEHOLDER_ANIM_TWO_FRAMES` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562 +* Removed Old Unown Level Up Learnsets by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3562 +* Added `FORM_CHANGE_TIME_OF_DAY` form change that automatically changes Form during times of day (used by Shaymin to revert to Land Forme at night) by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/1690 +* Added `FORM_CHANGE_STATUS` form change that triggers when they adquire status condition (used by Shaymin to revert to Land Forme when frozen) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3734 + * Currently it doesn't: + * Prevent Shaymin from changing into Sky Forme when frozen. + * Change Form in the Battle Pike. +* Evolutions now call for `GetTimeOfDay` instead of checking the times directly by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3369 + * Dusk Ball and Form changes also use this function by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3585 + * Added config for different times of day ranges by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3579 + * Fixes and cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3648 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3701 +### Fixed +* Fixed Koffing and Weezing's abilities ignoring `P_UPDATED_ABILITIES` config and always using Gen8's config by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3353 +* Fixed Pumpkaboo macro typo by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3541 +* Multiple fixes by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3544 + * Fixed Mega Gardevoir/Gallade not having their updated Egg Groups. + * Fixed mon not having their appropiate items. + * Alolan Sandlash (Grip Claw, Rare) + * Alolan Muk (Black Sludge, Common) + * Alolan Golem (Cell Battery, Common) + * Alolan Marowak (Thick Club, Rare) + * Alolan Ninetales (Snowball, Rare) + * Fixed missing species flags. + * Giratina Origin (Legendary flag) + * Deoxys Attack (Mythical flag) + * Deoxys Defense (Mythical flag) + * Deoxys Speed (Mythical flag) + * Shaymin Sky (Mythical flag) + * Fixed Aegislash Blade giving the wrong EV yield. + * Fixed Zygarde 10% with Power Construct having the same stats as Zygarde 50%. + * Fixed Galarian Weezing having inproper noFlip property. +* Fixed Stantler not evolving when `P_GEN_9_POKEMON` is set to `FALSE` by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3548 +* Fixes Hisuian Sneasel's type order by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3706 + +## ⚔️ Battle General ⚔️ ## +### Added +* ***Dynamax*** by @AgustinGDLV and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/2417 + Tests + * Requires a Dynamax Band in the bag and for the `B_FLAG_DYNAMAX_BATTLE` flag to be assigned and set. + * Pokémon holding a Mega Stone or Z-Crystal can't Dynamax. + * Gigantamax forms. + * G-Max Moves. + * Forms determined using the Form Change tables. + * `P_GIGANTAMAX_FORMS` config to disable those forms. + * Since we currently don't modify the `BoxPokemon` struct: + * Dynamax levels are set to 0 (1.5x HP increase) + * Species always change into their Gigantamax Forms. + * AI Dynamaxes the last Pokémon left in their party. + * Instances where HP/Max HP percentages are used now use `GetNonDynamaxHP` and `GetNonDynamaxMaxHP` respectively. + * Trainer slide-in messages by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3581 + * Fixes and cleanup + * By @AsparagusEduardo in + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3435 + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3510 + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3713 + * By @AlexOn1ine in + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3464 + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3470 + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3541 +* Added support for Sky Battles by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/2950 + * Requires both `B_FLAG_SKY_BATTLE` and `B_VAR_SKY_BATTLE` to be assigned. + * Use the `TrySkyBattle` special in scripts to check if the player can participate in a Sky Battle and readies the party if it's succesful. Saves the result in VAR_RESULT. + ``` + Route123_EventScript_Alberto_Battle_Event_Script: + msgbox Route123_EventScript_Alberto_Text_AskSkyBattle, MSGBOX_YESNO + compare VAR_RESULT, NO + goto_if_eq Route123_EventScript_Alberto_DenySkyBattle + special TrySkyBattle + compare VAR_RESULT, TRUE + goto_if_eq Route123_EventScript_Alberto_StartBattle + msgbox Route123_EventScript_Alberto_Text_No_Flying_Pokemon + closemessage + release + end + ``` + * The `B_SKY_BATTLE_STRICT_ELIGIBILITY` config will restrict certain Pokémon from participating based on XY's list when enabled. By default is disabled and allows all Pokémon that are Flying-type and/or have Levitate as their ability. + * Banned moves are defined by the `skyBattleBanned` flag. Besides moves banned officially in XY, Gen7+ moves are added via `B_EXTRAPOLATED_MOVE_FLAGS` config by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3714 + * Effects that interact with grounded battlers do not happen in Sky Battles. + * Fix by @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3617 + * Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3621 +* Added `B_TOXIC_REVERSAL` config to revert bad poison to regular poison at the end of battles by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3605 +* Added `B_SANDSTORM_SPDEF_BOOST` config to disable Sandstorm's Sp. Defense boost for Rock-type Pokémon when set to `GEN_3` or less by @Petuuuhhh in https://github.com/rh-hideout/pokeemerald-expansion/pull/3387 +* Added `B_QUICK_MOVE_CURSOR_TO_RUN` config to allow a B Button shortcut for moving the cursor to the run option in Wild Battles by @voloved in https://github.com/rh-hideout/pokeemerald-expansion/pull/3362 +* Added `B_TRY_CATCH_TRAINER_BALL` config to disable losing the Poké Ball used to try to catch a Trainer's Pokémon by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3684 +* Added `P_CATCH_CURVE` config that updates catch calculations to Gen 6+ by @AtariDreams in https://github.com/rh-hideout/pokeemerald-expansion/pull/3685 +* Added Snow weather animation by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3440 +* Added a `flushtextbox` macro to flush the text box in battles by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3442 +### Changed +* Removed redundant Battle Types by @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/2417 + * `BATTLE_TYPE_KYOGRE_GROUDON` + * `BATTLE_TYPE_REGI` + * `BATTLE_TYPE_GROUDON` + * `BATTLE_TYPE_KYOGRE` + * `BATTLE_TYPE_RAYQUAZA` + * Intros, terrain and music determined by the species itself. + * Regigigas, Regieleki and Regidrago play `MUS_VS_REGI`. +* Converted most battle preproc `#if` blocks to C `if`s by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3392 +* Removed pointless for loop in CB2_InitBattleInternal by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3422 +* Refactored Battle Frontier bans to check the base species by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3465 + * Better support for adding new species. + * Also adds Gen4+ [Special Pokémon](https://bulbapedia.bulbagarden.net/wiki/Special_Pok%C3%A9mon) to the list. +* Obedience levels now increase per badge by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3475 + * Also sets `B_OBEDIENCE_MECHANICS`'s default config to `GEN_LATEST`, where obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level. + * Thanks to combination of the added obedience levels matching ORAS' with vanilla Emerald's encounter levels, there's not a single instance were players need to worry about caught Pokémon not obeying as soon as they are caught. +* Decoupled Affection values from Friendship rater thresholds, making them occur less often than what they used to by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3495 + * Because of the lessened frequency, they have been turned on by default. +* Added `HITMARKER_DISABLE_ANIMATION` to temporarily disable animations (used in Bug Bite's berry consumption) by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3607 +### Fixed +* Fixed Psychic Terrain blocking moves that target all battler or all opponents by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3521 +* Fixed issue with "Cycle through Poké Balls" feature not working properly by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3534 +* Fixed Burmy not transforming at the end of battle if it didn't switch in during a Single Battle by @benicioneto in https://github.com/rh-hideout/pokeemerald-expansion/pull/3728 +* Fixed Player Partner not playing its Shiny animation by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/3757 + +## 🤹 Moves 🤹 +### Added +* Added Teal Mask Moves by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3402 + Tests + * Matcha Gotcha + * Syrup Bomb + * Animation by @SonikkuA-DatH and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3474 + * Fixes by @AlexOn1ine in + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3437 + * https://github.com/rh-hideout/pokeemerald-expansion/pull/3552 + * Ivy Cudgel + * Type is shown in interfaces by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3590 + * Tweaks and fixes + * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3721 + * Fixed Ivy Cudgel test name by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3742 +* Added Glaive Rush's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3476 +* Added Raging Bull's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3552 +* Added Chilly Reception's effect by @RapidNutcracker in https://github.com/rh-hideout/pokeemerald-expansion/pull/3379 +* Added Rage Fist's effect by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3573 +* Added define synonyms (eg. `MOVE_VICE_GRIP` vs the current `MOVE_VISE_GRIP`) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3580 +* Added combined Pledge move effects by @AlexOn1ine, @Skeli789 and @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3336 + * Status animations by @SonikkuA-DatH +* Added `B_WIDE_GUARD` and `B_QUICK_GUARD` configs for Wide Guard and Quick Guard to fail when used consecutively in Gen 5 by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3614 +* Added `B_IMPRISON` config that makes Imprison not fail if opposin Pokémon don't have any moves that the user knows from Gen 5 onwards by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3710 +### Changed +* Added `B_EXTRAPOLATED_MOVE_FLAGS` config to extend move flag for moves removed in Gen8+. + * Razor Wind, Silver Wind and Ominous Wind are given the `windMove` flag. + * Dynamax Cannon, Behemoth Blade and Behemoth Blade are given the `assistBanned` flag. + * Bitter Blade and Matcha Gotcha are given the `healBlockBanned` flag. +* Added new move flags by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3425 + * `twoTurnMove` (replaces `IsTwoTurnsMove`) + * `forcePressure` (for self-targeted moves that are affected by Pressure) + * `cantUseTwice` (replaces `EFFECT_GIGATON_HAMMER`) + * `healBlockBanned` (replaces an `EFFECT_x` switch in `IsHealBlockPreventingMove`) + * `encoreBanned` (replaces `if` chain in `Cmd_trysetencore`) + * `assistBanned` (originally used `copycatBanned` + `EFFECT_SEMI_INVULNERABLE` and `EFFECT_SKY_DROP`) + * `parentalBondBanned` +* Updated missing move flags for every move by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3425 +* Updated Grassy Glide's power from 60 to 55 when `B_UPDATED_MOVE_DATA` is set to `GEN_9` or later (Teal Mask) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3425 +* Simplified Octolock script and converted its `various` to `callnative` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437 +* Added `CanAbilityPreventStatLoss` to centralize stat lowering immunities by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437 + * Fixed multiple abilities not showing the ability name in their message. +* Renamed `EFFECT_SMELLINGSALT` to `EFFECT_SMELLING_SALTS` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3504 +* New move animations by @Captain-Ford and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3529 + * Phantom Force + * Trick or Treat + * Acrobatics + * Head Smash + * Psyshock + * Charge Beam +* Plasma Fists now setup `STATUS_FIELD_ION_DELUGE` instead of having their own `STATUS4` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3476 +* Battle Dome points are now based on move data instead of being arbitrarily assigned by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3596 +### Fixed +* Multiple Relic Song fixes by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3476 +* Fixed Acid and Crunch move descriptions being updated by `B_UPDATED_MOVE_DATA` alongside their effects by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3586 +* Fixed Howl buffing the user's ally if they have Soundproof by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3593 +* Fixed Floral Healing not increasing its effect on Grassy Terrain + Tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3604 +* Fixed Spirit Shackle/Anchor Shot not trapping the targets by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3668 +* Fixed Defog not consuming PP if the foe has -6 evasion by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3668 +* Fixed Mirror Coat being able to reflect Pain Split damage by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3668 +* Fixed incorrect Fling damage calculation due to the item being removed before them by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3670 +* Fixed Z-Moves using the base move's priority by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3690 +* Fixed Metal Burst, Trump Card and Comeuppance not being considered as damaging moves by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3697 +* Fixed Fiery Wrath animation bug that caused the user to flip upside down by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3739 +* Fixed Baton Pass not passing Embargo's remaining turns by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3745 +* Fixed Raging Fury not causing rampage on user by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3754 + +## 🎭 Abilities 🎭 +### Added +* Added Opportunist + Tests by @ghoulslash in https://github.com/rh-hideout/pokeemerald-expansion/pull/2994 +* Added Zero to Hero + Tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3542 + * Fix by @AlexOn1ine https://github.com/rh-hideout/pokeemerald-expansion/pull/3552 +* Added `B_ILLUMINATE_EFFECT` config for Illuminate's Gen9 effect by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3482 +* Added `B_WEAK_ARMOR_SPEED` config for Weak Armor's Gen 5-6 effect by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3498 +* Added `B_PROTEAN_LIBERO` config for Protean/Libero only triggering once per switch-in as of Gen 9 by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3614 +* Added `B_INTREPID_SWORD` and `B_DAUNTLESS_SHIELD` configs for Intrepid Sword and Dauntless Sword only triggering once per battle by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3614 +* Added configs for disabling ability overworld effects as of Gen 9 by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3480 + * Synchronize, Compound Eyes, Super Luck, Cute Charm, Illuminate, Infiltrator, Harvest, Lightning Rod, Storm Drain, Flash Fire, Magnet Pull and Static. +* Àbility data (not yet functional) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3349 + * Hospitality + * Mind's Eye + * Embody Aspect (one ability per effect) + * Toxic Chain + * Supersweet Syrup +### Changed +* Pickup Table has been changed so that their percentages can be customized more easily, by @kittenchilly and @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3351 + * The data has been changed to Sword & Shield's. +* Moved `B_SYNCHRONIZE_NATURE` to `include/config/overworld.h` and renamed it to `OW_SYNCHRONIZE_NATURE` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3480 +### Fixed +* Fixed Synchronize not working with Gift Pokémon and scripted Wild Battles by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3480 +* Fixed Anger Shell being triggered multiple times by multi-hit moves by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3508 +* Fixed Absorbing abilities not cancelling multi-hit moves + Tests (eg. Sap Sipper vs Bullet Seed) by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3516 +* Fixed issue that caused Shadow Tag to not work by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3549 +* Fixed assumption that `gLastUsedAbility` is `u8` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3569 +* Fixes Protosynthesis and Quark Drive ability pop up appearing more than once by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3595 +* Fixed Trace not triggering when switching in by secondary effects like U-Turn, Eject Pack or Explosion by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3623 +* Fixed Defiant not being triggered by Cotton Down interaction by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3657 +* Fixed self-targeted moves triggering Stamina, like Substitute by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3669 +* Fixed Quick Draw not working properly by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3724 +* Fixed Neutraling Gas switch-out combined with Electric Surge causing a visual glitch by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3746 +* Fixed Innards Out damaging Pokémon with Magic Guard by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3758 +* Fixed Innards Out damaging Pokémon despite being suppressed by Gastro Acid by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3758 + +## 🧶 Items 🧶 +### Added +* Repeated Medicine usage by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3005 + * You can use multiple medicine items in a row without going back to the bag menu. Supports Rare and Exp. Candies. +* Added `B_LIGHT_BALL_ATTACK_BOOST` config to disable Light Ball's Pshycal Attack boost when set to `GEN_3` or less by @Petuuuhhh in https://github.com/rh-hideout/pokeemerald-expansion/pull/3387 +* Added Teal Mask items by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3349 + * Sprites (except for Fairy Feather) by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/3527 + * Fairy Feather by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3520 + * Sprite by [Anarlaurendil on Deviantart](https://www.deviantart.com/anarlaurendil/art/Fairy-Feather-pixel-art-icon-Pokemon-986417461). + * Despite being introduced in Gen 9, it's still affected by the `I_TYPE_BOOST_POWER` config to be consistent with other type items (10% boost when set to Gen 3). + * Evolution items + * Syrupy Apple + * Unremarkable Teacup + * Masterpiece Teacup + * Form change items + * Cornerstone Mask + * Wellspring Mask + * Hearthflame Mask + * EV modifier items + * Health Mochi + * Muscle Mochi + * Resist Mochi + * Genius Mochi + * Clever Mochi + * Swift Mochi + * Fresh Start Mochi + * Glimmering Charm + * Since there's no raids, it currently does nothing. +* Implemented Rotom Catalog and Zygarde Cube by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3284 + * Zygarde Cube follows Gen 8 functionality, where it allows to change Form and Ability but not teach moves. + * Rotom Catalog follows non-BDSP functionality, where all forms don't need to be unlocked. + * Cleanup by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3700 +* Implemented support for Fusion items by @TeamAquasHideout and @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3274 + * Items: + * DNA Splicers + * N-Solarizer + * N-Lunarizer + * Reins of Unity + * Fused mon are stored at the end of in `PokemonStorage`. + * Fixes by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3602 + * Fixes and cleanup + * By @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3644 + * By @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3692 +* Ported pokefirered's Vs. Seeker by @Jaizu @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3256 + * Requires `I_VS_SEEKER_CHARGING` flag to be assigned. + * Cleanup by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3718 +* Added define synonyms (eg. `ITEM_STICK` vs the current `ITEM_LEEK`) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3580 +### Changed +* Removed unused holdEffectParam for items that double the amount of money gained in battle by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3528 +* Using the name `Parcel` instead of `Oak's Parcel` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3580 +* Repel/Lure menu improvements @Jaizu and @pkmnsnfrn in https://github.com/rh-hideout/pokeemerald-expansion/pull/3594 + * If `VAR_LAST_REPEL_LURE_USED` is enabled and a spray runs out: + * It will show the name of the spray that ran out. + * If it was the last item of its type and strength, it will ask the player if they want to use a different one of the same type. + * B can now be pressed to cancel the menu. +### Fixed +* Fixed healing berries activating before Knock Off by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3509 +* Fixed crash damage triggering Eject Button by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3669 and https://github.com/rh-hideout/pokeemerald-expansion/pull/3738 +* Fixed Quick Claw not reading `holdEffectParam` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3737 +* Fixed Life Orb causing recoil when swapped via Magician when it shouldn't by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3753 + +## 🤖 Battle AI 🤖 +* Added AI Tests + * By @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3361 + * AI prefers Bubble over Water Gun if it's slower (both are power 40). + * AI prefers Water Gun over Bubble if it knows that foe has Contrary. + * AI prefers moves with better accuracy, but only if they both require the same number of hits to KO. + * AI prefers moves which deal more damage instead of moves which are super-effective but deal less damage. + * AI prefers Earthquake over Drill Run if both require the same number of hits to KO. + * AI chooses the safest option to faint the target, taking into account accuracy and move effect. + * AI won't use ground type attacks against flying type Pokémon unless Gravity is in effect. + * AI will not switch in a Pokémon which is slower and gets 1HKOed after fainting. + * AI switches if Perish Song is about to kill. + * AI won't use a Weather changing move if partner already chose such move. + * AI will not use Helping Hand if partner does not have any damage moves. + * AI will not use a status move if partner already chose Helping Hand. + * AI without any flags chooses moves at random. + * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3382 + * AI prefers a weaker moves over one with a downside effect if both require the same number of hits to KO. + * AI prefers moves with the best possible score, chosen randomly if tied. + * AI can choose a status move that boosts the attack by two. + * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3515 + * AI won't use Solar Beam if there is no Sun up or the user is not holding Power Herb. + * By @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3583 + * AI chooses moves with secondary effect that have a 100% chance to trigger + * Cleanup by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3748 +* Smarter SwitchAI Mon Choices + `HasBadOdds` Switch Check by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/3253 + * Use `AI_FLAG_SMART_MON_CHOICES` to enable smarter decisions when choosing which mon gets sent out + * `HasBadOdds` expands `AI_FLAG_SMART_SWITCHING` to switch out in cases where a mon has a bad matchup and lots of HP remaining +* Extend `AI_FLAG_SMART_SWITCHING` for Encore / hazards / lowered attacking stats + Tests by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/3557 +### Changed +* By @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3199 +* Using move flags instead of lists for AI calculations by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3389 +* Remove redundant AI score increases by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3504 +* Remove `GetMoveDamageResult` function by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3536 +### Fixed +* Fixed AI randomly choosing moves if they're both super effective by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3361 + +## 🧹 Other Cleanup 🧹 +* Remove all trailing whitespace (upcoming) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3473 +* Debug menu cleanup and documentation by @AsparagusEduardo and @sphericalice in https://github.com/rh-hideout/pokeemerald-expansion/pull/3390 +* Removed `powerfulMoveEffects` array by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3515 +* Added `-Woverride-init` Makefile flag that agbcc has by default by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3535 +* Fixed static variable names by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3637 +* Fixed config descriptions + * By @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3717 +* Fixed mistmatching `gBattleTextBuff3` definitions by @GraionDilach in https://github.com/rh-hideout/pokeemerald-expansion/pull/3719 + +## 🧪 Test Runner 🧪 +### Added +* Added support for wild battle tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3342 +* Added support for AI battle tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3361 +* Experience tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3342 + * Catching Pokémon gives experience. + * Higher leveled Pokémon give more experience. + * Lucky Egg boosts gained exp points by 50%. + * Exp is scaled to player and opponent's levels. + * Large exp gains are supported + * Held Exp. Share gives Experience to mons which did not participate in battle +* Added additional damage formula test by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437 +* Added Octolock tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437 +* Added Defiant/Sticky Web interaction test by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3516 +* Added Embargo tests by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3555 +* Added missing Hyper Cutter tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3437 +* Added missing Anger Shell tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3508 +* Added missing White Herb tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3611 +* Added `SpeciesInfo` integrity tests by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3688 +### Changed +* Moved battle tests off the heap by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3413 +* Automatic `ASSUMPTION_FAIL` in tests when used species are disabled. + * Because of this, instances of `ASSUME(P_GEN_x_POKEMON == TRUE)` have been removed. +* Updated Gen 9-mon-exclusive ability tests to use Gen 9 mon by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3733 +### Fixed +* Fixed VSCode error shenanigans when viewing tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3383 +* Fixed broken move animations in test replays by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3398 +* Performance improvement for test name matching by @jiangzhengwenjz in https://github.com/rh-hideout/pokeemerald-expansion/pull/3559 +* Fixed Ice Heal test name typo by @AtariDreams in https://github.com/rh-hideout/pokeemerald-expansion/pull/3676 + +## 📦 Pret merges 📦 +* 2023-10-02 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3372 + * Slight RTC documentation + Evolution times constants (https://github.com/pret/pokeemerald/pull/1925) + * Add friendship evo threshold constant (https://github.com/pret/pokeemerald/pull/1928) + * Solved a bunch of -Wall errors on modern (https://github.com/pret/pokeemerald/pull/1926) +* 2023-10-27 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3471 + * Add some task/sprite data defines (https://github.com/pret/pokeemerald/pull/1915) + * Fix mini_printf encoded string -Werror=pointer-sign warning (https://github.com/pret/pokeemerald/pull/1938) + * Remove all trailing whitespace (https://github.com/pret/pokeemerald/pull/1937) + * Use BUGFIX in assembly files (https://github.com/pret/pokeemerald/pull/1935) +* 2023-12-10 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3675 + * Delete the redundant files generated after running build (https://github.com/pret/pokeemerald/pull/1944) + * Rename `EGG_GROUP_UNDISCOVERED` egg group to `EGG_GROUP_NO_EGGS_DISCOVERED` (https://github.com/pret/pokeemerald/pull/1939) + * Renamed `SendMonToPC` to `CopyMonToPC` (https://github.com/pret/pokeemerald/pull/1940) + * Document `datahpupdate` (https://github.com/pret/pokeemerald/pull/1936) + * Renamed `HITMARKER_IGNORE_SAFEGUARD` to `HITMARKER_STATUS_ABILITY_EFFECT` (https://github.com/pret/pokeemerald/pull/1959) + * Moved files (https://github.com/pret/pokeemerald/pull/1953) + * Spinda Spots + * JP Fonts + * `redyellowgreen_frame.bin` + * [Build System Rewrite] Linkerscript now tracks RAM/ROM usage (https://github.com/pret/pokeemerald/pull/1952) + * Fixed ld_script.ld artifact from a previous pret version by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3731 + * Updated the size of the `struct InGameTrade`'s `otName` variable (https://github.com/pret/pokeemerald/pull/1962) + + + +## New Contributors +* @Petuuuhhh made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3387 +* @katykat5099 made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3426 +* @leo60228 made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3249 +* @hedara90 made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3527 +* @jiangzhengwenjz made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3559 +* @ravepossum made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3561 +* @RapidNutcracker made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3379 +* @GraionDilach made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3624 +* @AtariDreams made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3676 + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.6.2...expansion/1.7.0 + + diff --git a/gflib/malloc.c b/gflib/malloc.c index b3191e30b6..0fd8b29571 100644 --- a/gflib/malloc.c +++ b/gflib/malloc.c @@ -7,6 +7,8 @@ static void *sHeapStart; static u32 sHeapSize; +EWRAM_DATA u8 gHeap[HEAP_SIZE] = {0}; + void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size) { struct MemBlock *header = (struct MemBlock *)block; diff --git a/gflib/malloc.h b/gflib/malloc.h index d17291b3cd..60421dac2f 100644 --- a/gflib/malloc.h +++ b/gflib/malloc.h @@ -1,7 +1,6 @@ #ifndef GUARD_ALLOC_H #define GUARD_ALLOC_H -#define HEAP_SIZE 0x1C000 #define FREE_AND_SET_NULL(ptr) \ { \ @@ -42,7 +41,8 @@ struct MemBlock u8 data[0]; }; -extern u8 gHeap[]; +#define HEAP_SIZE 0x1C000 +extern u8 gHeap[HEAP_SIZE]; #if TESTING || !defined(NDEBUG) diff --git a/gflib/sprite.c b/gflib/sprite.c index ee20ab675b..58ca5e2b5d 100644 --- a/gflib/sprite.c +++ b/gflib/sprite.c @@ -281,7 +281,7 @@ EWRAM_DATA static bool8 sShouldProcessSpriteCopyRequests = 0; EWRAM_DATA static u8 sSpriteCopyRequestCount = 0; EWRAM_DATA static struct SpriteCopyRequest sSpriteCopyRequests[MAX_SPRITES] = {0}; EWRAM_DATA u8 gOamLimit = 0; -static EWRAM_DATA u8 gOamDummyIndex = 0; +static EWRAM_DATA u8 sOamDummyIndex = 0; EWRAM_DATA u16 gReservedSpriteTileCount = 0; EWRAM_DATA static u8 sSpriteTileAllocBitmap[128] = {0}; EWRAM_DATA s16 gSpriteCoordOffsetX = 0; @@ -292,7 +292,7 @@ EWRAM_DATA bool8 gAffineAnimsDisabled = FALSE; void ResetSpriteData(void) { ResetOamRange(0, 128); - gOamDummyIndex = 0; + sOamDummyIndex = 0; ResetAllSprites(); ClearSpriteCopyRequests(); ResetAffineAnimData(); @@ -405,9 +405,9 @@ void BuildOamBuffer(void) break; } - for (i = oamIndex; i < gOamDummyIndex; i++) + for (i = oamIndex; i < sOamDummyIndex; i++) gMain.oamBuffer[i] = gDummyOamData; - gOamDummyIndex = oamIndex; + sOamDummyIndex = oamIndex; for (i = 0; matrices != 0; i++, matrices >>= 1) { @@ -751,9 +751,17 @@ void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct SpriteFram { if (sSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS) { - sSpriteCopyRequests[sSpriteCopyRequestCount].src = images[index].data; + if (!images[0].relativeFrames) + { + sSpriteCopyRequests[sSpriteCopyRequestCount].src = images[index].data; + sSpriteCopyRequests[sSpriteCopyRequestCount].size = images[index].size; + } + else + { + sSpriteCopyRequests[sSpriteCopyRequestCount].src = images[0].data + images[0].size * index; + sSpriteCopyRequests[sSpriteCopyRequestCount].size = images[0].size; + } sSpriteCopyRequests[sSpriteCopyRequestCount].dest = (u8 *)OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum; - sSpriteCopyRequests[sSpriteCopyRequestCount].size = images[index].size; sSpriteCopyRequestCount++; } } diff --git a/gflib/sprite.h b/gflib/sprite.h index 86527bc4c0..270a755b44 100644 --- a/gflib/sprite.h +++ b/gflib/sprite.h @@ -26,11 +26,13 @@ struct SpriteFrameImage { const void *data; u16 size; + bool8 relativeFrames; }; #define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr} #define overworld_frame(ptr, width, height, frame) {.data = (u8 *)ptr + (width * height * frame * 64)/2, .size = (width * height * 64)/2} +#define overworld_ascending_frames(ptr, width, height) {.data = (u8 *)ptr, .size = (width * height * 64)/2, .relativeFrames=TRUE} struct SpritePalette { diff --git a/graphics/battle_anims/backgrounds/rainbow.bin b/graphics/battle_anims/backgrounds/rainbow.bin new file mode 100644 index 0000000000..770389abf4 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 0000000000..9b62b7b25b --- /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 0000000000..bd41645b35 Binary files /dev/null and b/graphics/battle_anims/backgrounds/rainbow.png differ diff --git a/graphics/field_effects/pics/emote_x.png b/graphics/field_effects/pics/emote_x.png new file mode 100644 index 0000000000..6d0206e1d4 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 0000000000..1494acef86 Binary files /dev/null and b/graphics/field_effects/pics/emotion_double_exclamation.png differ diff --git a/graphics/fonts/japanese_frlg_female_font.png b/graphics/fonts/japanese_frlg_female.png similarity index 100% rename from graphics/fonts/japanese_frlg_female_font.png rename to graphics/fonts/japanese_frlg_female.png diff --git a/graphics/fonts/japanese_frlg_male_font.png b/graphics/fonts/japanese_frlg_male.png similarity index 100% rename from graphics/fonts/japanese_frlg_male_font.png rename to graphics/fonts/japanese_frlg_male.png diff --git a/graphics/interface/split_icons.png b/graphics/interface/category_icons.png similarity index 100% rename from graphics/interface/split_icons.png rename to graphics/interface/category_icons.png 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/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/pokemon/amaura/anim_front.png b/graphics/pokemon/amaura/anim_front.png index 63c7d94cbd..b619f704f9 100644 Binary files a/graphics/pokemon/amaura/anim_front.png and b/graphics/pokemon/amaura/anim_front.png differ diff --git a/graphics/pokemon/armarouge/back.png b/graphics/pokemon/armarouge/back.png index 905c5e53f0..c07c397033 100644 Binary files a/graphics/pokemon/armarouge/back.png and b/graphics/pokemon/armarouge/back.png differ diff --git a/graphics/pokemon/armarouge/front.png b/graphics/pokemon/armarouge/front.png index b50aec353b..497d0c1f66 100644 Binary files a/graphics/pokemon/armarouge/front.png and b/graphics/pokemon/armarouge/front.png differ diff --git a/graphics/pokemon/armarouge/normal.pal b/graphics/pokemon/armarouge/normal.pal index 39e1c828a8..b4da58580c 100644 --- a/graphics/pokemon/armarouge/normal.pal +++ b/graphics/pokemon/armarouge/normal.pal @@ -1,19 +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 +154 212 167 +148 46 44 +227 57 20 +242 131 165 +254 250 98 +241 163 41 +83 35 36 +18 25 27 +85 86 85 +53 46 43 +8 8 8 +253 251 0 +106 63 3 +255 252 199 +255 44 0 +198 120 27 diff --git a/graphics/pokemon/armarouge/shiny.pal b/graphics/pokemon/armarouge/shiny.pal index d9c256423c..4e9a59e82c 100644 --- a/graphics/pokemon/armarouge/shiny.pal +++ b/graphics/pokemon/armarouge/shiny.pal @@ -1,19 +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 +154 212 167 +148 46 44 +227 57 20 +242 131 165 +254 250 98 +241 163 41 +83 35 36 +18 25 27 +85 86 85 +53 46 43 +8 8 8 +171 248 252 +106 63 3 +255 252 199 +54 109 231 +198 120 27 diff --git a/graphics/pokemon/azumarill/anim_front.png b/graphics/pokemon/azumarill/anim_front.png index eaeaf0c8e7..616b8989bb 100644 Binary files a/graphics/pokemon/azumarill/anim_front.png and b/graphics/pokemon/azumarill/anim_front.png differ diff --git a/graphics/pokemon/azumarill/normal.pal b/graphics/pokemon/azumarill/normal.pal index f67789782b..00ca3090d7 100644 --- a/graphics/pokemon/azumarill/normal.pal +++ b/graphics/pokemon/azumarill/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -48 80 144 -72 144 224 -112 184 248 +16 49 90 +8 98 172 +90 156 238 16 16 16 -152 0 8 -200 40 0 -232 80 0 -80 176 240 +148 16 16 +189 41 49 +222 65 82 +49 131 197 248 248 248 168 48 32 -120 200 232 -232 128 120 -192 192 208 -216 224 248 +115 180 246 +222 65 82 +197 197 213 +213 222 246 80 176 208 diff --git a/graphics/pokemon/basculegion/back.png b/graphics/pokemon/basculegion/back.png old mode 100755 new mode 100644 index 97c2dd3d98..d9a15512e2 Binary files a/graphics/pokemon/basculegion/back.png and b/graphics/pokemon/basculegion/back.png differ diff --git a/graphics/pokemon/basculegion/female/back.png b/graphics/pokemon/basculegion/female/back.png old mode 100755 new mode 100644 index 95be1e80e8..2a122e78bb Binary files a/graphics/pokemon/basculegion/female/back.png and b/graphics/pokemon/basculegion/female/back.png differ diff --git a/graphics/pokemon/basculegion/female/front.png b/graphics/pokemon/basculegion/female/front.png old mode 100755 new mode 100644 index ed6da5a68f..f3234de875 Binary files a/graphics/pokemon/basculegion/female/front.png and b/graphics/pokemon/basculegion/female/front.png differ diff --git a/graphics/pokemon/basculegion/female/normal.pal b/graphics/pokemon/basculegion/female/normal.pal old mode 100755 new mode 100644 index b5b76f062f..8c9aa43e7e --- a/graphics/pokemon/basculegion/female/normal.pal +++ b/graphics/pokemon/basculegion/female/normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 -152 208 160 -98 98 98 -16 16 16 -46 92 120 -171 222 224 -230 230 230 -227 242 239 -164 164 164 -122 168 175 -32 49 57 -65 82 82 -55 140 89 -21 64 34 -34 96 61 -16 16 18 -99 62 41 +15 +153 211 165 +90 125 133 +29 29 29 +209 237 237 +58 56 54 +142 188 193 +91 130 104 +45 57 51 +101 114 120 +73 95 84 +151 170 174 +223 233 231 +255 255 255 +91 51 39 +233 245 245 diff --git a/graphics/pokemon/basculegion/female/shiny.pal b/graphics/pokemon/basculegion/female/shiny.pal old mode 100755 new mode 100644 index 863a0f773e..733e4626cd --- a/graphics/pokemon/basculegion/female/shiny.pal +++ b/graphics/pokemon/basculegion/female/shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 -152 208 160 -98 98 98 -16 16 16 -112 96 64 -216 208 112 -230 230 230 -248 236 160 -164 164 164 -160 152 72 -32 49 57 -64 80 80 -96 144 48 -21 64 34 -72 108 56 -16 16 18 -99 62 41 +15 +153 211 165 +157 114 49 +29 29 29 +255 239 106 +58 56 54 +213 179 74 +113 187 104 +45 57 51 +101 114 120 +71 120 74 +151 170 174 +223 233 231 +255 255 255 +91 51 39 +255 249 191 diff --git a/graphics/pokemon/basculegion/front.png b/graphics/pokemon/basculegion/front.png old mode 100755 new mode 100644 index 7d147d198e..0f420f5855 Binary files a/graphics/pokemon/basculegion/front.png and b/graphics/pokemon/basculegion/front.png differ diff --git a/graphics/pokemon/basculegion/normal.pal b/graphics/pokemon/basculegion/normal.pal old mode 100755 new mode 100644 index 75d4b45a18..a256a509db --- a/graphics/pokemon/basculegion/normal.pal +++ b/graphics/pokemon/basculegion/normal.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 -152 208 160 -48 140 88 -192 52 80 -160 164 160 -16 64 32 -16 16 16 -120 24 24 -248 164 200 -96 60 40 -224 228 224 -64 80 80 -32 48 56 -32 96 56 -248 80 120 -96 96 96 -56 84 72 +15 +153 211 165 +107 33 60 +229 24 105 +167 50 91 +29 29 29 +58 56 54 +73 95 84 +91 130 104 +45 57 51 +101 114 120 +151 170 174 +223 233 231 +255 255 255 +94 36 46 +244 156 190 diff --git a/graphics/pokemon/basculegion/shiny.pal b/graphics/pokemon/basculegion/shiny.pal old mode 100755 new mode 100644 index a725255a9b..19a2d1c1e9 --- a/graphics/pokemon/basculegion/shiny.pal +++ b/graphics/pokemon/basculegion/shiny.pal @@ -1,19 +1,18 @@ JASC-PAL 0100 -16 -152 208 160 -96 144 48 -144 72 176 -160 164 160 -16 64 32 -16 16 16 -88 36 112 -224 176 240 -96 60 40 -224 228 224 -60 82 76 -32 48 56 -72 108 56 -184 84 232 -96 96 96 -56 84 72 +15 +153 211 165 +107 33 60 +190 42 234 +128 41 165 +29 29 29 +58 56 54 +71 120 74 +113 187 104 +45 57 51 +101 114 120 +151 170 174 +223 233 231 +255 255 255 +94 36 46 +221 143 243 diff --git a/graphics/pokemon/bunnelby/anim_front.png b/graphics/pokemon/bunnelby/anim_front.png index 128653b687..f84baa06dd 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 2b7cc3b850..cabd2fa425 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 ea42a0cff6..493d820fcb 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 2c2491ab6a..19eec650e1 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/front.png b/graphics/pokemon/capsakid/front.png index 011ba881ad..aaa9702e67 100755 Binary files a/graphics/pokemon/capsakid/front.png and b/graphics/pokemon/capsakid/front.png differ diff --git a/graphics/pokemon/capsakid/shiny.pal b/graphics/pokemon/capsakid/shiny.pal index 094a57803b..7cfffb9748 100755 --- a/graphics/pokemon/capsakid/shiny.pal +++ b/graphics/pokemon/capsakid/shiny.pal @@ -11,7 +11,7 @@ JASC-PAL 217 216 147 104 97 60 158 154 87 -144 196 144 +230 228 167 40 48 40 224 135 8 66 115 147 diff --git a/graphics/pokemon/ceruledge/back.png b/graphics/pokemon/ceruledge/back.png index ca1e76e694..962908384b 100644 Binary files a/graphics/pokemon/ceruledge/back.png and b/graphics/pokemon/ceruledge/back.png differ diff --git a/graphics/pokemon/ceruledge/front.png b/graphics/pokemon/ceruledge/front.png index 34f056e16a..fdd08d47cf 100644 Binary files a/graphics/pokemon/ceruledge/front.png and b/graphics/pokemon/ceruledge/front.png differ diff --git a/graphics/pokemon/ceruledge/normal.pal b/graphics/pokemon/ceruledge/normal.pal index c3d8c407c5..cf75997463 100644 --- a/graphics/pokemon/ceruledge/normal.pal +++ b/graphics/pokemon/ceruledge/normal.pal @@ -1,19 +1,18 @@ 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 +15 +153 211 165 +198 90 222 +239 165 255 +132 156 222 +189 214 255 +57 99 189 +49 49 99 +66 66 140 +99 90 165 +57 49 41 +16 16 16 +82 82 82 +247 239 247 +24 24 49 +239 74 173 diff --git a/graphics/pokemon/ceruledge/shiny.pal b/graphics/pokemon/ceruledge/shiny.pal index 5ae0e1d485..ccfe3845d9 100644 --- a/graphics/pokemon/ceruledge/shiny.pal +++ b/graphics/pokemon/ceruledge/shiny.pal @@ -1,19 +1,18 @@ 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 +15 +153 211 165 +198 90 222 +239 165 255 +132 156 222 +189 214 255 +57 99 189 +49 49 99 +66 66 140 +99 90 165 +57 49 41 +16 16 16 +82 82 82 +255 255 0 +24 24 49 +255 24 74 diff --git a/graphics/pokemon/chansey/anim_front.png b/graphics/pokemon/chansey/anim_front.png index 2e4e2f573f..f2eec2ca77 100644 Binary files a/graphics/pokemon/chansey/anim_front.png and b/graphics/pokemon/chansey/anim_front.png differ diff --git a/graphics/pokemon/chansey/back.png b/graphics/pokemon/chansey/back.png index 87e70c9a2f..79fbeaa59e 100644 Binary files a/graphics/pokemon/chansey/back.png and b/graphics/pokemon/chansey/back.png differ diff --git a/graphics/pokemon/chansey/normal.pal b/graphics/pokemon/chansey/normal.pal index 698af3b616..0e50f85c24 100644 --- a/graphics/pokemon/chansey/normal.pal +++ b/graphics/pokemon/chansey/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -230 123 131 -139 65 65 -255 230 230 -255 213 222 -139 65 65 -238 123 123 -246 164 156 -248 248 248 -16 16 16 -139 65 65 -246 164 180 +255 255 255 +230 222 189 172 164 115 115 106 74 -230 222 189 -0 0 0 +238 123 123 +225 96 96 +16 16 16 +139 65 65 +246 164 156 +238 123 123 +255 230 230 +255 213 222 +246 164 180 +230 123 131 +139 65 65 diff --git a/graphics/pokemon/chansey/shiny.pal b/graphics/pokemon/chansey/shiny.pal index 219c13d1d0..a919547a79 100644 --- a/graphics/pokemon/chansey/shiny.pal +++ b/graphics/pokemon/chansey/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -192 160 88 -112 88 56 -248 240 224 -248 232 200 -80 112 56 -128 176 64 -152 216 72 -248 248 248 +152 160 208 +255 255 255 +230 222 189 +172 164 115 +115 106 74 +141 215 40 +106 164 32 16 16 16 -80 112 56 -232 200 144 -168 160 112 -112 104 72 -224 216 184 -0 0 0 +88 128 64 +148 222 49 +106 164 32 +255 246 230 +255 238 205 +238 205 148 +213 172 90 +139 106 65 diff --git a/graphics/pokemon/charcadet/back.png b/graphics/pokemon/charcadet/back.png index c9a91f9467..01ead6b281 100644 Binary files a/graphics/pokemon/charcadet/back.png and b/graphics/pokemon/charcadet/back.png differ diff --git a/graphics/pokemon/charcadet/front.png b/graphics/pokemon/charcadet/front.png index 90d14e4cdb..c90c6a2db0 100644 Binary files a/graphics/pokemon/charcadet/front.png and b/graphics/pokemon/charcadet/front.png differ diff --git a/graphics/pokemon/charcadet/normal.pal b/graphics/pokemon/charcadet/normal.pal index 49a00d6302..eae60870da 100644 --- a/graphics/pokemon/charcadet/normal.pal +++ b/graphics/pokemon/charcadet/normal.pal @@ -14,6 +14,6 @@ JASC-PAL 199 117 5 255 255 255 243 189 3 -153 211 165 +14 64 173 238 13 36 -0 0 0 +16 88 254 diff --git a/graphics/pokemon/charcadet/shiny.pal b/graphics/pokemon/charcadet/shiny.pal index cf3a77e993..30c3010bd7 100644 --- a/graphics/pokemon/charcadet/shiny.pal +++ b/graphics/pokemon/charcadet/shiny.pal @@ -13,7 +13,7 @@ JASC-PAL 27 33 35 199 117 5 255 255 255 -243 189 3 -153 211 165 +33 252 217 +14 64 173 33 174 217 -0 0 0 +16 88 254 diff --git a/graphics/pokemon/chespin/anim_front.png b/graphics/pokemon/chespin/anim_front.png index 172c75ec20..319bf4de44 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 1cf511302f..27cbeab62a 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 e3f7d17fb5..090aa15645 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 58c22e9619..f0abc0c1b5 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/cloyster/anim_front.png b/graphics/pokemon/cloyster/anim_front.png index bce084388f..6e1ed03508 100644 Binary files a/graphics/pokemon/cloyster/anim_front.png and b/graphics/pokemon/cloyster/anim_front.png differ diff --git a/graphics/pokemon/cloyster/back.png b/graphics/pokemon/cloyster/back.png index 8c038d83c8..965be563b1 100644 Binary files a/graphics/pokemon/cloyster/back.png and b/graphics/pokemon/cloyster/back.png differ diff --git a/graphics/pokemon/cloyster/normal.pal b/graphics/pokemon/cloyster/normal.pal index 725b268096..d9d8ed4ce8 100644 --- a/graphics/pokemon/cloyster/normal.pal +++ b/graphics/pokemon/cloyster/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -123 82 131 213 189 238 172 123 189 +148 98 180 +123 82 131 74 32 82 -16 16 16 -197 197 197 -65 65 65 -248 248 248 -148 148 148 -98 98 98 -82 41 90 +164 123 189 131 90 164 106 65 131 -164 123 189 -120 96 176 +82 41 90 +197 197 197 +148 148 148 +98 98 98 +65 65 65 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/cloyster/shiny.pal b/graphics/pokemon/cloyster/shiny.pal index da28a9df86..ad5c2b8f6a 100644 --- a/graphics/pokemon/cloyster/shiny.pal +++ b/graphics/pokemon/cloyster/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -48 96 152 -152 200 248 -104 152 208 -16 64 112 +139 197 255 +90 156 230 +98 123 213 +41 98 172 +0 57 131 +164 123 189 +131 90 164 +106 65 131 +82 41 90 +197 197 197 +148 148 148 +98 98 98 +65 65 65 16 16 16 -192 192 192 -64 64 64 -248 248 248 -144 144 144 -96 96 96 -80 40 88 -128 88 160 -104 64 128 -128 88 160 -96 120 208 +255 255 255 diff --git a/graphics/pokemon/crocalor/back.png b/graphics/pokemon/crocalor/back.png index 5821ac9089..ceee90d945 100644 Binary files a/graphics/pokemon/crocalor/back.png and b/graphics/pokemon/crocalor/back.png differ diff --git a/graphics/pokemon/crocalor/front.png b/graphics/pokemon/crocalor/front.png index b2794debcf..99003b0e51 100644 Binary files a/graphics/pokemon/crocalor/front.png and b/graphics/pokemon/crocalor/front.png differ diff --git a/graphics/pokemon/crocalor/normal.pal b/graphics/pokemon/crocalor/normal.pal index f238c0cac2..f498e47a4a 100644 --- a/graphics/pokemon/crocalor/normal.pal +++ b/graphics/pokemon/crocalor/normal.pal @@ -1,19 +1,17 @@ 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 +14 +153 211 165 +248 48 40 +248 208 56 +248 152 32 +248 248 216 +16 16 16 +96 80 56 +184 169 154 +64 64 64 +160 56 48 +216 160 40 +104 40 32 +232 56 56 +40 40 40 diff --git a/graphics/pokemon/crocalor/normal.png b/graphics/pokemon/crocalor/normal.png deleted file mode 100644 index 531e2b211d..0000000000 Binary files a/graphics/pokemon/crocalor/normal.png and /dev/null differ diff --git a/graphics/pokemon/crocalor/shiny.pal b/graphics/pokemon/crocalor/shiny.pal index 18320d602f..abc0a7b57a 100644 --- a/graphics/pokemon/crocalor/shiny.pal +++ b/graphics/pokemon/crocalor/shiny.pal @@ -1,19 +1,17 @@ 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 +14 +153 211 165 +248 48 40 +248 208 56 +248 152 32 +248 248 216 +16 16 16 +96 80 56 +184 169 154 +113 71 65 +164 108 135 +216 160 40 +114 71 91 +206 149 165 +80 50 55 diff --git a/graphics/pokemon/cubone/anim_front.png b/graphics/pokemon/cubone/anim_front.png index e0f600c88c..d00e0c921b 100644 Binary files a/graphics/pokemon/cubone/anim_front.png and b/graphics/pokemon/cubone/anim_front.png differ diff --git a/graphics/pokemon/cubone/back.png b/graphics/pokemon/cubone/back.png index 0d867ae9de..cfebc2947d 100644 Binary files a/graphics/pokemon/cubone/back.png and b/graphics/pokemon/cubone/back.png differ diff --git a/graphics/pokemon/cubone/normal.pal b/graphics/pokemon/cubone/normal.pal index 8613b94a22..68797e7115 100644 --- a/graphics/pokemon/cubone/normal.pal +++ b/graphics/pokemon/cubone/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -139 131 106 -248 248 248 -41 41 41 -197 197 213 -82 82 57 -148 106 90 +222 189 106 197 156 74 +148 106 90 82 57 16 -200 168 136 -240 208 176 -224 224 232 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 +230 230 238 +197 197 213 +139 131 106 +82 82 57 +255 222 180 +246 213 180 +205 172 139 +255 0 255 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/cubone/shiny.pal b/graphics/pokemon/cubone/shiny.pal index 710bbdf527..dfc82f90bd 100644 --- a/graphics/pokemon/cubone/shiny.pal +++ b/graphics/pokemon/cubone/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -128 128 112 -248 248 248 -16 16 16 -200 184 184 -72 80 72 -80 104 48 -112 144 80 -32 56 8 -184 160 136 -224 208 176 -224 216 216 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +152 160 208 +156 172 106 +106 139 74 +74 98 49 +32 65 0 +255 255 255 +230 222 222 +205 189 189 +131 131 115 +74 82 74 +238 222 180 +230 213 180 +189 164 139 +255 0 255 +255 0 255 +41 41 41 diff --git a/graphics/pokemon/cyclizar/back.png b/graphics/pokemon/cyclizar/back.png index 73c2babe02..4c1c41fc41 100644 Binary files a/graphics/pokemon/cyclizar/back.png and b/graphics/pokemon/cyclizar/back.png differ diff --git a/graphics/pokemon/cyclizar/front.png b/graphics/pokemon/cyclizar/front.png index f01984e5cc..01c9aada09 100644 Binary files a/graphics/pokemon/cyclizar/front.png and b/graphics/pokemon/cyclizar/front.png differ diff --git a/graphics/pokemon/cyclizar/normal.pal b/graphics/pokemon/cyclizar/normal.pal index 538a25e05a..2311b7bcbd 100644 --- a/graphics/pokemon/cyclizar/normal.pal +++ b/graphics/pokemon/cyclizar/normal.pal @@ -1,17 +1,19 @@ 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 +16 +255 163 177 +56 74 53 +84 101 78 +28 41 22 +119 140 106 +16 16 16 +241 107 50 +185 183 179 +252 252 252 +96 125 109 +117 176 125 34 35 40 50 57 67 +52 69 61 75 86 92 -93 121 107 +226 233 215 diff --git a/graphics/pokemon/cyclizar/shiny.pal b/graphics/pokemon/cyclizar/shiny.pal index 9641a7498f..3c95c71e72 100644 --- a/graphics/pokemon/cyclizar/shiny.pal +++ b/graphics/pokemon/cyclizar/shiny.pal @@ -1,17 +1,19 @@ JASC-PAL 0100 -14 -64 100 181 -48 59 57 -33 37 33 +16 +255 163 177 +167 163 122 248 238 187 -97 95 71 -15 15 15 +64 63 48 +255 254 232 +16 16 16 85 215 253 -206 206 206 +185 183 179 +252 252 252 +97 95 71 138 138 112 -255 255 255 34 35 40 50 57 67 +64 62 47 75 86 92 -250 241 235 +226 233 215 diff --git a/graphics/pokemon/dewgong/anim_front.png b/graphics/pokemon/dewgong/anim_front.png index a1594dbd33..c2f3d4f775 100644 Binary files a/graphics/pokemon/dewgong/anim_front.png and b/graphics/pokemon/dewgong/anim_front.png differ diff --git a/graphics/pokemon/dewgong/back.png b/graphics/pokemon/dewgong/back.png index bcb7242e35..8b58e9fce0 100644 Binary files a/graphics/pokemon/dewgong/back.png and b/graphics/pokemon/dewgong/back.png differ diff --git a/graphics/pokemon/dewgong/normal.pal b/graphics/pokemon/dewgong/normal.pal index 15ddd52bd5..4165788517 100644 --- a/graphics/pokemon/dewgong/normal.pal +++ b/graphics/pokemon/dewgong/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 153 210 164 +230 230 246 +213 205 238 +156 164 189 106 123 164 65 82 98 -156 164 189 -230 230 246 -16 16 16 -213 205 238 -255 255 255 +213 41 32 +156 0 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 205 205 131 123 123 -112 40 40 -232 128 120 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/dewgong/shiny.pal b/graphics/pokemon/dewgong/shiny.pal index bc86361bc5..bc6d7e3458 100644 --- a/graphics/pokemon/dewgong/shiny.pal +++ b/graphics/pokemon/dewgong/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 153 210 164 +246 246 230 +213 213 197 +180 180 164 148 148 115 98 98 74 -180 180 164 -246 246 230 -16 16 16 -213 213 197 -255 255 255 +213 41 32 +156 0 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 205 205 131 123 123 -163 32 32 -219 83 78 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/dipplin/back.png b/graphics/pokemon/dipplin/back.png index 81821ede25..d99452c70b 100644 Binary files a/graphics/pokemon/dipplin/back.png and b/graphics/pokemon/dipplin/back.png differ diff --git a/graphics/pokemon/dipplin/front.png b/graphics/pokemon/dipplin/front.png index 5e9a2554e8..6311f69be9 100644 Binary files a/graphics/pokemon/dipplin/front.png and b/graphics/pokemon/dipplin/front.png differ diff --git a/graphics/pokemon/dipplin/normal.pal b/graphics/pokemon/dipplin/normal.pal index 4e4a27deec..3c68d0216a 100644 --- a/graphics/pokemon/dipplin/normal.pal +++ b/graphics/pokemon/dipplin/normal.pal @@ -1,19 +1,17 @@ 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 +14 +0 183 239 +43 97 14 +164 216 74 +16 16 16 +95 171 29 +241 201 80 +198 169 83 +254 254 254 +101 16 12 +157 24 17 +222 81 69 +249 164 162 +36 77 28 +75 133 61 diff --git a/graphics/pokemon/dipplin/shiny.pal b/graphics/pokemon/dipplin/shiny.pal index 7123a2ca0b..81c9ff3c86 100644 --- a/graphics/pokemon/dipplin/shiny.pal +++ b/graphics/pokemon/dipplin/shiny.pal @@ -1,19 +1,17 @@ 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 +14 +0 183 239 +43 97 14 +164 216 74 +16 16 16 +95 171 29 +241 201 80 +198 169 83 +254 254 254 +194 80 3 +221 143 0 +255 212 22 +249 164 162 +185 77 49 +255 118 66 diff --git a/graphics/pokemon/dodrio/anim_front.png b/graphics/pokemon/dodrio/anim_front.png index 5c970bf8e0..78906eb7e2 100644 Binary files a/graphics/pokemon/dodrio/anim_front.png and b/graphics/pokemon/dodrio/anim_front.png differ diff --git a/graphics/pokemon/dodrio/anim_frontf.png b/graphics/pokemon/dodrio/anim_frontf.png index c69ab602c0..04c02d0c0b 100644 Binary files a/graphics/pokemon/dodrio/anim_frontf.png and b/graphics/pokemon/dodrio/anim_frontf.png differ diff --git a/graphics/pokemon/dodrio/back.png b/graphics/pokemon/dodrio/back.png index a160615324..89e974f61c 100644 Binary files a/graphics/pokemon/dodrio/back.png and b/graphics/pokemon/dodrio/back.png differ diff --git a/graphics/pokemon/dodrio/backf.png b/graphics/pokemon/dodrio/backf.png index ad1f5bcf51..89fd4aa370 100644 Binary files a/graphics/pokemon/dodrio/backf.png and b/graphics/pokemon/dodrio/backf.png differ diff --git a/graphics/pokemon/dodrio/normal.pal b/graphics/pokemon/dodrio/normal.pal index 1569ba019d..d05aac145a 100644 --- a/graphics/pokemon/dodrio/normal.pal +++ b/graphics/pokemon/dodrio/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -65 65 65 -16 16 16 -131 131 131 +238 197 115 +205 156 82 164 123 90 90 65 32 -205 156 82 -248 248 248 -98 90 65 238 222 172 180 164 123 -180 65 65 -246 131 164 -180 65 65 -246 131 164 +98 90 65 255 213 230 +246 131 164 +180 65 65 +213 205 205 +131 131 131 +65 65 65 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/dodrio/shiny.pal b/graphics/pokemon/dodrio/shiny.pal index f6278a269b..28e67a6f71 100644 --- a/graphics/pokemon/dodrio/shiny.pal +++ b/graphics/pokemon/dodrio/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -64 64 64 -16 16 16 -128 128 128 -112 136 24 -64 88 16 -160 184 48 -248 248 248 -152 104 24 -248 240 136 -216 160 64 -176 80 80 -240 128 160 -176 80 80 -240 128 160 -248 200 224 +152 160 208 +197 222 90 +164 189 49 +115 139 16 +74 106 0 +255 246 139 +222 164 57 +164 106 0 +255 213 230 +246 131 164 +180 65 65 +213 205 205 +131 131 131 +65 65 65 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/doduo/anim_front.png b/graphics/pokemon/doduo/anim_front.png index bda88f3de1..cfaffadcd7 100644 Binary files a/graphics/pokemon/doduo/anim_front.png and b/graphics/pokemon/doduo/anim_front.png differ diff --git a/graphics/pokemon/doduo/anim_frontf.png b/graphics/pokemon/doduo/anim_frontf.png index 51d0d982e9..490a771ada 100644 Binary files a/graphics/pokemon/doduo/anim_frontf.png and b/graphics/pokemon/doduo/anim_frontf.png differ diff --git a/graphics/pokemon/doduo/back.png b/graphics/pokemon/doduo/back.png index dc2b09bc9e..6bac7e57ef 100644 Binary files a/graphics/pokemon/doduo/back.png and b/graphics/pokemon/doduo/back.png differ diff --git a/graphics/pokemon/doduo/backf.png b/graphics/pokemon/doduo/backf.png index 3e0ad49e50..0a208d6300 100644 Binary files a/graphics/pokemon/doduo/backf.png and b/graphics/pokemon/doduo/backf.png differ diff --git a/graphics/pokemon/doduo/normal.pal b/graphics/pokemon/doduo/normal.pal index 594e033255..86151f0ed8 100644 --- a/graphics/pokemon/doduo/normal.pal +++ b/graphics/pokemon/doduo/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -80 56 24 -144 104 88 -184 136 80 -216 168 112 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 172 115 +189 139 82 +148 106 90 +82 57 24 +238 222 172 +222 189 139 +164 131 74 +98 82 16 +98 98 98 16 16 16 -248 248 248 -96 80 16 -96 96 96 -160 128 72 -232 216 168 -216 184 136 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/doduo/shiny.pal b/graphics/pokemon/doduo/shiny.pal index 40d0d1146b..4b19c908e2 100644 --- a/graphics/pokemon/doduo/shiny.pal +++ b/graphics/pokemon/doduo/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -80 96 16 -112 144 32 -168 192 64 -192 224 96 +152 160 208 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +197 230 98 +172 197 65 +115 148 32 +90 115 0 +238 230 172 +222 205 139 +164 156 74 +98 98 16 +98 98 98 16 16 16 -248 248 248 -96 96 16 -96 96 96 -160 152 72 -232 224 168 -216 200 136 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/dondozo/back.png b/graphics/pokemon/dondozo/back.png index d0d6ce3fd6..c54b1e7329 100755 Binary files a/graphics/pokemon/dondozo/back.png and b/graphics/pokemon/dondozo/back.png differ diff --git a/graphics/pokemon/dondozo/shiny.pal b/graphics/pokemon/dondozo/shiny.pal index 45eca3b135..0177f86a8e 100755 --- a/graphics/pokemon/dondozo/shiny.pal +++ b/graphics/pokemon/dondozo/shiny.pal @@ -13,7 +13,7 @@ JASC-PAL 165 165 165 255 252 201 222 223 221 -56 144 200 +222 223 221 248 252 248 0 0 0 0 0 0 diff --git a/graphics/pokemon/drowzee/anim_front.png b/graphics/pokemon/drowzee/anim_front.png index 3bab742240..6c4f25288b 100644 Binary files a/graphics/pokemon/drowzee/anim_front.png and b/graphics/pokemon/drowzee/anim_front.png differ diff --git a/graphics/pokemon/drowzee/back.png b/graphics/pokemon/drowzee/back.png index 3489ea9c35..91ced85866 100644 Binary files a/graphics/pokemon/drowzee/back.png and b/graphics/pokemon/drowzee/back.png differ diff --git a/graphics/pokemon/drowzee/normal.pal b/graphics/pokemon/drowzee/normal.pal index 0ea8f35c4c..3293e401fd 100644 --- a/graphics/pokemon/drowzee/normal.pal +++ b/graphics/pokemon/drowzee/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -168 136 0 -112 88 0 -240 232 0 -80 56 32 -208 168 72 -248 232 112 0 0 0 -104 80 64 -248 248 248 -136 32 56 -232 56 56 -136 112 88 -176 152 120 -104 80 64 +82 57 32 +106 82 65 +139 115 90 +180 156 123 +115 90 0 +172 139 0 +197 164 32 +213 172 74 +246 238 0 +255 238 115 +255 255 255 +139 32 57 +238 57 57 0 0 0 diff --git a/graphics/pokemon/drowzee/shiny.pal b/graphics/pokemon/drowzee/shiny.pal index 5c3e3c9d9d..5615fd6c31 100644 --- a/graphics/pokemon/drowzee/shiny.pal +++ b/graphics/pokemon/drowzee/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 96 104 -104 64 72 -224 176 192 -96 32 48 -184 144 152 -248 216 232 -16 16 16 -120 72 88 -248 248 248 -136 40 64 -232 80 80 -176 88 104 -200 120 136 -144 56 80 +0 0 0 +115 16 32 +148 41 74 +180 82 98 +205 106 123 +115 74 82 +139 98 106 +164 123 131 +189 148 156 +230 180 197 +238 205 222 +255 255 255 +139 32 57 +238 57 57 0 0 0 diff --git a/graphics/pokemon/duraludon/back.png b/graphics/pokemon/duraludon/back.png index 051482fb11..606c884662 100644 Binary files a/graphics/pokemon/duraludon/back.png and b/graphics/pokemon/duraludon/back.png differ diff --git a/graphics/pokemon/duraludon/front.png b/graphics/pokemon/duraludon/front.png index 99ef63bd7e..39e39798e9 100644 Binary files a/graphics/pokemon/duraludon/front.png and b/graphics/pokemon/duraludon/front.png differ diff --git a/graphics/pokemon/duraludon/normal.pal b/graphics/pokemon/duraludon/normal.pal index 0138cf2e91..3b8dca287f 100644 --- a/graphics/pokemon/duraludon/normal.pal +++ b/graphics/pokemon/duraludon/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -104 48 56 -184 104 104 +49 93 139 +98 133 172 +156 210 164 +106 52 57 16 16 16 -128 112 128 -192 184 192 -224 224 240 -248 248 248 -168 144 168 -232 224 120 -128 120 96 -152 144 192 -80 80 160 -48 40 72 -64 64 104 -0 0 0 +123 129 148 +238 226 123 +131 125 98 +139 129 164 +180 182 205 +8 36 82 +255 255 255 +106 97 115 +189 105 106 +24 56 98 +222 226 246 diff --git a/graphics/pokemon/duraludon/shiny.pal b/graphics/pokemon/duraludon/shiny.pal index 27269601eb..583a51f2a4 100644 --- a/graphics/pokemon/duraludon/shiny.pal +++ b/graphics/pokemon/duraludon/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -104 96 104 -232 224 232 +67 119 184 +109 151 204 +156 210 164 +112 105 107 16 16 16 -104 128 112 -176 192 184 -232 232 216 -248 248 248 -136 160 144 -248 160 48 -160 160 128 -120 144 192 -56 96 160 -32 32 72 -56 72 96 -0 0 0 +81 96 101 +226 157 109 +253 248 236 +118 138 154 +149 163 164 +8 36 82 +255 255 255 +80 95 107 +235 232 237 +40 74 130 +190 204 201 diff --git a/graphics/pokemon/electrode/anim_front.png b/graphics/pokemon/electrode/anim_front.png index bf91ac0eb8..739501732b 100644 Binary files a/graphics/pokemon/electrode/anim_front.png and b/graphics/pokemon/electrode/anim_front.png differ diff --git a/graphics/pokemon/electrode/back.png b/graphics/pokemon/electrode/back.png index 86d20c029e..90cd9957c8 100644 Binary files a/graphics/pokemon/electrode/back.png and b/graphics/pokemon/electrode/back.png differ diff --git a/graphics/pokemon/electrode/normal.pal b/graphics/pokemon/electrode/normal.pal index 293f41bffb..3710a6a0b7 100644 --- a/graphics/pokemon/electrode/normal.pal +++ b/graphics/pokemon/electrode/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -90 82 82 -164 156 156 +255 255 255 238 238 238 -248 248 248 205 205 222 -16 16 16 -213 49 65 -255 82 32 +164 156 156 +90 82 82 +255 0 255 +240 160 136 +208 128 144 +255 172 156 255 131 90 -131 16 16 +255 82 32 238 65 49 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +213 49 65 +131 16 16 +16 16 16 diff --git a/graphics/pokemon/electrode/shiny.pal b/graphics/pokemon/electrode/shiny.pal index cdfc50be22..4ad72a8909 100644 --- a/graphics/pokemon/electrode/shiny.pal +++ b/graphics/pokemon/electrode/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 80 80 -160 152 152 -232 232 232 -248 248 248 -200 200 216 -16 16 16 -56 72 208 -32 112 248 +255 255 255 +238 238 238 +205 205 222 +164 156 156 +90 82 82 +255 0 255 144 168 232 -24 48 112 -48 96 232 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +128 136 216 +156 205 255 +90 164 255 +32 115 255 +49 98 238 +57 74 213 +16 49 131 +16 16 16 diff --git a/graphics/pokemon/espathra/back.png b/graphics/pokemon/espathra/back.png index bc66b9fa98..7c5842fba7 100644 Binary files a/graphics/pokemon/espathra/back.png and b/graphics/pokemon/espathra/back.png differ diff --git a/graphics/pokemon/espathra/front.png b/graphics/pokemon/espathra/front.png index 7d3d405e2d..6c2a9161c4 100644 Binary files a/graphics/pokemon/espathra/front.png and b/graphics/pokemon/espathra/front.png differ diff --git a/graphics/pokemon/espathra/normal.pal b/graphics/pokemon/espathra/normal.pal index 6101d88550..058716070c 100644 --- a/graphics/pokemon/espathra/normal.pal +++ b/graphics/pokemon/espathra/normal.pal @@ -1,15 +1,19 @@ JASC-PAL 0100 -12 +16 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 +96 88 112 +248 248 248 +192 176 184 +16 16 16 +80 232 184 +144 112 168 +184 160 224 +120 80 24 +192 136 80 +248 184 96 +214 192 175 +250 244 238 +248 248 96 +192 176 16 +192 176 112 diff --git a/graphics/pokemon/espathra/shiny.pal b/graphics/pokemon/espathra/shiny.pal index 2fb2eb4182..c4064ef223 100644 --- a/graphics/pokemon/espathra/shiny.pal +++ b/graphics/pokemon/espathra/shiny.pal @@ -1,15 +1,19 @@ JASC-PAL 0100 -12 +16 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 +96 88 112 +248 248 248 +192 176 184 +16 16 16 +80 232 184 +144 112 168 +184 160 224 +52 41 41 +87 68 68 +120 96 96 +98 99 95 +137 136 124 +192 152 136 +152 115 109 +192 176 112 diff --git a/graphics/pokemon/exeggcute/anim_front.png b/graphics/pokemon/exeggcute/anim_front.png index 429248b6eb..890f981467 100644 Binary files a/graphics/pokemon/exeggcute/anim_front.png and b/graphics/pokemon/exeggcute/anim_front.png differ diff --git a/graphics/pokemon/exeggcute/back.png b/graphics/pokemon/exeggcute/back.png index 8ae6d8f214..fa0204c49b 100644 Binary files a/graphics/pokemon/exeggcute/back.png and b/graphics/pokemon/exeggcute/back.png differ diff --git a/graphics/pokemon/exeggcute/normal.pal b/graphics/pokemon/exeggcute/normal.pal index 5b12b18d4d..632ee1137d 100644 --- a/graphics/pokemon/exeggcute/normal.pal +++ b/graphics/pokemon/exeggcute/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -197 115 148 -139 32 32 -255 213 222 -16 16 16 +255 255 255 +222 222 222 255 238 139 205 139 8 -248 248 248 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 255 238 238 -222 222 222 -224 176 184 -232 192 192 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 213 222 +230 180 189 +197 115 148 +139 32 32 diff --git a/graphics/pokemon/exeggcute/shiny.pal b/graphics/pokemon/exeggcute/shiny.pal index 967472bdca..e59673d22c 100644 --- a/graphics/pokemon/exeggcute/shiny.pal +++ b/graphics/pokemon/exeggcute/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -224 168 40 -136 96 24 -248 232 88 +255 255 255 +222 222 222 +255 205 74 +230 156 0 16 16 16 -248 200 72 -224 152 0 -248 248 248 -248 248 160 -216 216 216 -208 80 64 -240 208 64 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 255 189 +255 238 16 +246 205 16 +238 172 0 +180 123 0 diff --git a/graphics/pokemon/exeggutor/anim_front.png b/graphics/pokemon/exeggutor/anim_front.png index a7fa012b17..8d32dffb8d 100644 Binary files a/graphics/pokemon/exeggutor/anim_front.png and b/graphics/pokemon/exeggutor/anim_front.png differ diff --git a/graphics/pokemon/exeggutor/back.png b/graphics/pokemon/exeggutor/back.png index 8bf0106564..ea1c3fa38f 100644 Binary files a/graphics/pokemon/exeggutor/back.png and b/graphics/pokemon/exeggutor/back.png differ diff --git a/graphics/pokemon/exeggutor/normal.pal b/graphics/pokemon/exeggutor/normal.pal index 7430557a4c..64a0df017a 100644 --- a/graphics/pokemon/exeggutor/normal.pal +++ b/graphics/pokemon/exeggutor/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -0 176 232 -82 98 41 -16 16 16 -115 172 49 +152 160 208 +255 255 205 +255 246 139 +230 172 90 +164 106 32 +123 82 16 +180 156 74 +139 115 65 +82 65 16 189 255 115 156 213 74 -82 65 16 -230 172 90 -255 246 139 -248 248 168 -248 248 248 -123 82 16 -164 106 32 -139 115 65 -230 172 90 -180 156 74 +115 172 49 +82 98 41 +255 255 255 +98 98 98 +16 16 16 diff --git a/graphics/pokemon/exeggutor/shiny.pal b/graphics/pokemon/exeggutor/shiny.pal index 2490dbbb59..81c3a61fea 100644 --- a/graphics/pokemon/exeggutor/shiny.pal +++ b/graphics/pokemon/exeggutor/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -0 176 232 -136 56 24 +152 208 160 +255 238 164 +255 222 106 +230 172 90 +164 106 32 +115 65 16 +238 230 74 +205 172 0 +148 115 0 +255 189 106 +230 131 74 +197 98 57 +156 57 16 +255 255 255 +98 98 98 16 16 16 -192 104 64 -232 184 120 -224 144 96 -120 96 24 -224 168 88 -248 224 136 -248 232 160 -248 248 248 -160 104 32 -160 104 32 -200 176 40 -224 168 88 -240 232 96 diff --git a/graphics/pokemon/farfetchd/anim_front.png b/graphics/pokemon/farfetchd/anim_front.png index ac702abdd4..527e64c536 100644 Binary files a/graphics/pokemon/farfetchd/anim_front.png and b/graphics/pokemon/farfetchd/anim_front.png differ diff --git a/graphics/pokemon/farfetchd/back.png b/graphics/pokemon/farfetchd/back.png index 50978b424c..1f87dd2fcb 100644 Binary files a/graphics/pokemon/farfetchd/back.png and b/graphics/pokemon/farfetchd/back.png differ diff --git a/graphics/pokemon/farfetchd/normal.pal b/graphics/pokemon/farfetchd/normal.pal index 8e8af67119..786c6d0244 100644 --- a/graphics/pokemon/farfetchd/normal.pal +++ b/graphics/pokemon/farfetchd/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -132 107 33 -90 58 0 -181 148 82 +152 160 208 +255 255 255 +213 213 213 +230 230 164 +197 205 131 +255 222 106 +246 180 65 +189 115 24 +205 255 139 +65 222 65 +0 156 32 +216 184 112 +180 148 82 +131 106 32 +90 57 0 16 16 16 -0 156 33 -230 230 165 -66 222 66 -197 206 132 -214 214 214 -230 197 123 -248 248 248 -206 255 140 -255 222 107 -247 181 66 -189 115 25 diff --git a/graphics/pokemon/farfetchd/shiny.pal b/graphics/pokemon/farfetchd/shiny.pal index 631533ca3c..874a87bda2 100644 --- a/graphics/pokemon/farfetchd/shiny.pal +++ b/graphics/pokemon/farfetchd/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 +152 160 208 +255 255 255 +213 213 213 +238 230 164 +197 197 123 +255 213 115 +255 180 74 +197 115 32 +230 255 148 +172 230 74 +112 152 32 +216 184 112 +230 136 120 200 104 88 104 56 48 -224 136 120 16 16 16 -128 168 32 -240 232 176 -168 224 72 -192 192 120 -208 208 208 -216 184 112 -248 248 248 -224 248 144 -248 208 112 -248 176 72 -192 120 48 diff --git a/graphics/pokemon/farigiraf/back.png b/graphics/pokemon/farigiraf/back.png index 8e7a8a75e0..4957e60d60 100644 Binary files a/graphics/pokemon/farigiraf/back.png and b/graphics/pokemon/farigiraf/back.png differ diff --git a/graphics/pokemon/farigiraf/front.png b/graphics/pokemon/farigiraf/front.png index 60c060ba7b..2beeb62b4d 100644 Binary files a/graphics/pokemon/farigiraf/front.png and b/graphics/pokemon/farigiraf/front.png differ diff --git a/graphics/pokemon/farigiraf/normal.pal b/graphics/pokemon/farigiraf/normal.pal index 8d2b044683..54d536677b 100644 --- a/graphics/pokemon/farigiraf/normal.pal +++ b/graphics/pokemon/farigiraf/normal.pal @@ -1,19 +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 +153 211 165 +48 48 64 +96 88 88 +16 16 16 +112 87 59 +86 60 39 +248 240 40 +252 253 148 +192 200 168 +191 179 110 +120 88 48 +248 248 248 +184 88 104 +240 144 152 +193 97 57 +254 137 71 diff --git a/graphics/pokemon/farigiraf/shiny.pal b/graphics/pokemon/farigiraf/shiny.pal index 47499eff16..90d45d241e 100644 --- a/graphics/pokemon/farigiraf/shiny.pal +++ b/graphics/pokemon/farigiraf/shiny.pal @@ -1,19 +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 +153 211 165 +48 48 64 +96 88 88 +16 16 16 +112 87 59 +86 60 39 +248 240 40 +229 229 229 +192 200 168 +183 196 200 +120 88 48 +248 248 248 +83 116 204 +128 176 240 +164 63 51 +232 96 72 diff --git a/graphics/pokemon/feraligatr/anim_front.png b/graphics/pokemon/feraligatr/anim_front.png index 02f31d679c..4e2f9401b4 100644 Binary files a/graphics/pokemon/feraligatr/anim_front.png and b/graphics/pokemon/feraligatr/anim_front.png differ diff --git a/graphics/pokemon/feraligatr/normal.pal b/graphics/pokemon/feraligatr/normal.pal index 3322ac24e3..530d6f651e 100644 --- a/graphics/pokemon/feraligatr/normal.pal +++ b/graphics/pokemon/feraligatr/normal.pal @@ -6,10 +6,10 @@ JASC-PAL 255 139 131 16 16 16 246 82 90 -41 74 139 -90 180 246 -57 139 205 -139 213 255 +8 106 148 +65 213 238 +41 156 189 +139 238 255 255 255 255 197 197 197 255 230 139 diff --git a/graphics/pokemon/finizen/back.png b/graphics/pokemon/finizen/back.png index 77432e6367..422cb602f7 100755 Binary files a/graphics/pokemon/finizen/back.png and b/graphics/pokemon/finizen/back.png differ diff --git a/graphics/pokemon/finizen/front.png b/graphics/pokemon/finizen/front.png index ea547fbe51..624d0bb77a 100755 Binary files a/graphics/pokemon/finizen/front.png and b/graphics/pokemon/finizen/front.png differ diff --git a/graphics/pokemon/finizen/shiny.pal b/graphics/pokemon/finizen/shiny.pal index ebdbf83aa9..937cbb4fba 100755 --- a/graphics/pokemon/finizen/shiny.pal +++ b/graphics/pokemon/finizen/shiny.pal @@ -4,7 +4,7 @@ JASC-PAL 152 208 160 61 77 167 118 138 252 -136 216 224 +139 158 254 79 100 235 170 181 211 208 236 240 diff --git a/graphics/pokemon/flaaffy/anim_front.png b/graphics/pokemon/flaaffy/anim_front.png index e1239d8193..318da3c4ee 100644 Binary files a/graphics/pokemon/flaaffy/anim_front.png and b/graphics/pokemon/flaaffy/anim_front.png differ diff --git a/graphics/pokemon/flaaffy/normal.pal b/graphics/pokemon/flaaffy/normal.pal index 5dd45e400e..59b1e43308 100644 --- a/graphics/pokemon/flaaffy/normal.pal +++ b/graphics/pokemon/flaaffy/normal.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -189 189 213 +180 180 213 255 255 255 131 115 139 -222 230 246 +205 222 246 16 16 16 74 74 90 -222 65 98 -255 164 164 -255 115 115 -255 189 189 -164 0 16 +213 98 123 +255 180 205 +255 139 156 +255 205 213 +139 32 49 82 131 197 82 131 197 131 197 255 diff --git a/graphics/pokemon/flabebe/anim_front.png b/graphics/pokemon/flabebe/anim_front.png index 6677d4137a..e872a6dc8e 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 088f00af5a..345740b30a 100644 Binary files a/graphics/pokemon/flabebe/back.png and b/graphics/pokemon/flabebe/back.png differ diff --git a/graphics/pokemon/fletchling/anim_front.png b/graphics/pokemon/fletchling/anim_front.png index 87f110df95..5163b130da 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 880ec9548c..3307fbfe97 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 01d1e3fe2f..b18b705ef0 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 3761dfe625..f17e0db230 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 index 87d517ebeb..e20bc255cf 100644 Binary files a/graphics/pokemon/flittle/back.png and b/graphics/pokemon/flittle/back.png differ diff --git a/graphics/pokemon/flittle/front.png b/graphics/pokemon/flittle/front.png index c0d7054a06..c65a015020 100644 Binary files a/graphics/pokemon/flittle/front.png and b/graphics/pokemon/flittle/front.png differ diff --git a/graphics/pokemon/flittle/normal.pal b/graphics/pokemon/flittle/normal.pal index 1918bb79c6..a1ffc22a22 100644 --- a/graphics/pokemon/flittle/normal.pal +++ b/graphics/pokemon/flittle/normal.pal @@ -1,18 +1,19 @@ JASC-PAL 0100 -15 -153 210 164 -120 120 120 +16 +153 211 165 +123 132 140 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 +198 206 214 +107 99 57 +255 247 140 +16 16 16 +198 173 90 +123 107 198 +132 206 231 +82 66 156 +115 33 107 +206 74 165 +239 99 206 +180 96 7 +252 127 0 diff --git a/graphics/pokemon/flittle/shiny.pal b/graphics/pokemon/flittle/shiny.pal index 1636e312ad..8b5b682d17 100644 --- a/graphics/pokemon/flittle/shiny.pal +++ b/graphics/pokemon/flittle/shiny.pal @@ -1,18 +1,19 @@ JASC-PAL 0100 -15 -153 210 164 -120 120 120 +16 +153 211 165 +123 132 140 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 +198 206 214 +107 99 57 +255 247 140 +16 16 16 +198 173 90 +123 107 198 +132 206 231 +82 66 156 +49 99 49 +74 189 99 +41 255 148 +57 57 57 +102 102 102 diff --git a/graphics/pokemon/floette/anim_front.png b/graphics/pokemon/floette/anim_front.png index 43eae1911a..59b7fb9b73 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 0000000000..b77c538dea 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 61b4419b7e..0000000000 Binary files a/graphics/pokemon/floette/eternal_flower/front.png and /dev/null differ diff --git a/graphics/pokemon/frigibax/back.png b/graphics/pokemon/frigibax/back.png index 15026f4bf8..d48c105e34 100644 Binary files a/graphics/pokemon/frigibax/back.png and b/graphics/pokemon/frigibax/back.png differ diff --git a/graphics/pokemon/frigibax/shiny.pal b/graphics/pokemon/frigibax/shiny.pal index 9c9d46e860..62e5c6dac1 100644 --- a/graphics/pokemon/frigibax/shiny.pal +++ b/graphics/pokemon/frigibax/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 153 210 164 -114 133 134 -63 103 103 -191 220 223 -150 185 190 +75 114 106 +52 74 64 +134 186 173 +116 161 150 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 +142 187 183 +194 231 233 +143 103 130 +255 179 230 +255 143 219 118 152 148 diff --git a/graphics/pokemon/furret/anim_front.png b/graphics/pokemon/furret/anim_front.png index 085f303c9c..2f2efdb135 100644 Binary files a/graphics/pokemon/furret/anim_front.png and b/graphics/pokemon/furret/anim_front.png differ diff --git a/graphics/pokemon/furret/back.png b/graphics/pokemon/furret/back.png index 1f93600abd..3e46c8876a 100644 Binary files a/graphics/pokemon/furret/back.png and b/graphics/pokemon/furret/back.png differ diff --git a/graphics/pokemon/furret/normal.pal b/graphics/pokemon/furret/normal.pal index e1a23347b0..4c13af07d7 100644 --- a/graphics/pokemon/furret/normal.pal +++ b/graphics/pokemon/furret/normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 82 41 32 -230 197 74 +213 180 106 123 65 57 -32 32 41 -197 156 65 -255 238 148 +16 16 16 +238 213 164 156 98 74 +197 156 65 172 131 41 255 255 197 -255 255 255 +248 248 248 115 115 115 156 0 0 255 148 98 -120 64 56 +0 0 0 0 0 0 diff --git a/graphics/pokemon/furret/shiny.pal b/graphics/pokemon/furret/shiny.pal index 75a750fcab..79bd6092c0 100644 --- a/graphics/pokemon/furret/shiny.pal +++ b/graphics/pokemon/furret/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -112 0 56 -248 176 184 -160 48 104 -32 32 40 -232 152 160 -248 232 216 -216 88 136 -216 112 120 -248 232 240 +115 0 57 +255 180 189 +164 49 106 +16 16 16 +255 238 222 +222 90 139 +238 156 164 +222 115 123 +255 238 246 248 248 248 -112 112 112 -152 0 0 -248 144 96 -120 64 56 +115 115 115 +156 0 0 +255 148 98 +0 0 0 0 0 0 diff --git a/graphics/pokemon/gastly/anim_front.png b/graphics/pokemon/gastly/anim_front.png index 6bb1447c32..e16ebb069e 100644 Binary files a/graphics/pokemon/gastly/anim_front.png and b/graphics/pokemon/gastly/anim_front.png differ diff --git a/graphics/pokemon/gastly/back.png b/graphics/pokemon/gastly/back.png index 07971e3c49..1d869be915 100644 Binary files a/graphics/pokemon/gastly/back.png and b/graphics/pokemon/gastly/back.png differ diff --git a/graphics/pokemon/gastly/normal.pal b/graphics/pokemon/gastly/normal.pal index 7541f17517..16672b45dc 100644 --- a/graphics/pokemon/gastly/normal.pal +++ b/graphics/pokemon/gastly/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +255 255 255 +222 222 222 +222 82 57 +180 41 16 +255 0 255 +189 148 180 +139 98 131 +115 74 106 +57 41 57 213 172 205 189 148 180 139 98 131 -57 41 57 +255 0 255 +255 0 255 16 16 16 -115 74 106 -139 98 131 -112 72 104 -255 255 255 -180 41 16 -222 82 57 -208 168 192 -216 216 216 -180 41 16 -222 82 57 diff --git a/graphics/pokemon/gastly/shiny.pal b/graphics/pokemon/gastly/shiny.pal index 5984138176..c586f2bf98 100644 --- a/graphics/pokemon/gastly/shiny.pal +++ b/graphics/pokemon/gastly/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -160 224 248 -120 192 232 -88 152 208 -96 24 120 +255 255 255 +222 222 222 +222 82 57 +180 41 16 +255 0 255 +205 164 255 +172 123 205 +123 74 156 +98 24 123 +164 230 255 +123 197 238 +90 156 213 +255 0 255 +255 0 255 16 16 16 -120 72 152 -168 120 200 -112 72 104 -248 248 248 -176 40 16 -216 80 56 -216 80 56 -216 216 216 -176 40 16 -216 80 56 diff --git a/graphics/pokemon/gengar/anim_front.png b/graphics/pokemon/gengar/anim_front.png index 4b1e614ab3..140fa8d81c 100644 Binary files a/graphics/pokemon/gengar/anim_front.png and b/graphics/pokemon/gengar/anim_front.png differ diff --git a/graphics/pokemon/gengar/back.png b/graphics/pokemon/gengar/back.png index de0fa6599e..04b627f9ac 100644 Binary files a/graphics/pokemon/gengar/back.png and b/graphics/pokemon/gengar/back.png differ diff --git a/graphics/pokemon/gengar/normal.pal b/graphics/pokemon/gengar/normal.pal index 16892bb23c..1eb1965ad6 100644 --- a/graphics/pokemon/gengar/normal.pal +++ b/graphics/pokemon/gengar/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -90 74 156 -180 139 189 -16 16 16 -148 115 180 -74 41 74 -123 98 164 -255 90 90 -255 148 148 -189 172 189 255 246 255 -106 98 123 222 213 222 -168 16 16 -72 40 72 -0 0 0 +106 98 123 +255 194 194 +255 144 144 +248 88 88 +189 172 189 +255 0 255 +255 0 255 +120 96 160 +176 136 184 +144 112 180 +90 74 152 +74 41 74 +16 16 16 diff --git a/graphics/pokemon/gengar/shiny.pal b/graphics/pokemon/gengar/shiny.pal index 175c4681e3..8721d43483 100644 --- a/graphics/pokemon/gengar/shiny.pal +++ b/graphics/pokemon/gengar/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 88 120 -144 144 176 -16 16 16 -120 120 152 -56 56 96 +255 255 255 +222 222 222 +106 98 123 +255 205 205 +238 144 144 +184 106 106 +189 172 189 +255 0 255 +255 0 255 104 104 136 -184 104 104 -232 144 144 -184 168 184 -248 240 248 -104 96 120 -216 208 216 -136 56 56 -72 40 72 -0 0 0 +148 148 180 +123 123 156 +90 90 123 +57 57 98 +16 16 16 diff --git a/graphics/pokemon/glimmet/back.png b/graphics/pokemon/glimmet/back.png index ae7f5f2903..1fb42ce2c3 100755 Binary files a/graphics/pokemon/glimmet/back.png and b/graphics/pokemon/glimmet/back.png differ diff --git a/graphics/pokemon/glimmet/shiny.pal b/graphics/pokemon/glimmet/shiny.pal index 8d56d1fce0..7f1f97e247 100755 --- a/graphics/pokemon/glimmet/shiny.pal +++ b/graphics/pokemon/glimmet/shiny.pal @@ -4,16 +4,16 @@ JASC-PAL 152 208 160 63 171 181 40 89 112 -96 204 248 +201 245 240 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 +70 117 212 +36 70 138 +108 146 229 +141 168 227 67 78 94 0 0 0 diff --git a/graphics/pokemon/glimmora/back.png b/graphics/pokemon/glimmora/back.png index f11e202262..2cb02cad48 100755 Binary files a/graphics/pokemon/glimmora/back.png and b/graphics/pokemon/glimmora/back.png differ diff --git a/graphics/pokemon/glimmora/shiny.pal b/graphics/pokemon/glimmora/shiny.pal index 93b368079f..e7815983e0 100755 --- a/graphics/pokemon/glimmora/shiny.pal +++ b/graphics/pokemon/glimmora/shiny.pal @@ -5,14 +5,14 @@ JASC-PAL 53 103 115 16 16 16 217 255 247 -99 191 188 -16 24 96 +184 255 240 +32 111 131 87 222 219 -65 143 199 -80 156 240 -56 48 104 -133 144 249 -87 88 181 +78 187 217 +163 255 235 +28 81 186 +92 144 249 +63 119 232 32 40 80 48 68 120 120 152 184 diff --git a/graphics/pokemon/grimer/anim_front.png b/graphics/pokemon/grimer/anim_front.png index a2363840e7..312a64aa5a 100644 Binary files a/graphics/pokemon/grimer/anim_front.png and b/graphics/pokemon/grimer/anim_front.png differ diff --git a/graphics/pokemon/grimer/back.png b/graphics/pokemon/grimer/back.png index 280c733fc5..030242885e 100644 Binary files a/graphics/pokemon/grimer/back.png and b/graphics/pokemon/grimer/back.png differ diff --git a/graphics/pokemon/grimer/normal.pal b/graphics/pokemon/grimer/normal.pal index b7c371b486..5d2c17fd75 100644 --- a/graphics/pokemon/grimer/normal.pal +++ b/graphics/pokemon/grimer/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -156 106 156 -222 172 222 -98 57 123 -238 222 238 -180 139 180 -16 16 16 -123 74 131 -248 248 248 +255 255 255 +213 213 222 +172 180 189 131 139 156 65 74 90 -172 180 189 -208 208 216 -0 0 0 -0 0 0 -0 0 0 +238 222 238 +222 172 222 +180 139 180 +156 106 156 +123 74 131 +98 57 123 +255 0 255 +255 0 255 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/grimer/shiny.pal b/graphics/pokemon/grimer/shiny.pal index 96ae46dcbe..c5fa29f3f9 100644 --- a/graphics/pokemon/grimer/shiny.pal +++ b/graphics/pokemon/grimer/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -128 176 96 -184 224 144 -72 120 40 -200 240 160 -152 200 128 +152 160 208 +255 255 255 +213 213 222 +172 180 189 +131 139 156 +65 74 90 +205 246 164 +189 230 148 +156 205 131 +131 180 98 +98 148 65 +74 123 41 +255 0 255 +255 0 255 +255 0 255 16 16 16 -96 144 64 -248 248 248 -128 136 152 -64 72 88 -168 176 184 -208 208 216 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/haunter/anim_front.png b/graphics/pokemon/haunter/anim_front.png index 03156dfa4c..63415497c9 100644 Binary files a/graphics/pokemon/haunter/anim_front.png and b/graphics/pokemon/haunter/anim_front.png differ diff --git a/graphics/pokemon/haunter/back.png b/graphics/pokemon/haunter/back.png index dccfa74425..babc9f43c5 100644 Binary files a/graphics/pokemon/haunter/back.png and b/graphics/pokemon/haunter/back.png differ diff --git a/graphics/pokemon/haunter/normal.pal b/graphics/pokemon/haunter/normal.pal index 79ac421466..8458b3532d 100644 --- a/graphics/pokemon/haunter/normal.pal +++ b/graphics/pokemon/haunter/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 88 136 -192 152 200 -80 64 96 +213 164 222 +197 156 205 +172 131 197 +131 90 139 +82 65 98 +255 0 255 +255 0 255 +255 0 255 +222 90 164 +180 24 98 +106 0 0 +213 213 213 +115 115 115 16 16 16 -168 128 192 -248 248 248 -112 112 112 -176 24 96 -216 88 160 -208 208 208 -104 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/haunter/shiny.pal b/graphics/pokemon/haunter/shiny.pal index 8c2ce31bcf..b935601171 100644 --- a/graphics/pokemon/haunter/shiny.pal +++ b/graphics/pokemon/haunter/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 88 112 -192 136 208 -80 64 104 +213 164 230 +197 139 213 +172 106 213 +131 90 115 +82 65 106 +255 0 255 +255 0 255 +255 0 255 +90 148 255 +41 98 213 +8 49 164 +213 213 213 +115 115 115 16 16 16 -168 104 208 -248 248 248 -112 112 112 -40 96 208 -88 144 248 -208 208 208 -8 48 160 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/hitmonchan/anim_front.png b/graphics/pokemon/hitmonchan/anim_front.png index ee3725e0ee..d615ae6a72 100644 Binary files a/graphics/pokemon/hitmonchan/anim_front.png and b/graphics/pokemon/hitmonchan/anim_front.png differ diff --git a/graphics/pokemon/hitmonchan/back.png b/graphics/pokemon/hitmonchan/back.png index 8f5bd8ded7..e30cbba5fd 100644 Binary files a/graphics/pokemon/hitmonchan/back.png and b/graphics/pokemon/hitmonchan/back.png differ diff --git a/graphics/pokemon/hitmonchan/normal.pal b/graphics/pokemon/hitmonchan/normal.pal index 2124609315..aee2892bf1 100644 --- a/graphics/pokemon/hitmonchan/normal.pal +++ b/graphics/pokemon/hitmonchan/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -90 65 16 -205 180 123 -16 16 16 -164 139 115 -238 213 156 255 246 255 -98 74 115 +222 205 222 +197 180 197 +164 156 164 98 74 115 189 49 74 255 148 90 230 98 74 +189 49 74 139 32 0 -164 156 164 -197 180 197 -232 128 120 +238 213 156 +205 180 123 +164 139 115 +90 65 16 +16 16 16 diff --git a/graphics/pokemon/hitmonchan/shiny.pal b/graphics/pokemon/hitmonchan/shiny.pal index 87ff42e4b6..6a2f264915 100644 --- a/graphics/pokemon/hitmonchan/shiny.pal +++ b/graphics/pokemon/hitmonchan/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -88 96 24 -192 208 96 +208 152 160 +246 246 255 +213 205 222 +189 180 197 +156 156 164 +90 74 115 +189 49 74 +65 180 255 +24 131 213 +0 90 180 +0 49 148 +230 246 139 +197 213 98 +148 164 65 +106 123 8 16 16 16 -144 160 64 -224 240 136 -248 240 248 -88 72 112 -96 96 168 -32 104 176 -120 184 224 -80 152 200 -16 48 112 -144 144 152 -184 176 192 -204 77 77 diff --git a/graphics/pokemon/hitmonlee/anim_front.png b/graphics/pokemon/hitmonlee/anim_front.png index 305a858f83..0062524a88 100644 Binary files a/graphics/pokemon/hitmonlee/anim_front.png and b/graphics/pokemon/hitmonlee/anim_front.png differ diff --git a/graphics/pokemon/hitmonlee/back.png b/graphics/pokemon/hitmonlee/back.png index 303f139f59..10a59d797e 100644 Binary files a/graphics/pokemon/hitmonlee/back.png and b/graphics/pokemon/hitmonlee/back.png differ diff --git a/graphics/pokemon/hitmonlee/normal.pal b/graphics/pokemon/hitmonlee/normal.pal index ef9db09638..5543d83814 100644 --- a/graphics/pokemon/hitmonlee/normal.pal +++ b/graphics/pokemon/hitmonlee/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -131 90 57 -164 123 115 -205 164 131 -98 57 24 238 197 164 +205 164 131 +164 123 115 +131 90 57 +98 57 24 +255 255 255 +213 205 205 115 98 98 -41 41 41 -248 248 248 -208 200 200 -90 74 41 -189 180 106 238 230 180 189 180 106 -240 224 168 -0 0 0 +90 74 41 +238 255 148 +197 205 115 +115 123 32 +41 41 41 diff --git a/graphics/pokemon/hitmonlee/shiny.pal b/graphics/pokemon/hitmonlee/shiny.pal index f50482897d..e3aa7e63a6 100644 --- a/graphics/pokemon/hitmonlee/shiny.pal +++ b/graphics/pokemon/hitmonlee/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -64 88 0 -96 120 16 -152 168 56 -32 56 8 -184 200 88 -112 96 96 -16 16 16 -248 248 248 -208 200 200 -88 56 40 -184 160 104 -232 216 176 -184 160 104 -232 216 176 -0 0 0 +152 160 208 +189 205 74 +148 172 41 +98 123 8 +65 90 0 +41 65 0 +255 255 255 +213 205 205 +115 98 98 +238 222 180 +189 164 106 +90 57 41 +230 255 148 +189 205 115 +106 123 32 +41 41 41 diff --git a/graphics/pokemon/hitmontop/anim_front.png b/graphics/pokemon/hitmontop/anim_front.png index 65ef049e10..b664f90c39 100644 Binary files a/graphics/pokemon/hitmontop/anim_front.png and b/graphics/pokemon/hitmontop/anim_front.png differ diff --git a/graphics/pokemon/hitmontop/back.png b/graphics/pokemon/hitmontop/back.png index ca3daf80bc..bf440a3bb2 100644 Binary files a/graphics/pokemon/hitmontop/back.png and b/graphics/pokemon/hitmontop/back.png differ diff --git a/graphics/pokemon/hitmontop/normal.pal b/graphics/pokemon/hitmontop/normal.pal index c8cb22d510..c600d5c24d 100644 --- a/graphics/pokemon/hitmontop/normal.pal +++ b/graphics/pokemon/hitmontop/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -144 144 152 -96 96 104 -248 248 248 -200 200 200 -72 112 192 -96 152 216 -136 184 232 -80 88 144 -128 88 40 +255 255 255 +255 222 156 +222 189 131 +180 139 90 +131 90 41 +139 189 238 +98 156 222 +74 115 197 +82 90 148 +197 74 49 +123 32 24 +205 205 205 +148 148 156 +98 98 106 16 16 16 -216 184 128 -176 136 88 -248 216 152 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/hitmontop/shiny.pal b/graphics/pokemon/hitmontop/shiny.pal index 2928758f4e..8e26aff7f2 100644 --- a/graphics/pokemon/hitmontop/shiny.pal +++ b/graphics/pokemon/hitmontop/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -144 144 152 -96 96 104 -248 248 248 -200 200 200 -144 72 160 -208 120 200 -240 152 216 -112 48 96 -112 104 80 +255 255 255 +238 238 230 +213 213 197 +172 164 156 +115 106 82 +246 156 222 +213 123 205 +164 82 180 +139 49 123 +197 74 49 +123 32 24 +205 205 205 +148 148 156 +98 98 106 16 16 16 -208 208 192 -168 160 152 -232 232 224 -144 144 152 -0 0 0 diff --git a/graphics/pokemon/hypno/anim_front.png b/graphics/pokemon/hypno/anim_front.png index d96bd7613d..73a791256a 100644 Binary files a/graphics/pokemon/hypno/anim_front.png and b/graphics/pokemon/hypno/anim_front.png differ diff --git a/graphics/pokemon/hypno/anim_frontf.png b/graphics/pokemon/hypno/anim_frontf.png index 692bb8933b..05e99f7645 100644 Binary files a/graphics/pokemon/hypno/anim_frontf.png and b/graphics/pokemon/hypno/anim_frontf.png differ diff --git a/graphics/pokemon/hypno/back.png b/graphics/pokemon/hypno/back.png index 8a7987d1ea..118eba568e 100644 Binary files a/graphics/pokemon/hypno/back.png and b/graphics/pokemon/hypno/back.png differ diff --git a/graphics/pokemon/hypno/backf.png b/graphics/pokemon/hypno/backf.png index a92c0b9917..746fdcb5da 100644 Binary files a/graphics/pokemon/hypno/backf.png and b/graphics/pokemon/hypno/backf.png differ diff --git a/graphics/pokemon/hypno/normal.pal b/graphics/pokemon/hypno/normal.pal index be159251d4..1a211d4f6d 100644 --- a/graphics/pokemon/hypno/normal.pal +++ b/graphics/pokemon/hypno/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 96 48 -104 80 0 -240 216 0 0 0 0 -176 144 32 -88 64 40 -248 232 112 -216 184 64 -128 144 160 -80 88 104 -248 248 248 -152 168 184 -200 216 232 -160 128 88 +106 82 0 +180 148 32 +222 189 65 +246 222 0 +255 238 115 +90 65 41 +139 98 49 +164 131 90 +82 90 106 +131 148 164 +156 172 189 +205 222 238 +255 255 255 0 0 0 diff --git a/graphics/pokemon/hypno/shiny.pal b/graphics/pokemon/hypno/shiny.pal index ffcdb1df7a..b325ea1da4 100644 --- a/graphics/pokemon/hypno/shiny.pal +++ b/graphics/pokemon/hypno/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 96 48 -136 48 80 -232 144 176 -16 16 16 -168 80 112 -88 64 40 -248 176 208 -200 112 168 -160 144 128 -104 88 80 -248 248 248 -184 168 152 -232 216 200 0 0 0 +139 49 82 +172 82 115 +205 106 164 +238 148 180 +255 172 205 +90 65 41 +128 64 40 +136 72 48 +106 90 82 +164 148 131 +189 172 156 +238 222 205 +255 255 255 0 0 0 diff --git a/graphics/pokemon/jellicent/anim_front.png b/graphics/pokemon/jellicent/anim_front.png index 4e08f51dd7..894a95327b 100644 Binary files a/graphics/pokemon/jellicent/anim_front.png and b/graphics/pokemon/jellicent/anim_front.png differ diff --git a/graphics/pokemon/jellicent/anim_frontf.png b/graphics/pokemon/jellicent/anim_frontf.png index d94a329aa6..9ac8ad0320 100644 Binary files a/graphics/pokemon/jellicent/anim_frontf.png and b/graphics/pokemon/jellicent/anim_frontf.png differ diff --git a/graphics/pokemon/kingler/anim_front.png b/graphics/pokemon/kingler/anim_front.png index d60fedc190..fff0a1cb4e 100644 Binary files a/graphics/pokemon/kingler/anim_front.png and b/graphics/pokemon/kingler/anim_front.png differ diff --git a/graphics/pokemon/kingler/back.png b/graphics/pokemon/kingler/back.png index 94feeee730..65b5d137e5 100644 Binary files a/graphics/pokemon/kingler/back.png and b/graphics/pokemon/kingler/back.png differ diff --git a/graphics/pokemon/kingler/normal.pal b/graphics/pokemon/kingler/normal.pal index d05177eee1..78dcded55c 100644 --- a/graphics/pokemon/kingler/normal.pal +++ b/graphics/pokemon/kingler/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -131 41 8 +246 197 139 255 139 82 180 90 74 -16 16 16 -246 197 139 -74 49 32 -222 172 156 -115 82 16 -90 65 49 +131 41 8 255 246 222 +222 172 156 164 106 65 -255 255 255 +115 82 16 +255 16 255 +90 65 49 +74 49 32 +255 16 255 189 189 230 -0 0 0 -0 0 0 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/kingler/shiny.pal b/graphics/pokemon/kingler/shiny.pal index 5c9922a8e8..628e75ebf2 100644 --- a/graphics/pokemon/kingler/shiny.pal +++ b/graphics/pokemon/kingler/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -64 80 0 -136 152 72 -104 112 48 +152 160 208 +180 197 115 +139 156 74 +106 115 49 +74 90 0 +230 246 197 +205 213 115 +148 139 57 +106 98 8 +255 16 255 +90 65 49 +74 49 32 +255 16 255 +222 222 246 16 16 16 -176 192 112 -56 40 24 -200 208 112 -104 96 8 -88 64 56 -224 240 192 -144 136 56 -248 248 248 -184 184 224 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/koffing/anim_front.png b/graphics/pokemon/koffing/anim_front.png index 891ee864d6..2b70b2cf53 100644 Binary files a/graphics/pokemon/koffing/anim_front.png and b/graphics/pokemon/koffing/anim_front.png differ diff --git a/graphics/pokemon/koffing/back.png b/graphics/pokemon/koffing/back.png index 53938fdeb2..e97a5ba3e6 100644 Binary files a/graphics/pokemon/koffing/back.png and b/graphics/pokemon/koffing/back.png differ diff --git a/graphics/pokemon/koffing/normal.pal b/graphics/pokemon/koffing/normal.pal index 3bc7ed3d86..255edac9cc 100644 --- a/graphics/pokemon/koffing/normal.pal +++ b/graphics/pokemon/koffing/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -238 213 106 +255 255 255 +222 222 222 +246 238 205 +205 205 172 +238 115 139 +180 90 123 +255 0 255 246 238 148 +238 213 106 197 180 41 -115 90 156 205 189 238 172 148 205 +115 90 156 74 41 90 16 16 16 -248 248 248 -216 216 216 -180 90 123 -238 115 139 -205 205 172 -246 238 205 -0 0 0 diff --git a/graphics/pokemon/koffing/shiny.pal b/graphics/pokemon/koffing/shiny.pal index 169eb24a04..672d7d4acd 100644 --- a/graphics/pokemon/koffing/shiny.pal +++ b/graphics/pokemon/koffing/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -176 128 176 -208 168 208 -136 88 136 -96 128 128 -176 224 232 +160 208 152 +255 255 255 +222 222 222 +246 238 148 +213 205 106 +255 98 74 +213 57 32 +255 0 255 +222 156 213 +180 123 180 +139 74 139 +180 230 238 136 176 184 +96 128 128 56 80 88 16 16 16 -248 248 248 -216 216 216 -192 80 64 -248 128 112 -208 200 104 -240 232 144 -0 0 0 diff --git a/graphics/pokemon/krabby/anim_front.png b/graphics/pokemon/krabby/anim_front.png index 69d4f372d1..afd1ef7216 100644 Binary files a/graphics/pokemon/krabby/anim_front.png and b/graphics/pokemon/krabby/anim_front.png differ diff --git a/graphics/pokemon/krabby/back.png b/graphics/pokemon/krabby/back.png index ef6d9fee57..5cfafa395f 100644 Binary files a/graphics/pokemon/krabby/back.png and b/graphics/pokemon/krabby/back.png differ diff --git a/graphics/pokemon/krabby/normal.pal b/graphics/pokemon/krabby/normal.pal index 04c1672e79..d8bf9fd9a0 100644 --- a/graphics/pokemon/krabby/normal.pal +++ b/graphics/pokemon/krabby/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -222 57 57 -255 115 49 +255 255 255 +222 222 222 +255 0 255 +255 230 197 +205 172 139 +172 131 74 +115 82 16 +90 65 32 +255 0 255 +255 0 255 255 164 98 +255 115 49 +222 57 57 156 41 8 16 16 16 -90 65 32 -205 172 139 -115 82 16 -172 131 74 -255 230 197 -248 248 248 -222 222 222 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/krabby/shiny.pal b/graphics/pokemon/krabby/shiny.pal index 7128e1de0f..07ac355421 100644 --- a/graphics/pokemon/krabby/shiny.pal +++ b/graphics/pokemon/krabby/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 152 40 -216 200 40 -248 232 112 -120 96 24 +255 255 255 +222 222 222 +255 0 255 +255 246 222 +230 205 164 +189 156 106 +131 115 65 +106 98 74 +255 0 255 +255 0 255 +255 230 32 +222 197 0 +180 156 41 +148 115 0 16 16 16 -88 64 48 -224 200 160 -128 112 64 -184 152 104 -248 240 216 -248 248 248 -216 216 216 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/lickitung/anim_front.png b/graphics/pokemon/lickitung/anim_front.png index 1a6c1aa9cf..c8b1a27945 100644 Binary files a/graphics/pokemon/lickitung/anim_front.png and b/graphics/pokemon/lickitung/anim_front.png differ diff --git a/graphics/pokemon/lickitung/back.png b/graphics/pokemon/lickitung/back.png index ab93fb8842..b3406dc822 100644 Binary files a/graphics/pokemon/lickitung/back.png and b/graphics/pokemon/lickitung/back.png differ diff --git a/graphics/pokemon/lickitung/normal.pal b/graphics/pokemon/lickitung/normal.pal index 520baee770..2b8242a67f 100644 --- a/graphics/pokemon/lickitung/normal.pal +++ b/graphics/pokemon/lickitung/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 64 80 -120 24 16 -232 112 136 -248 152 168 -248 248 248 -248 200 208 -200 192 200 -224 208 112 +255 255 255 +197 197 197 +255 255 180 +230 213 115 +131 123 32 +255 209 241 +255 189 222 +213 139 172 +156 74 98 +255 205 213 +255 156 172 +238 115 139 +180 65 82 +123 24 16 16 16 16 -152 72 96 -208 136 168 -248 184 216 -248 248 176 -128 120 32 -0 0 0 diff --git a/graphics/pokemon/lickitung/shiny.pal b/graphics/pokemon/lickitung/shiny.pal index 29ccdfb690..9af533e830 100644 --- a/graphics/pokemon/lickitung/shiny.pal +++ b/graphics/pokemon/lickitung/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -144 136 32 -96 96 16 -192 184 40 -232 232 88 -248 248 248 -248 248 168 -200 192 200 -232 216 112 +255 255 255 +222 213 222 +255 255 164 +230 213 115 +131 123 32 +255 172 164 +255 131 123 +222 98 98 +139 57 57 +255 255 156 +238 238 90 +197 189 41 +164 156 8 +123 115 0 16 16 16 -136 56 56 -208 88 88 -248 136 128 -248 248 176 -128 120 32 -0 0 0 diff --git a/graphics/pokemon/magnemite/anim_front.png b/graphics/pokemon/magnemite/anim_front.png index d240d64bca..5b60a52772 100644 Binary files a/graphics/pokemon/magnemite/anim_front.png and b/graphics/pokemon/magnemite/anim_front.png differ diff --git a/graphics/pokemon/magnemite/back.png b/graphics/pokemon/magnemite/back.png index e1b35043bb..0ddc6b9b86 100644 Binary files a/graphics/pokemon/magnemite/back.png and b/graphics/pokemon/magnemite/back.png differ diff --git a/graphics/pokemon/magnemite/normal.pal b/graphics/pokemon/magnemite/normal.pal index 50084032ff..ec9d62291b 100644 --- a/graphics/pokemon/magnemite/normal.pal +++ b/graphics/pokemon/magnemite/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -139 139 139 -222 255 230 +152 160 208 +255 255 255 213 213 213 +180 180 180 +139 139 139 82 74 74 -16 16 16 57 49 49 255 139 74 238 24 0 -139 180 164 -180 213 189 -90 131 98 82 205 246 41 131 172 -168 168 168 -255 255 255 +222 255 230 +180 213 189 +139 180 164 +90 131 98 +16 16 16 diff --git a/graphics/pokemon/magnemite/shiny.pal b/graphics/pokemon/magnemite/shiny.pal index 906f25a0a2..644ce56eee 100644 --- a/graphics/pokemon/magnemite/shiny.pal +++ b/graphics/pokemon/magnemite/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -136 136 136 -248 248 248 -208 208 208 -80 72 72 +255 255 255 +213 213 213 +180 180 180 +139 139 139 +82 74 74 +57 49 49 +88 88 88 +32 32 32 +88 88 88 +32 32 32 +255 255 205 +230 222 172 +197 180 148 +148 139 82 16 16 16 -56 48 48 -176 176 176 -80 72 72 -192 176 144 -224 216 168 -144 136 80 -176 176 176 -80 72 72 -176 176 176 -248 248 200 diff --git a/graphics/pokemon/magneton/anim_front.png b/graphics/pokemon/magneton/anim_front.png index 72a8aa907e..e9a57fcf72 100644 Binary files a/graphics/pokemon/magneton/anim_front.png and b/graphics/pokemon/magneton/anim_front.png differ diff --git a/graphics/pokemon/magneton/back.png b/graphics/pokemon/magneton/back.png index 7a45ee78dd..038cd4b1eb 100644 Binary files a/graphics/pokemon/magneton/back.png and b/graphics/pokemon/magneton/back.png differ diff --git a/graphics/pokemon/magneton/normal.pal b/graphics/pokemon/magneton/normal.pal index 55f2f9d992..35aff4d063 100644 --- a/graphics/pokemon/magneton/normal.pal +++ b/graphics/pokemon/magneton/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 +152 160 208 +255 255 255 +213 213 213 +180 180 180 +139 139 139 82 74 74 57 49 49 255 139 74 -16 16 16 238 24 0 -139 139 139 82 205 246 -213 213 213 41 131 172 -208 208 208 -74 98 74 +213 246 222 180 213 189 131 156 156 -248 248 248 -168 168 168 +74 98 74 +16 16 16 diff --git a/graphics/pokemon/magneton/shiny.pal b/graphics/pokemon/magneton/shiny.pal index 36ca0b6263..644ce56eee 100644 --- a/graphics/pokemon/magneton/shiny.pal +++ b/graphics/pokemon/magneton/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -80 72 72 -56 48 48 -136 136 136 +255 255 255 +213 213 213 +180 180 180 +139 139 139 +82 74 74 +57 49 49 +88 88 88 +32 32 32 +88 88 88 +32 32 32 +255 255 205 +230 222 172 +197 180 148 +148 139 82 16 16 16 -56 48 48 -136 136 136 -136 136 136 -248 248 248 -56 48 48 -208 208 208 -128 120 64 -224 216 168 -192 176 144 -248 248 248 -176 176 176 diff --git a/graphics/pokemon/marill/anim_front.png b/graphics/pokemon/marill/anim_front.png index e9815f4894..8a9e7bfaa3 100644 Binary files a/graphics/pokemon/marill/anim_front.png and b/graphics/pokemon/marill/anim_front.png differ diff --git a/graphics/pokemon/marill/normal.pal b/graphics/pokemon/marill/normal.pal index cf71923a68..17d6220af3 100644 --- a/graphics/pokemon/marill/normal.pal +++ b/graphics/pokemon/marill/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -40 152 240 -112 200 248 -168 232 248 -48 80 184 -72 168 240 -144 24 0 -216 72 0 -240 128 0 +49 106 172 +90 156 238 +123 180 246 +24 57 115 +65 131 205 +148 16 16 +189 41 49 +222 65 82 16 16 16 248 248 248 -224 224 232 -56 64 64 -200 200 216 +197 230 238 +98 98 98 +180 197 205 0 0 0 0 0 0 diff --git a/graphics/pokemon/marowak/anim_front.png b/graphics/pokemon/marowak/anim_front.png index 696a9633a9..bbfaad3734 100644 Binary files a/graphics/pokemon/marowak/anim_front.png and b/graphics/pokemon/marowak/anim_front.png differ diff --git a/graphics/pokemon/marowak/back.png b/graphics/pokemon/marowak/back.png index 76acb2c823..82a9c2da99 100644 Binary files a/graphics/pokemon/marowak/back.png and b/graphics/pokemon/marowak/back.png differ diff --git a/graphics/pokemon/marowak/normal.pal b/graphics/pokemon/marowak/normal.pal index 6aa7063f20..a82b6c9a83 100644 --- a/graphics/pokemon/marowak/normal.pal +++ b/graphics/pokemon/marowak/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -139 139 106 -248 248 248 -16 16 16 +255 255 255 +230 230 230 197 197 205 +139 139 106 82 74 57 -224 224 232 -90 65 16 -197 156 74 +16 16 16 148 106 82 -224 176 120 -176 144 136 -120 88 80 +197 156 74 +246 197 148 230 148 82 189 115 57 -246 197 148 +222 189 106 +197 156 74 +148 106 82 +90 65 16 diff --git a/graphics/pokemon/marowak/shiny.pal b/graphics/pokemon/marowak/shiny.pal index b074efb1b5..7c45006bb1 100644 --- a/graphics/pokemon/marowak/shiny.pal +++ b/graphics/pokemon/marowak/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -120 136 112 -248 248 248 +152 160 208 +255 255 255 +230 222 222 +197 189 189 +123 139 115 +65 74 74 16 16 16 -192 184 184 -64 72 72 -224 216 216 -64 96 24 -160 200 72 -104 152 72 -192 232 112 -160 200 72 -104 152 72 -216 168 104 -168 128 64 -232 208 144 +132 94 72 +189 148 66 +238 213 148 +222 164 82 +180 131 57 +197 238 115 +156 197 74 +106 156 65 +57 106 0 diff --git a/graphics/pokemon/meowscarada/back.png b/graphics/pokemon/meowscarada/back.png index be47fc78dd..c8f646f7a4 100644 Binary files a/graphics/pokemon/meowscarada/back.png and b/graphics/pokemon/meowscarada/back.png differ diff --git a/graphics/pokemon/meowscarada/front.png b/graphics/pokemon/meowscarada/front.png index 5ca21ac5ea..1f9c447edc 100644 Binary files a/graphics/pokemon/meowscarada/front.png and b/graphics/pokemon/meowscarada/front.png differ diff --git a/graphics/pokemon/meowscarada/normal.pal b/graphics/pokemon/meowscarada/normal.pal index 2b5658b5e2..3bd755570a 100644 --- a/graphics/pokemon/meowscarada/normal.pal +++ b/graphics/pokemon/meowscarada/normal.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -153 210 164 -40 65 48 +14 +153 211 165 +41 65 49 +99 126 95 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 +16 16 16 +69 93 65 +95 31 51 +242 94 141 +162 66 98 +1 113 37 +176 191 147 +1 155 53 +1 65 22 +232 242 215 diff --git a/graphics/pokemon/meowscarada/shiny.pal b/graphics/pokemon/meowscarada/shiny.pal index d9fe0abfb0..0ba08b9a89 100644 --- a/graphics/pokemon/meowscarada/shiny.pal +++ b/graphics/pokemon/meowscarada/shiny.pal @@ -1,19 +1,17 @@ JASC-PAL 0100 -16 -153 210 164 -40 65 48 +14 +153 211 165 +1 45 41 +6 102 71 21 31 25 +16 16 16 13 71 67 -6 6 6 -0 85 65 -0 64 18 -0 125 91 -227 249 220 -122 77 171 -140 179 150 +63 49 98 159 105 205 -159 190 166 -101 25 45 -83 97 78 -191 167 212 +96 75 150 +27 99 97 +167 205 186 +1 143 104 +1 65 22 +228 250 236 diff --git a/graphics/pokemon/miltank/anim_front.png b/graphics/pokemon/miltank/anim_front.png index 97eb281ed2..896b3e7413 100644 Binary files a/graphics/pokemon/miltank/anim_front.png and b/graphics/pokemon/miltank/anim_front.png differ diff --git a/graphics/pokemon/miltank/normal.pal b/graphics/pokemon/miltank/normal.pal index 3d87da5b98..2679272407 100644 --- a/graphics/pokemon/miltank/normal.pal +++ b/graphics/pokemon/miltank/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 200 200 248 -72 88 96 -16 16 16 +90 90 98 +0 0 0 248 248 248 -112 120 128 -40 48 56 -152 88 96 -248 176 192 -200 176 96 -224 128 152 -104 56 64 -32 88 192 -248 192 208 -232 240 168 -88 88 56 -216 200 120 +172 172 180 +49 49 49 +156 98 106 +246 180 164 +213 172 115 +213 139 131 +106 65 65 +32 123 205 +238 213 189 +255 238 180 +115 98 57 +255 213 131 diff --git a/graphics/pokemon/muk/anim_front.png b/graphics/pokemon/muk/anim_front.png index 0f9c23f51b..dad71c460e 100644 Binary files a/graphics/pokemon/muk/anim_front.png and b/graphics/pokemon/muk/anim_front.png differ diff --git a/graphics/pokemon/muk/back.png b/graphics/pokemon/muk/back.png index 1a197e4695..d0fc344d68 100644 Binary files a/graphics/pokemon/muk/back.png and b/graphics/pokemon/muk/back.png differ diff --git a/graphics/pokemon/muk/normal.pal b/graphics/pokemon/muk/normal.pal index f35af64a4e..3737ca4aa4 100644 --- a/graphics/pokemon/muk/normal.pal +++ b/graphics/pokemon/muk/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -123 74 131 +255 255 255 +213 213 222 +172 180 189 +131 139 156 +65 74 90 +238 222 238 230 189 238 197 164 205 164 123 172 +123 74 131 90 49 115 +144 96 152 +255 0 255 +255 0 255 16 16 16 -248 248 248 -172 180 189 -65 74 90 -131 139 156 -224 208 232 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/muk/shiny.pal b/graphics/pokemon/muk/shiny.pal index 082d96af73..7a972bc544 100644 --- a/graphics/pokemon/muk/shiny.pal +++ b/graphics/pokemon/muk/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -88 136 56 -176 216 136 -144 192 120 -120 168 88 -64 112 32 +152 160 208 +255 255 255 +213 213 222 +172 180 189 +131 139 156 +65 74 90 +197 230 156 +180 222 139 +148 197 123 +123 172 90 +90 139 57 +65 115 32 +104 152 72 +255 0 255 +255 0 255 16 16 16 -248 248 248 -168 176 184 -64 72 88 -128 136 152 -208 232 176 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/munkidori/back.png b/graphics/pokemon/munkidori/back.png index fa7f6ead6f..ab1def646f 100644 Binary files a/graphics/pokemon/munkidori/back.png and b/graphics/pokemon/munkidori/back.png differ diff --git a/graphics/pokemon/munkidori/front.png b/graphics/pokemon/munkidori/front.png index 2cd101836d..a175933449 100644 Binary files a/graphics/pokemon/munkidori/front.png and b/graphics/pokemon/munkidori/front.png differ diff --git a/graphics/pokemon/munkidori/normal.pal b/graphics/pokemon/munkidori/normal.pal index 3502a2878e..0b28eb557a 100644 --- a/graphics/pokemon/munkidori/normal.pal +++ b/graphics/pokemon/munkidori/normal.pal @@ -1,14 +1,14 @@ JASC-PAL 0100 13 -152 208 160 -45 45 45 -78 73 71 -26 29 28 +153 211 165 +36 37 45 +61 61 61 +20 22 24 90 33 73 -202 103 162 122 140 177 174 201 233 +202 103 162 146 57 119 16 16 16 64 74 104 diff --git a/graphics/pokemon/munkidori/shiny.pal b/graphics/pokemon/munkidori/shiny.pal index 9bd9bcaef0..3240a92e03 100644 --- a/graphics/pokemon/munkidori/shiny.pal +++ b/graphics/pokemon/munkidori/shiny.pal @@ -1,14 +1,14 @@ JASC-PAL 0100 13 -152 208 160 -84 74 70 -116 110 108 -26 29 28 +153 211 165 +97 84 80 +145 129 114 +65 56 52 90 33 73 -202 103 162 122 140 177 174 201 233 +202 103 162 146 57 119 16 16 16 64 74 104 diff --git a/graphics/pokemon/nidoking/anim_front.png b/graphics/pokemon/nidoking/anim_front.png index a085144749..22ab26b320 100644 Binary files a/graphics/pokemon/nidoking/anim_front.png and b/graphics/pokemon/nidoking/anim_front.png differ diff --git a/graphics/pokemon/nidoking/back.png b/graphics/pokemon/nidoking/back.png index 6291e963e1..08c067f7f0 100644 Binary files a/graphics/pokemon/nidoking/back.png and b/graphics/pokemon/nidoking/back.png differ diff --git a/graphics/pokemon/onix/anim_front.png b/graphics/pokemon/onix/anim_front.png index 6aab94e97f..933b71d66b 100644 Binary files a/graphics/pokemon/onix/anim_front.png and b/graphics/pokemon/onix/anim_front.png differ diff --git a/graphics/pokemon/onix/back.png b/graphics/pokemon/onix/back.png index 4a9e34afd3..c199fa228d 100644 Binary files a/graphics/pokemon/onix/back.png and b/graphics/pokemon/onix/back.png differ diff --git a/graphics/pokemon/onix/normal.pal b/graphics/pokemon/onix/normal.pal index 3391776633..c57e5be585 100644 --- a/graphics/pokemon/onix/normal.pal +++ b/graphics/pokemon/onix/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -82 74 74 -131 123 123 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +40 32 32 246 238 238 -189 180 180 -16 16 16 222 213 213 -248 248 248 -248 248 248 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +189 180 180 +131 123 123 +82 74 74 +16 16 16 diff --git a/graphics/pokemon/onix/shiny.pal b/graphics/pokemon/onix/shiny.pal index 8cad51aca7..bc6d63ea51 100644 --- a/graphics/pokemon/onix/shiny.pal +++ b/graphics/pokemon/onix/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -88 96 24 -128 136 56 -232 232 136 -160 168 80 +152 160 208 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +40 32 32 +238 246 131 +205 213 98 +172 180 82 +131 148 57 +106 115 24 16 16 16 -200 200 112 -248 248 248 -240 232 232 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/orthworm/back.png b/graphics/pokemon/orthworm/back.png index 99936e302e..f915a289f0 100755 Binary files a/graphics/pokemon/orthworm/back.png and b/graphics/pokemon/orthworm/back.png differ diff --git a/graphics/pokemon/orthworm/front.png b/graphics/pokemon/orthworm/front.png index 4c3ab7c3bd..87535ce92c 100755 Binary files a/graphics/pokemon/orthworm/front.png and b/graphics/pokemon/orthworm/front.png differ diff --git a/graphics/pokemon/orthworm/normal.pal b/graphics/pokemon/orthworm/normal.pal index 998bfee3bf..172abe2db7 100755 --- a/graphics/pokemon/orthworm/normal.pal +++ b/graphics/pokemon/orthworm/normal.pal @@ -15,5 +15,5 @@ JASC-PAL 224 164 152 96 40 56 128 68 72 -88 184 232 -0 0 0 +32 115 229 +26 97 189 diff --git a/graphics/pokemon/orthworm/shiny.pal b/graphics/pokemon/orthworm/shiny.pal index 56117f80ac..cb5b6f2a02 100755 --- a/graphics/pokemon/orthworm/shiny.pal +++ b/graphics/pokemon/orthworm/shiny.pal @@ -6,7 +6,7 @@ JASC-PAL 135 199 210 102 157 165 16 16 16 -240 132 128 +153 216 224 112 92 96 160 144 144 200 192 192 @@ -15,5 +15,5 @@ JASC-PAL 206 182 159 96 40 56 128 68 72 -59 112 145 -0 0 0 +21 76 148 +17 59 115 diff --git a/graphics/pokemon/palafin/back.png b/graphics/pokemon/palafin/back.png index 77432e6367..422cb602f7 100755 Binary files a/graphics/pokemon/palafin/back.png and b/graphics/pokemon/palafin/back.png differ diff --git a/graphics/pokemon/palafin/shiny.pal b/graphics/pokemon/palafin/shiny.pal index ebdbf83aa9..937cbb4fba 100755 --- a/graphics/pokemon/palafin/shiny.pal +++ b/graphics/pokemon/palafin/shiny.pal @@ -4,7 +4,7 @@ JASC-PAL 152 208 160 61 77 167 118 138 252 -136 216 224 +139 158 254 79 100 235 170 181 211 208 236 240 diff --git a/graphics/pokemon/pidgeotto/anim_front.png b/graphics/pokemon/pidgeotto/anim_front.png index 49fc12c0bc..7d9b6e51cd 100644 Binary files a/graphics/pokemon/pidgeotto/anim_front.png and b/graphics/pokemon/pidgeotto/anim_front.png differ diff --git a/graphics/pokemon/pidgeotto/back.png b/graphics/pokemon/pidgeotto/back.png index 43aaed915c..c9b5793f58 100644 Binary files a/graphics/pokemon/pidgeotto/back.png and b/graphics/pokemon/pidgeotto/back.png differ diff --git a/graphics/pokemon/quaquaval/back.png b/graphics/pokemon/quaquaval/back.png index c5655c0b05..d5b1eb3588 100644 Binary files a/graphics/pokemon/quaquaval/back.png and b/graphics/pokemon/quaquaval/back.png differ diff --git a/graphics/pokemon/quaquaval/front.png b/graphics/pokemon/quaquaval/front.png index 9b2fa64a85..9726dc8c6c 100644 Binary files a/graphics/pokemon/quaquaval/front.png and b/graphics/pokemon/quaquaval/front.png differ diff --git a/graphics/pokemon/quaquaval/normal.pal b/graphics/pokemon/quaquaval/normal.pal index 6a7708643c..9a0f731eef 100644 --- a/graphics/pokemon/quaquaval/normal.pal +++ b/graphics/pokemon/quaquaval/normal.pal @@ -1,19 +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 +153 211 165 +39 96 120 +65 155 194 +85 219 230 +16 16 16 +255 255 255 +190 207 234 +40 42 77 +51 63 147 +57 75 238 +239 255 255 +102 50 43 +227 70 15 +148 69 46 +237 169 54 +203 126 41 diff --git a/graphics/pokemon/quaquaval/shiny.pal b/graphics/pokemon/quaquaval/shiny.pal index 8cfb5b857f..3ff9c65959 100644 --- a/graphics/pokemon/quaquaval/shiny.pal +++ b/graphics/pokemon/quaquaval/shiny.pal @@ -1,19 +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 +153 211 165 +75 145 150 +122 183 188 +85 219 230 +16 16 16 +255 255 255 +190 207 234 +81 71 124 +135 125 181 +184 189 248 +239 255 255 +102 50 43 +241 116 33 +148 69 46 +249 216 104 +218 163 61 diff --git a/graphics/pokemon/quaxly/back.png b/graphics/pokemon/quaxly/back.png index 2dd6800ebb..8bd2f3544e 100644 Binary files a/graphics/pokemon/quaxly/back.png and b/graphics/pokemon/quaxly/back.png differ diff --git a/graphics/pokemon/quaxly/front.png b/graphics/pokemon/quaxly/front.png index 0148e5badf..f215fee531 100644 Binary files a/graphics/pokemon/quaxly/front.png and b/graphics/pokemon/quaxly/front.png differ diff --git a/graphics/pokemon/quaxly/normal.pal b/graphics/pokemon/quaxly/normal.pal index b58467e0ac..954e48817a 100644 --- a/graphics/pokemon/quaxly/normal.pal +++ b/graphics/pokemon/quaxly/normal.pal @@ -1,17 +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 +153 211 165 +24 88 120 +49 132 161 +68 187 207 +83 232 239 +248 248 248 +16 16 16 +184 200 224 +120 152 184 +0 88 160 +72 96 112 +128 91 32 +255 219 79 +181 154 48 diff --git a/graphics/pokemon/quaxly/shiny.pal b/graphics/pokemon/quaxly/shiny.pal index 648094baf0..3b3bbd5259 100644 --- a/graphics/pokemon/quaxly/shiny.pal +++ b/graphics/pokemon/quaxly/shiny.pal @@ -1,17 +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 +153 211 165 +54 100 105 +86 194 184 +166 253 234 +222 254 247 +248 248 248 +16 16 16 +184 200 224 +120 152 184 +0 88 160 +72 96 112 +128 91 32 +255 219 79 +181 154 48 diff --git a/graphics/pokemon/quaxwell/back.png b/graphics/pokemon/quaxwell/back.png index f6485a6904..bf7e8ceb27 100644 Binary files a/graphics/pokemon/quaxwell/back.png and b/graphics/pokemon/quaxwell/back.png differ diff --git a/graphics/pokemon/quaxwell/front.png b/graphics/pokemon/quaxwell/front.png index fe58dd3171..0b10f5908c 100644 Binary files a/graphics/pokemon/quaxwell/front.png and b/graphics/pokemon/quaxwell/front.png differ diff --git a/graphics/pokemon/quaxwell/normal.pal b/graphics/pokemon/quaxwell/normal.pal index 96e6f9ee7e..91f50df427 100644 --- a/graphics/pokemon/quaxwell/normal.pal +++ b/graphics/pokemon/quaxwell/normal.pal @@ -1,17 +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 +153 211 165 +17 67 121 +30 124 211 +96 162 222 +33 96 162 +49 138 178 +74 210 230 +16 16 16 +98 103 133 +191 180 99 +252 252 253 +167 174 213 +255 243 107 +110 101 44 diff --git a/graphics/pokemon/quaxwell/shiny.pal b/graphics/pokemon/quaxwell/shiny.pal index 2d76e1631d..df9a4e8bfd 100644 --- a/graphics/pokemon/quaxwell/shiny.pal +++ b/graphics/pokemon/quaxwell/shiny.pal @@ -1,17 +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 +153 211 165 +63 124 154 +166 253 244 +223 255 251 +95 209 222 +43 68 128 +43 85 198 +16 16 16 +98 103 133 +191 180 99 +252 252 253 +167 174 213 +255 243 107 +110 101 44 diff --git a/graphics/pokemon/rabsca/back.png b/graphics/pokemon/rabsca/back.png index 9fea6d557a..e8ac8560b4 100644 Binary files a/graphics/pokemon/rabsca/back.png and b/graphics/pokemon/rabsca/back.png differ diff --git a/graphics/pokemon/rabsca/front.png b/graphics/pokemon/rabsca/front.png index becbd23ed1..90ff24d205 100644 Binary files a/graphics/pokemon/rabsca/front.png and b/graphics/pokemon/rabsca/front.png differ diff --git a/graphics/pokemon/rabsca/normal.pal b/graphics/pokemon/rabsca/normal.pal index 6935e5a615..5b2d39aaa7 100644 --- a/graphics/pokemon/rabsca/normal.pal +++ b/graphics/pokemon/rabsca/normal.pal @@ -1,18 +1,19 @@ 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 +16 +153 211 165 +133 50 171 +207 73 219 +62 25 122 +222 61 117 +252 252 252 +193 47 98 +234 78 121 +245 94 125 +16 16 16 +22 83 133 +31 142 189 +80 223 240 +154 167 201 +163 41 85 +237 61 91 diff --git a/graphics/pokemon/rabsca/shiny.pal b/graphics/pokemon/rabsca/shiny.pal index d3f26a3e93..8c7941e989 100644 --- a/graphics/pokemon/rabsca/shiny.pal +++ b/graphics/pokemon/rabsca/shiny.pal @@ -1,18 +1,19 @@ 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 +16 +153 211 165 +133 50 171 +207 73 219 +62 25 122 +222 61 117 +252 252 252 +193 47 98 +234 78 121 +245 94 125 +16 16 16 +148 75 9 +214 137 12 +255 224 46 +207 185 149 +117 53 43 +178 97 65 diff --git a/graphics/pokemon/rellor/back.png b/graphics/pokemon/rellor/back.png index fee0024338..8d849b9f06 100644 Binary files a/graphics/pokemon/rellor/back.png and b/graphics/pokemon/rellor/back.png differ diff --git a/graphics/pokemon/rellor/front.png b/graphics/pokemon/rellor/front.png index c87d798d8e..23b391802a 100644 Binary files a/graphics/pokemon/rellor/front.png and b/graphics/pokemon/rellor/front.png differ diff --git a/graphics/pokemon/rellor/normal.pal b/graphics/pokemon/rellor/normal.pal index abe74d5ded..a516fd58a7 100644 --- a/graphics/pokemon/rellor/normal.pal +++ b/graphics/pokemon/rellor/normal.pal @@ -1,19 +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 +153 211 165 +91 77 55 +119 99 72 +197 180 170 +158 132 97 +55 51 43 +243 135 37 +87 82 68 +16 16 16 +119 116 99 +77 69 48 +176 167 102 +185 108 38 +162 142 134 +212 212 212 +183 70 149 diff --git a/graphics/pokemon/rellor/shiny.pal b/graphics/pokemon/rellor/shiny.pal index f282be4048..92d3978fa5 100644 --- a/graphics/pokemon/rellor/shiny.pal +++ b/graphics/pokemon/rellor/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -246 242 246 -215 179 36 +153 211 165 +148 75 9 +214 137 12 +255 224 43 +255 224 46 +55 51 43 +255 224 48 +87 82 68 +16 16 16 +119 116 99 +212 204 164 +176 174 163 +214 138 14 +214 136 10 +212 212 212 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/rhydon/anim_front.png b/graphics/pokemon/rhydon/anim_front.png index 758a245b58..e3af357623 100644 Binary files a/graphics/pokemon/rhydon/anim_front.png and b/graphics/pokemon/rhydon/anim_front.png differ diff --git a/graphics/pokemon/rhydon/anim_frontf.png b/graphics/pokemon/rhydon/anim_frontf.png index 31fdb1e04f..b0e58b0e1d 100644 Binary files a/graphics/pokemon/rhydon/anim_frontf.png and b/graphics/pokemon/rhydon/anim_frontf.png differ diff --git a/graphics/pokemon/rhydon/back.png b/graphics/pokemon/rhydon/back.png index 8d810fca79..394072ea20 100644 Binary files a/graphics/pokemon/rhydon/back.png and b/graphics/pokemon/rhydon/back.png differ diff --git a/graphics/pokemon/rhydon/backf.png b/graphics/pokemon/rhydon/backf.png index 4e40dc7798..7c7a065538 100644 Binary files a/graphics/pokemon/rhydon/backf.png and b/graphics/pokemon/rhydon/backf.png differ diff --git a/graphics/pokemon/rhydon/normal.pal b/graphics/pokemon/rhydon/normal.pal index 2658775bce..94daed457b 100644 --- a/graphics/pokemon/rhydon/normal.pal +++ b/graphics/pokemon/rhydon/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -139 139 148 -82 82 90 -197 197 189 -16 16 16 -230 230 222 -248 248 248 -224 224 216 -115 90 49 -255 238 197 +255 255 255 +255 255 197 +230 213 172 180 164 115 +115 90 49 +230 82 57 164 49 16 -230 82 57 -160 48 16 -230 82 57 115 32 16 +255 0 255 +255 0 255 +222 230 230 +181 189 205 +123 131 147 +65 74 90 +16 16 16 diff --git a/graphics/pokemon/rhydon/shiny.pal b/graphics/pokemon/rhydon/shiny.pal index 4f48df440c..6ff4a62c6b 100644 --- a/graphics/pokemon/rhydon/shiny.pal +++ b/graphics/pokemon/rhydon/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -152 144 112 -96 88 64 -216 200 168 +255 255 255 +255 238 197 +230 213 172 +180 164 115 +115 90 49 +230 82 57 +164 49 16 +115 32 16 +255 0 255 +255 0 255 +255 246 213 +222 213 180 +164 156 123 +115 106 74 16 16 16 -248 240 208 -248 248 248 -224 224 216 -112 88 48 -224 208 168 -176 160 112 -160 72 48 -224 120 96 -160 72 48 -224 120 96 -112 32 16 diff --git a/graphics/pokemon/rhyhorn/anim_front.png b/graphics/pokemon/rhyhorn/anim_front.png index 589b7c2f98..94bbb6e3e4 100644 Binary files a/graphics/pokemon/rhyhorn/anim_front.png and b/graphics/pokemon/rhyhorn/anim_front.png differ diff --git a/graphics/pokemon/rhyhorn/anim_frontf.png b/graphics/pokemon/rhyhorn/anim_frontf.png index c086ed4d96..a85f23ff9e 100644 Binary files a/graphics/pokemon/rhyhorn/anim_frontf.png and b/graphics/pokemon/rhyhorn/anim_frontf.png differ diff --git a/graphics/pokemon/rhyhorn/back.png b/graphics/pokemon/rhyhorn/back.png index dfa96100e0..d32c204aa6 100644 Binary files a/graphics/pokemon/rhyhorn/back.png and b/graphics/pokemon/rhyhorn/back.png differ diff --git a/graphics/pokemon/rhyhorn/backf.png b/graphics/pokemon/rhyhorn/backf.png index c5a253b3be..c58b014f86 100644 Binary files a/graphics/pokemon/rhyhorn/backf.png and b/graphics/pokemon/rhyhorn/backf.png differ diff --git a/graphics/pokemon/rhyhorn/normal.pal b/graphics/pokemon/rhyhorn/normal.pal index 19493646a0..01b9d75955 100644 --- a/graphics/pokemon/rhyhorn/normal.pal +++ b/graphics/pokemon/rhyhorn/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +222 230 230 +164 189 197 139 148 156 98 98 131 -222 230 230 57 57 82 -248 248 248 -164 189 197 -16 16 16 172 57 41 -88 8 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +90 8 0 +112 112 144 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/rhyhorn/shiny.pal b/graphics/pokemon/rhyhorn/shiny.pal index e207060d75..8fb03a0257 100644 --- a/graphics/pokemon/rhyhorn/shiny.pal +++ b/graphics/pokemon/rhyhorn/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -160 96 72 -120 48 32 -240 192 160 -56 24 8 -248 248 248 -200 144 112 +246 197 164 +205 148 115 +164 98 74 +123 49 32 +74 24 0 +172 57 41 +90 8 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 16 16 16 -168 56 40 -88 8 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/seel/anim_front.png b/graphics/pokemon/seel/anim_front.png index 9626b88941..5e1923a644 100644 Binary files a/graphics/pokemon/seel/anim_front.png and b/graphics/pokemon/seel/anim_front.png differ diff --git a/graphics/pokemon/seel/back.png b/graphics/pokemon/seel/back.png index 0521176e36..2c7f8706a3 100644 Binary files a/graphics/pokemon/seel/back.png and b/graphics/pokemon/seel/back.png differ diff --git a/graphics/pokemon/seel/normal.pal b/graphics/pokemon/seel/normal.pal index 2868415702..d4b4a1c4f0 100644 --- a/graphics/pokemon/seel/normal.pal +++ b/graphics/pokemon/seel/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -65 82 131 -148 156 180 230 230 246 213 205 238 -16 16 16 -248 248 248 -41 172 164 -106 90 16 -180 148 65 +148 156 180 +65 82 131 246 230 189 -136 48 32 -208 112 88 -248 168 168 -200 176 128 -0 0 0 +222 197 115 +180 148 65 +106 90 16 +255 172 172 +213 115 90 +139 49 32 +255 0 255 +41 172 164 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/seel/shiny.pal b/graphics/pokemon/seel/shiny.pal index 43d60b7753..5b3f96c960 100644 --- a/graphics/pokemon/seel/shiny.pal +++ b/graphics/pokemon/seel/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 120 112 -176 168 160 -232 232 224 -208 208 200 +238 238 230 +213 213 205 +180 172 164 +131 123 115 +246 230 189 +213 189 106 +180 148 65 +106 90 16 +255 172 172 +213 115 90 +139 49 32 +255 0 255 +163 145 128 16 16 16 -248 248 248 -248 0 248 -104 88 16 -176 144 64 -240 224 184 -136 48 32 -208 112 88 -248 168 168 -216 192 112 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/shellder/anim_front.png b/graphics/pokemon/shellder/anim_front.png index ec58b85d15..110cc99bb8 100644 Binary files a/graphics/pokemon/shellder/anim_front.png and b/graphics/pokemon/shellder/anim_front.png differ diff --git a/graphics/pokemon/shellder/back.png b/graphics/pokemon/shellder/back.png index 6a402e9ea1..072f553407 100644 Binary files a/graphics/pokemon/shellder/back.png and b/graphics/pokemon/shellder/back.png differ diff --git a/graphics/pokemon/shellder/normal.pal b/graphics/pokemon/shellder/normal.pal index 462bd5ee49..519374444d 100644 --- a/graphics/pokemon/shellder/normal.pal +++ b/graphics/pokemon/shellder/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -112 88 136 -216 216 240 -152 136 192 -192 184 232 +222 222 246 +197 189 238 +156 139 197 +115 90 139 +74 57 98 +238 172 180 +197 98 106 +123 16 49 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +131 131 148 16 16 16 -72 56 96 -128 128 144 -248 248 248 -120 16 48 -192 96 104 -232 168 176 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/shellder/shiny.pal b/graphics/pokemon/shellder/shiny.pal index 4ec99543dd..a653db1e00 100644 --- a/graphics/pokemon/shellder/shiny.pal +++ b/graphics/pokemon/shellder/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -176 96 32 -248 216 112 -208 128 40 -248 176 48 +255 205 41 +255 164 0 +222 123 0 +197 90 0 +164 49 0 +255 123 65 +205 74 32 +123 32 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +106 106 106 16 16 16 -120 48 24 -128 128 144 -248 248 248 -120 32 16 -200 72 32 -248 120 64 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/spinda_spots/spot_0.png b/graphics/pokemon/spinda/spots/spot_0.png similarity index 100% rename from graphics/spinda_spots/spot_0.png rename to graphics/pokemon/spinda/spots/spot_0.png diff --git a/graphics/spinda_spots/spot_1.png b/graphics/pokemon/spinda/spots/spot_1.png similarity index 100% rename from graphics/spinda_spots/spot_1.png rename to graphics/pokemon/spinda/spots/spot_1.png diff --git a/graphics/spinda_spots/spot_2.png b/graphics/pokemon/spinda/spots/spot_2.png similarity index 100% rename from graphics/spinda_spots/spot_2.png rename to graphics/pokemon/spinda/spots/spot_2.png diff --git a/graphics/spinda_spots/spot_3.png b/graphics/pokemon/spinda/spots/spot_3.png similarity index 100% rename from graphics/spinda_spots/spot_3.png rename to graphics/pokemon/spinda/spots/spot_3.png diff --git a/graphics/pokemon/sprigatito/back.png b/graphics/pokemon/sprigatito/back.png index 61a03040cc..3d5d5ba63c 100644 Binary files a/graphics/pokemon/sprigatito/back.png and b/graphics/pokemon/sprigatito/back.png differ diff --git a/graphics/pokemon/sprigatito/front.png b/graphics/pokemon/sprigatito/front.png index f897380ed8..d700956190 100644 Binary files a/graphics/pokemon/sprigatito/front.png and b/graphics/pokemon/sprigatito/front.png differ diff --git a/graphics/pokemon/sprigatito/normal.pal b/graphics/pokemon/sprigatito/normal.pal index 22667a18d7..c2abcc6f64 100644 --- a/graphics/pokemon/sprigatito/normal.pal +++ b/graphics/pokemon/sprigatito/normal.pal @@ -1,19 +1,16 @@ 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 +13 +0 183 239 +30 68 17 +85 197 37 +56 124 33 +16 16 16 +130 191 131 +199 243 197 +73 106 72 +248 248 248 +192 96 120 +232 128 168 +96 64 88 +160 56 64 diff --git a/graphics/pokemon/sprigatito/shiny.pal b/graphics/pokemon/sprigatito/shiny.pal index b73b81749c..9273340784 100644 --- a/graphics/pokemon/sprigatito/shiny.pal +++ b/graphics/pokemon/sprigatito/shiny.pal @@ -1,19 +1,16 @@ 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 +13 +0 183 239 +30 68 17 +49 174 112 +56 124 33 +16 16 16 +151 202 169 +223 249 232 +87 125 98 +248 248 248 +130 89 179 +185 121 213 +63 41 88 +106 62 117 diff --git a/graphics/pokemon/sprigatito/sprigatito.png b/graphics/pokemon/sprigatito/sprigatito.png deleted file mode 100755 index 04ed46aef2..0000000000 Binary files a/graphics/pokemon/sprigatito/sprigatito.png and /dev/null differ diff --git a/graphics/pokemon/talonflame/anim_front.png b/graphics/pokemon/talonflame/anim_front.png index db505ac63a..c8257da9e2 100644 Binary files a/graphics/pokemon/talonflame/anim_front.png and b/graphics/pokemon/talonflame/anim_front.png differ diff --git a/graphics/pokemon/tangela/anim_front.png b/graphics/pokemon/tangela/anim_front.png index a42e81c244..b9b542e28f 100644 Binary files a/graphics/pokemon/tangela/anim_front.png and b/graphics/pokemon/tangela/anim_front.png differ diff --git a/graphics/pokemon/tangela/back.png b/graphics/pokemon/tangela/back.png index 0cec14c7da..7a491bd9fd 100644 Binary files a/graphics/pokemon/tangela/back.png and b/graphics/pokemon/tangela/back.png differ diff --git a/graphics/pokemon/tangela/normal.pal b/graphics/pokemon/tangela/normal.pal index 03893711c1..fff4b5b407 100644 --- a/graphics/pokemon/tangela/normal.pal +++ b/graphics/pokemon/tangela/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -65 123 148 148 213 246 90 164 205 +65 123 148 32 65 82 -16 16 16 -82 82 82 -180 180 180 -248 248 248 -115 41 41 -172 41 65 255 131 131 222 74 106 -0 0 0 -0 0 0 -0 0 0 +172 41 65 +115 41 41 +255 0 255 +255 0 255 +255 0 255 +180 180 180 +82 82 82 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/tangela/shiny.pal b/graphics/pokemon/tangela/shiny.pal index 66c10f1fc9..fa3d79d32a 100644 --- a/graphics/pokemon/tangela/shiny.pal +++ b/graphics/pokemon/tangela/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -72 144 72 -136 240 88 -104 192 40 -40 80 40 +152 160 208 +136 255 88 +88 200 8 +32 164 32 +16 88 16 +255 148 131 +222 90 106 +172 40 65 +115 41 41 +255 0 255 +255 0 255 +255 0 255 +180 180 180 +82 82 82 16 16 16 -80 80 80 -176 176 176 -248 248 248 -112 40 40 -168 64 80 -248 144 144 -216 80 112 -0 0 0 -0 0 0 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/tauros/aqua/back.png b/graphics/pokemon/tauros/paldean_aqua_breed/back.png similarity index 100% rename from graphics/pokemon/tauros/aqua/back.png rename to graphics/pokemon/tauros/paldean_aqua_breed/back.png diff --git a/graphics/pokemon/tauros/aqua/front.png b/graphics/pokemon/tauros/paldean_aqua_breed/front.png similarity index 100% rename from graphics/pokemon/tauros/aqua/front.png rename to graphics/pokemon/tauros/paldean_aqua_breed/front.png diff --git a/graphics/pokemon/tauros/aqua/icon.png b/graphics/pokemon/tauros/paldean_aqua_breed/icon.png old mode 100755 new mode 100644 similarity index 100% rename from graphics/pokemon/tauros/aqua/icon.png rename to graphics/pokemon/tauros/paldean_aqua_breed/icon.png diff --git a/graphics/pokemon/tauros/aqua/normal.pal b/graphics/pokemon/tauros/paldean_aqua_breed/normal.pal similarity index 100% rename from graphics/pokemon/tauros/aqua/normal.pal rename to graphics/pokemon/tauros/paldean_aqua_breed/normal.pal diff --git a/graphics/pokemon/tauros/aqua/shiny.pal b/graphics/pokemon/tauros/paldean_aqua_breed/shiny.pal similarity index 100% rename from graphics/pokemon/tauros/aqua/shiny.pal rename to graphics/pokemon/tauros/paldean_aqua_breed/shiny.pal diff --git a/graphics/pokemon/tauros/blaze/back.png b/graphics/pokemon/tauros/paldean_blaze_breed/back.png similarity index 100% rename from graphics/pokemon/tauros/blaze/back.png rename to graphics/pokemon/tauros/paldean_blaze_breed/back.png diff --git a/graphics/pokemon/tauros/blaze/front.ase b/graphics/pokemon/tauros/paldean_blaze_breed/front.ase similarity index 100% rename from graphics/pokemon/tauros/blaze/front.ase rename to graphics/pokemon/tauros/paldean_blaze_breed/front.ase diff --git a/graphics/pokemon/tauros/blaze/front.png b/graphics/pokemon/tauros/paldean_blaze_breed/front.png similarity index 100% rename from graphics/pokemon/tauros/blaze/front.png rename to graphics/pokemon/tauros/paldean_blaze_breed/front.png diff --git a/graphics/pokemon/tauros/blaze/icon.png b/graphics/pokemon/tauros/paldean_blaze_breed/icon.png old mode 100755 new mode 100644 similarity index 100% rename from graphics/pokemon/tauros/blaze/icon.png rename to graphics/pokemon/tauros/paldean_blaze_breed/icon.png diff --git a/graphics/pokemon/tauros/blaze/normal.pal b/graphics/pokemon/tauros/paldean_blaze_breed/normal.pal similarity index 100% rename from graphics/pokemon/tauros/blaze/normal.pal rename to graphics/pokemon/tauros/paldean_blaze_breed/normal.pal diff --git a/graphics/pokemon/tauros/blaze/shiny.pal b/graphics/pokemon/tauros/paldean_blaze_breed/shiny.pal similarity index 100% rename from graphics/pokemon/tauros/blaze/shiny.pal rename to graphics/pokemon/tauros/paldean_blaze_breed/shiny.pal diff --git a/graphics/pokemon/tauros/combat/back.png b/graphics/pokemon/tauros/paldean_combat_breed/back.png similarity index 100% rename from graphics/pokemon/tauros/combat/back.png rename to graphics/pokemon/tauros/paldean_combat_breed/back.png diff --git a/graphics/pokemon/tauros/combat/front.png b/graphics/pokemon/tauros/paldean_combat_breed/front.png similarity index 100% rename from graphics/pokemon/tauros/combat/front.png rename to graphics/pokemon/tauros/paldean_combat_breed/front.png diff --git a/graphics/pokemon/tauros/combat/icon.png b/graphics/pokemon/tauros/paldean_combat_breed/icon.png old mode 100755 new mode 100644 similarity index 100% rename from graphics/pokemon/tauros/combat/icon.png rename to graphics/pokemon/tauros/paldean_combat_breed/icon.png diff --git a/graphics/pokemon/tauros/combat/normal.pal b/graphics/pokemon/tauros/paldean_combat_breed/normal.pal similarity index 100% rename from graphics/pokemon/tauros/combat/normal.pal rename to graphics/pokemon/tauros/paldean_combat_breed/normal.pal diff --git a/graphics/pokemon/tauros/combat/shiny.pal b/graphics/pokemon/tauros/paldean_combat_breed/shiny.pal similarity index 100% rename from graphics/pokemon/tauros/combat/shiny.pal rename to graphics/pokemon/tauros/paldean_combat_breed/shiny.pal diff --git a/graphics/pokemon/tentacruel/anim_front.png b/graphics/pokemon/tentacruel/anim_front.png index b4c5ed3004..cef3d229bf 100644 Binary files a/graphics/pokemon/tentacruel/anim_front.png and b/graphics/pokemon/tentacruel/anim_front.png differ diff --git a/graphics/pokemon/tentacruel/normal.pal b/graphics/pokemon/tentacruel/normal.pal index 1f8e690b4a..dc41bfc732 100644 --- a/graphics/pokemon/tentacruel/normal.pal +++ b/graphics/pokemon/tentacruel/normal.pal @@ -7,10 +7,10 @@ JASC-PAL 246 65 82 180 41 32 131 16 16 -168 160 176 -128 120 136 -120 112 120 -96 96 104 +230 213 164 +180 172 115 +131 131 65 +82 82 32 200 200 200 131 205 230 106 180 230 diff --git a/graphics/pokemon/voltorb/anim_front.png b/graphics/pokemon/voltorb/anim_front.png index 28c443a3a3..166824d054 100644 Binary files a/graphics/pokemon/voltorb/anim_front.png and b/graphics/pokemon/voltorb/anim_front.png differ diff --git a/graphics/pokemon/voltorb/back.png b/graphics/pokemon/voltorb/back.png index 6010acc3b7..cf0cf334ea 100644 Binary files a/graphics/pokemon/voltorb/back.png and b/graphics/pokemon/voltorb/back.png differ diff --git a/graphics/pokemon/voltorb/normal.pal b/graphics/pokemon/voltorb/normal.pal index 79af1efd7f..981ab31a35 100644 --- a/graphics/pokemon/voltorb/normal.pal +++ b/graphics/pokemon/voltorb/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -16 16 16 -131 16 16 -213 49 65 -255 82 32 -238 65 49 -255 131 90 -255 172 156 -213 49 65 +255 255 255 222 213 213 180 172 189 -248 248 248 -88 80 80 -136 128 128 -0 0 0 -0 0 0 +139 131 131 +90 82 82 +255 0 255 +255 0 255 +255 0 255 +255 172 156 +255 131 90 +255 82 32 +238 65 49 +213 49 65 +131 16 16 +16 16 16 diff --git a/graphics/pokemon/voltorb/shiny.pal b/graphics/pokemon/voltorb/shiny.pal index 6b46ff5d7e..06e1879254 100644 --- a/graphics/pokemon/voltorb/shiny.pal +++ b/graphics/pokemon/voltorb/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +255 255 255 +222 213 213 +180 172 189 +139 131 131 +90 82 82 +255 0 255 +255 0 255 +255 0 255 +156 172 255 +90 131 255 +0 82 255 +49 65 238 +41 24 189 +0 0 115 16 16 16 -32 32 112 -56 40 184 -48 112 248 -72 88 232 -112 144 248 -168 184 248 -56 40 184 -216 208 208 -176 168 184 -248 248 248 -88 80 80 -136 128 128 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/weezing/anim_front.png b/graphics/pokemon/weezing/anim_front.png index 3bc2cb26f6..bda98b3f4b 100644 Binary files a/graphics/pokemon/weezing/anim_front.png and b/graphics/pokemon/weezing/anim_front.png differ diff --git a/graphics/pokemon/weezing/back.png b/graphics/pokemon/weezing/back.png index 92fd4020bb..0a5876baf1 100644 Binary files a/graphics/pokemon/weezing/back.png and b/graphics/pokemon/weezing/back.png differ diff --git a/graphics/pokemon/weezing/normal.pal b/graphics/pokemon/weezing/normal.pal index 715cd4c89a..ded0142be1 100644 --- a/graphics/pokemon/weezing/normal.pal +++ b/graphics/pokemon/weezing/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -0 176 232 -197 213 139 -246 238 148 -197 180 41 -131 90 139 -189 139 205 -98 49 123 -164 106 180 -213 164 222 -16 16 16 +152 200 208 255 255 255 189 189 189 172 164 82 -172 164 82 -156 82 98 +213 213 180 213 115 131 +156 82 98 +246 238 148 +197 213 139 +197 180 41 +213 164 222 +189 139 205 +164 106 180 +131 90 139 +98 49 123 +16 16 16 diff --git a/graphics/pokemon/weezing/shiny.pal b/graphics/pokemon/weezing/shiny.pal index 11a7a0793d..16175411c0 100644 --- a/graphics/pokemon/weezing/shiny.pal +++ b/graphics/pokemon/weezing/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -0 176 232 -176 128 176 -208 168 208 -136 88 136 -56 104 104 -128 176 168 -24 64 64 -88 136 128 -168 216 200 +160 208 152 +255 255 255 +222 222 222 +172 156 16 +213 205 106 +222 98 32 +164 32 0 +222 156 213 +180 123 180 +139 74 139 +156 213 197 +123 180 172 +82 139 131 +49 106 106 +16 74 74 16 16 16 -248 248 248 -184 184 184 -208 200 112 -160 144 48 -160 64 48 -216 120 72 diff --git a/graphics/pokemon/wiglett/back.png b/graphics/pokemon/wiglett/back.png index b436506319..9e9f35b3a2 100755 Binary files a/graphics/pokemon/wiglett/back.png and b/graphics/pokemon/wiglett/back.png differ diff --git a/graphics/pokemon/wiglett/front.png b/graphics/pokemon/wiglett/front.png index b9364e8619..d5337cee9e 100755 Binary files a/graphics/pokemon/wiglett/front.png and b/graphics/pokemon/wiglett/front.png differ diff --git a/graphics/pokemon/wiglett/shiny.pal b/graphics/pokemon/wiglett/shiny.pal index 9fb47d702f..d6b8742844 100755 --- a/graphics/pokemon/wiglett/shiny.pal +++ b/graphics/pokemon/wiglett/shiny.pal @@ -2,17 +2,17 @@ JASC-PAL 0100 16 152 208 160 -156 122 24 -184 180 192 -232 228 224 +173 111 11 +214 150 13 +255 185 8 248 252 248 16 16 16 -194 150 45 -120 44 64 -252 202 77 -232 92 112 -8 41 123 -49 82 164 +62 54 173 +44 39 125 +100 91 220 +79 67 222 +56 80 72 +80 112 104 120 156 136 152 184 168 0 0 0 diff --git a/graphics/pokemon/wooper/wooper_paldea/back.png b/graphics/pokemon/wooper/wooper_paldean/back.png similarity index 100% rename from graphics/pokemon/wooper/wooper_paldea/back.png rename to graphics/pokemon/wooper/wooper_paldean/back.png diff --git a/graphics/pokemon/wooper/wooper_paldea/front.png b/graphics/pokemon/wooper/wooper_paldean/front.png similarity index 100% rename from graphics/pokemon/wooper/wooper_paldea/front.png rename to graphics/pokemon/wooper/wooper_paldean/front.png diff --git a/graphics/pokemon/wooper/wooper_paldea/normal.pal b/graphics/pokemon/wooper/wooper_paldean/normal.pal similarity index 100% rename from graphics/pokemon/wooper/wooper_paldea/normal.pal rename to graphics/pokemon/wooper/wooper_paldean/normal.pal diff --git a/graphics/pokemon/wooper/wooper_paldea/shiny.pal b/graphics/pokemon/wooper/wooper_paldean/shiny.pal similarity index 100% rename from graphics/pokemon/wooper/wooper_paldea/shiny.pal rename to graphics/pokemon/wooper/wooper_paldean/shiny.pal diff --git a/graphics/pokemon/wugtrio/back.png b/graphics/pokemon/wugtrio/back.png index bf7827c902..733bc50ed4 100755 Binary files a/graphics/pokemon/wugtrio/back.png and b/graphics/pokemon/wugtrio/back.png differ diff --git a/graphics/pokemon/wugtrio/front.png b/graphics/pokemon/wugtrio/front.png index 24aa488e36..07c1d27611 100755 Binary files a/graphics/pokemon/wugtrio/front.png and b/graphics/pokemon/wugtrio/front.png differ diff --git a/graphics/pokemon/wugtrio/shiny.pal b/graphics/pokemon/wugtrio/shiny.pal index ae0ab9eef7..6435d043fe 100755 --- a/graphics/pokemon/wugtrio/shiny.pal +++ b/graphics/pokemon/wugtrio/shiny.pal @@ -3,14 +3,14 @@ JASC-PAL 16 152 208 160 55 58 158 -248 120 152 +110 113 194 40 33 117 248 252 248 75 79 197 16 16 16 -134 61 19 -242 158 69 -203 102 24 +139 65 9 +237 151 45 +201 108 14 48 48 56 64 72 88 104 128 128 diff --git a/graphics/pokemon/wyrdeer/back.png b/graphics/pokemon/wyrdeer/back.png old mode 100755 new mode 100644 index 00f1ba932d..d9da07b065 Binary files a/graphics/pokemon/wyrdeer/back.png and b/graphics/pokemon/wyrdeer/back.png differ diff --git a/graphics/pokemon/wyrdeer/front.png b/graphics/pokemon/wyrdeer/front.png old mode 100755 new mode 100644 index 9e5bffce51..4caf284203 Binary files a/graphics/pokemon/wyrdeer/front.png and b/graphics/pokemon/wyrdeer/front.png differ diff --git a/graphics/pokemon/wyrdeer/normal.pal b/graphics/pokemon/wyrdeer/normal.pal old mode 100755 new mode 100644 index 10073e4475..06adb7dd2a --- a/graphics/pokemon/wyrdeer/normal.pal +++ b/graphics/pokemon/wyrdeer/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -152 104 56 -248 216 168 -120 72 64 -232 184 128 -0 0 0 -72 72 72 -224 152 88 -160 168 168 -120 120 120 -112 128 136 -240 240 240 -192 200 208 -56 64 64 -88 88 88 -64 72 80 +153 211 165 +140 83 39 +255 226 154 +222 151 63 +16 16 16 +74 74 74 +123 123 123 +85 91 112 +193 207 217 +141 150 163 +122 113 110 +252 252 252 +207 198 191 +148 90 83 +94 49 50 +178 125 112 diff --git a/graphics/pokemon/wyrdeer/shiny.pal b/graphics/pokemon/wyrdeer/shiny.pal old mode 100755 new mode 100644 index ecd55cb218..53da402ad6 --- a/graphics/pokemon/wyrdeer/shiny.pal +++ b/graphics/pokemon/wyrdeer/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -152 208 160 -152 104 56 -248 216 168 -120 72 64 -232 184 128 -0 0 0 -72 72 72 -224 152 88 -168 180 128 -120 140 80 -112 128 136 -232 236 208 -208 216 152 -56 64 64 -88 88 88 -64 72 80 +153 211 165 +140 83 39 +255 226 154 +222 151 63 +16 16 16 +74 74 74 +123 123 123 +85 91 112 +203 221 147 +151 165 103 +122 113 110 +209 233 211 +159 176 163 +148 90 83 +94 49 50 +178 125 112 diff --git a/graphics/unused/.gitignore b/graphics/unused/.gitignore new file mode 100644 index 0000000000..b929a6cae7 --- /dev/null +++ b/graphics/unused/.gitignore @@ -0,0 +1 @@ +redyellowgreen_frame.bin \ No newline at end of file diff --git a/graphics/unused/redyellowgreen_frame.bin b/graphics/unused/redyellowgreen_frame.bin deleted file mode 100644 index 6852998fb8..0000000000 Binary files a/graphics/unused/redyellowgreen_frame.bin and /dev/null differ diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index b565c0e914..6a2728aff4 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -20,7 +20,7 @@ JPCONTESTGFXDIR := graphics/contest/japanese POKEDEXGFXDIR := graphics/pokedex STARTERGFXDIR := graphics/starter_choose NAMINGGFXDIR := graphics/naming_screen -SPINDAGFXDIR := graphics/spinda_spots +SPINDAGFXDIR := graphics/pokemon/spinda/spots types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy contest_types := cool beauty cute smart tough @@ -253,10 +253,10 @@ $(FONTGFXDIR)/short.fwjpnfont: $(FONTGFXDIR)/japanese_short.png $(FONTGFXDIR)/braille.fwjpnfont: $(FONTGFXDIR)/braille.png $(GFX) $< $@ -$(FONTGFXDIR)/frlg_male.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_male_font.png +$(FONTGFXDIR)/frlg_male.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_male.png $(GFX) $< $@ -$(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female_font.png +$(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female.png $(GFX) $< $@ diff --git a/include/battle.h b/include/battle.h index 5d26ad6556..b3e6b5fd9b 100644 --- a/include/battle.h +++ b/include/battle.h @@ -15,6 +15,7 @@ #include "pokeball.h" #include "battle_debug.h" #include "battle_dynamax.h" +#include "random.h" // for rng_value_t // Used to exclude moves learned temporarily by Transform or Mimic #define MOVE_IS_PERMANENT(battler, moveSlot) \ @@ -44,6 +45,9 @@ #define BATTLE_BUFFER_LINK_SIZE 0x1000 +// Special indicator value for shellBellDmg in SpecialStatus +#define IGNORE_SHELL_BELL 0xFFFF + struct ResourceFlags { u32 flags[MAX_BATTLERS_COUNT]; @@ -56,6 +60,7 @@ struct ResourceFlags #define RESOURCE_FLAG_TRACED 0x10 #define RESOURCE_FLAG_EMERGENCY_EXIT 0x20 #define RESOURCE_FLAG_NEUTRALIZING_GAS 0x40 +#define RESOURCE_FLAG_ICE_FACE 0x80 struct DisableStruct { @@ -63,8 +68,8 @@ struct DisableStruct u32 transformedMonOtId; u16 disabledMove; u16 encoredMove; - u8 protectUses; - u8 stockpileCounter; + u8 protectUses:4; + u8 stockpileCounter:4; s8 stockpileDef; s8 stockpileSpDef; s8 stockpileBeforeDef; @@ -108,6 +113,9 @@ struct DisableStruct u8 syrupBombTimer; u8 syrupBombIsShiny:1; u8 steelSurgeDone:1; + u8 weatherAbilityDone:1; + u8 terrainAbilityDone:1; + u8 usedProteanLibero:1; }; struct ProtectStruct @@ -156,6 +164,7 @@ struct ProtectStruct u16 silkTrapped:1; u16 eatMirrorHerb:1; u16 activateOpportunist:2; // 2 - to copy stats. 1 - stats copied (do not repeat). 0 - no stats to copy + u16 usedAllySwitch:1; u32 physicalDmg; u32 specialDmg; u8 physicalBattlerId; @@ -164,7 +173,7 @@ struct ProtectStruct struct SpecialStatus { - s32 dmg; + s32 shellBellDmg; s32 physicalDmg; s32 specialDmg; u8 physicalBattlerId; @@ -199,10 +208,9 @@ struct SpecialStatus u8 dancerUsedMove:1; u8 dancerOriginalTarget:3; // End of byte - u8 weatherAbilityDone:1; - u8 terrainAbilityDone:1; u8 emergencyExited:1; u8 afterYou:1; + u8 magicianStolen:1; // So that Life Orb doesn't activate after Magician steals it. }; struct SideTimer @@ -235,6 +243,9 @@ struct SideTimer u8 retaliateTimer; u8 damageNonTypesTimer; u8 damageNonTypesType; + u8 rainbowTimer; + u8 seaOfFireTimer; + u8 swampTimer; }; struct FieldTimer @@ -536,7 +547,7 @@ struct ZMoveData u8 active:1; // is z move being used this turn u8 zStatusActive:1; u8 healReplacement:1; - u8 activeSplit:2; // active z move split + u8 activeCategory:2; // active z move category u8 zUnused:1; u8 triggerSpriteId; u8 possibleZMoves[MAX_BATTLERS_COUNT]; @@ -545,7 +556,7 @@ struct ZMoveData u8 used[MAX_BATTLERS_COUNT]; //one per bank for multi-battles u16 toBeUsed[MAX_BATTLERS_COUNT]; // z moves per battler to be used u16 baseMoves[MAX_BATTLERS_COUNT]; - u8 splits[MAX_BATTLERS_COUNT]; + u8 categories[MAX_BATTLERS_COUNT]; }; struct DynamaxData @@ -557,8 +568,8 @@ struct DynamaxData bool8 dynamaxed[MAX_BATTLERS_COUNT]; u8 dynamaxTurns[MAX_BATTLERS_COUNT]; u8 usingMaxMove[MAX_BATTLERS_COUNT]; - u8 activeSplit; - u8 splits[MAX_BATTLERS_COUNT]; + u8 activeCategory; + u8 categories[MAX_BATTLERS_COUNT]; u16 baseMove[MAX_BATTLERS_COUNT]; // base move of Max Move u16 lastUsedBaseMove; u16 levelUpHP; @@ -570,6 +581,13 @@ struct LostItem u16 stolen:1; }; +#if HQ_RANDOM == TRUE +struct BattleVideo { + u32 battleTypeFlags; + rng_value_t rngSeed; +}; +#endif + struct BattleStruct { u8 turnEffectsTracker; @@ -642,7 +660,12 @@ struct BattleStruct u16 lastTakenMoveFrom[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT]; // a 2-D array [target][attacker] union { struct LinkBattlerHeader linkBattlerHeader; + + #if HQ_RANDOM == FALSE u32 battleVideo[2]; + #else + struct BattleVideo battleVideo; + #endif } multiBuffer; u8 wishPerishSongState; u8 wishPerishSongBattlerId; @@ -694,10 +717,10 @@ struct BattleStruct u16 changedSpecies[NUM_BATTLE_SIDES][PARTY_SIZE]; // For forms when multiple mons can change into the same pokemon. u8 quickClawBattlerId; struct LostItem itemLost[PARTY_SIZE]; // Player's team that had items consumed or stolen (two bytes per party member) - u8 blunderPolicy:1; // should blunder policy activate - u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky u8 forcedSwitch:4; // For each battler u8 switchInAbilityPostponed:4; // To not activate against an empty field, each bit for battler + u8 blunderPolicy:1; // should blunder policy activate + u8 swapDamageCategory:1; // Photon Geyser, Shell Side Arm, Light That Burns the Sky u8 ballSpriteIds[2]; // item gfx, window gfx u8 appearedInBattle; // Bitfield to track which Pokemon appeared in battle. Used for Burmy's form change u8 skyDropTargets[MAX_BATTLERS_COUNT]; // For Sky Drop, to account for if multiple Pokemon use Sky Drop in a double battle. @@ -716,17 +739,24 @@ struct BattleStruct uq4_12_t supremeOverlordModifier[MAX_BATTLERS_COUNT]; u8 itemPartyIndex[MAX_BATTLERS_COUNT]; u8 itemMoveIndex[MAX_BATTLERS_COUNT]; - bool8 trainerSlideHalfHpMsgDone; u8 trainerSlideFirstCriticalHitMsgState:2; u8 trainerSlideFirstSuperEffectiveHitMsgState:2; u8 trainerSlideFirstSTABMoveMsgState:2; u8 trainerSlidePlayerMonUnaffectedMsgState:2; - bool8 trainerSlideMegaEvolutionMsgDone; - bool8 trainerSlideZMoveMsgDone; - bool8 trainerSlideBeforeFirstTurnMsgDone; + u8 trainerSlideHalfHpMsgDone:1; + u8 trainerSlideMegaEvolutionMsgDone:1; + u8 trainerSlideZMoveMsgDone:1; + u8 trainerSlideBeforeFirstTurnMsgDone:1; + u8 trainerSlideDynamaxMsgDone:1; + u8 pledgeMove:1; + u8 isSkyBattle:1; 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 timesGotHit[NUM_BATTLE_SIDES][PARTY_SIZE]; + u8 enduredDamage; + u8 transformZeroToHero[NUM_BATTLE_SIDES]; + u8 intrepidSwordBoost[NUM_BATTLE_SIDES]; + u8 dauntlessShieldBoost[NUM_BATTLE_SIDES]; }; // The palaceFlags member of struct BattleStruct contains 1 flag per move to indicate which moves the AI should consider, @@ -734,9 +764,9 @@ struct BattleStruct // The assert below is to ensure palaceFlags is large enough to store these flags without overlap. STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLERS_COUNT + MAX_MON_MOVES, PalaceFlagsTooSmall) -#define F_DYNAMIC_TYPE_1 (1 << 6) -#define F_DYNAMIC_TYPE_2 (1 << 7) -#define DYNAMIC_TYPE_MASK (F_DYNAMIC_TYPE_1 - 1) +#define DYNAMIC_TYPE_MASK ((1 << 6) - 1) +#define F_DYNAMIC_TYPE_IGNORE_PHYSICALITY (1 << 6) // If set, the dynamic type's physicality won't be used for certain move effects. +#define F_DYNAMIC_TYPE_SET (1 << 7) // Set for all dynamic types to distinguish a dynamic type of Normal (0) from no dynamic type. #define GET_MOVE_TYPE(move, typeArg) \ { \ @@ -746,21 +776,17 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER typeArg = gBattleMoves[move].type; \ } -#define IS_MOVE_PHYSICAL(move)(GetBattleMoveSplit(move) == SPLIT_PHYSICAL) -#define IS_MOVE_SPECIAL(move)(GetBattleMoveSplit(move) == SPLIT_SPECIAL) -#define IS_MOVE_STATUS(move)(gBattleMoves[move].split == SPLIT_STATUS) +#define IS_MOVE_PHYSICAL(move)(GetBattleMoveCategory(move) == BATTLE_CATEGORY_PHYSICAL) +#define IS_MOVE_SPECIAL(move)(GetBattleMoveCategory(move) == BATTLE_CATEGORY_SPECIAL) +#define IS_MOVE_STATUS(move)(gBattleMoves[move].category == BATTLE_CATEGORY_STATUS) -#define IS_EFFECT_RECOIL(effect)(effect == EFFECT_RECOIL_25 \ - || effect == EFFECT_RECOIL_IF_MISS \ - || effect == EFFECT_RECOIL_50 \ - || effect == EFFECT_RECOIL_33 \ - || effect == EFFECT_RECOIL_33_STATUS) +#define IS_EFFECT_RECOIL(effect)(effect == EFFECT_RECOIL || effect == EFFECT_RECOIL_IF_MISS) #define IS_MOVE_RECOIL(move)(IS_EFFECT_RECOIL(gBattleMoves[move].effect)) #define BATTLER_MAX_HP(battlerId)(gBattleMons[battlerId].hp == gBattleMons[battlerId].maxHP) -#define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0)) -#define BATTLER_DAMAGED(battlerId) ((gSpecialStatuses[battlerId].physicalDmg != 0 || gSpecialStatuses[battlerId].specialDmg != 0)) +#define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0) || (gBattleStruct->enduredDamage & gBitTable[gBattlerTarget])) +#define BATTLER_TURN_DAMAGED(battlerId) ((gSpecialStatuses[battlerId].physicalDmg != 0 || gSpecialStatuses[battlerId].specialDmg != 0) || (gBattleStruct->enduredDamage & gBitTable[battler])) #define IS_BATTLER_OF_TYPE(battlerId, type)((GetBattlerType(battlerId, 0) == type || GetBattlerType(battlerId, 1) == type || (GetBattlerType(battlerId, 2) != TYPE_MYSTERY && GetBattlerType(battlerId, 2) == type))) @@ -963,7 +989,7 @@ extern u16 gBattle_WIN1V; extern u8 gDisplayedStringBattle[425]; extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT]; extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; -extern u8 gBattleTextBuff3[30]; //to handle stupidly large z move names +extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT + 13]; //to handle stupidly large z move names extern u32 gBattleTypeFlags; extern u8 gBattleTerrain; extern u32 gUnusedFirstBattleVar1; @@ -986,7 +1012,7 @@ extern u16 gChosenMove; extern u16 gCalledMove; extern s32 gBattleMoveDamage; extern s32 gHpDealt; -extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; +extern s32 gBideDmg[MAX_BATTLERS_COUNT]; extern u16 gLastUsedItem; extern u16 gLastUsedAbility; extern u8 gBattlerAttacker; @@ -1012,7 +1038,7 @@ extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u16 gMoveResultFlags; extern u32 gHitMarker; -extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT]; +extern u8 gBideTarget[MAX_BATTLERS_COUNT]; extern u8 gUnusedFirstBattleVar2; extern u32 gSideStatuses[NUM_BATTLE_SIDES]; extern struct SideTimer gSideTimers[NUM_BATTLE_SIDES]; @@ -1021,7 +1047,6 @@ extern u32 gStatuses4[MAX_BATTLERS_COUNT]; extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT]; extern u16 gPauseCounterBattle; extern u16 gPaydayMoney; -extern u16 gRandomTurnNumber; extern u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT]; extern u8 gBattleOutcome; extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index 8c22baa312..16f6468757 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -4,6 +4,6 @@ void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId); void AI_TrySwitchOrUseItem(u32 battler); u8 GetMostSuitableMonToSwitchInto(u32 battler, bool32 switchAfterMonKOd); -bool32 ShouldSwitch(u32 battler); +bool32 ShouldSwitch(u32 battler, bool32 emitResult); #endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 2ace5b4c55..dc848e049d 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -2,8 +2,8 @@ #define GUARD_BATTLE_AI_UTIL_H // for AI_WhoStrikesFirst -#define AI_IS_FASTER 0 -#define AI_IS_SLOWER 1 +#define AI_IS_FASTER 1 +#define AI_IS_SLOWER -1 #define FOE(battler) ((BATTLE_OPPOSITE(battler)) & BIT_SIDE) @@ -30,7 +30,7 @@ bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler); bool32 AtMaxHp(u32 battler); u32 GetHealthPercentage(u32 battler); bool32 IsBattlerTrapped(u32 battler, bool32 switching); -u32 AI_WhoStrikesFirst(u32 battlerAI, u32 battler2, u32 moveConsidered); +s32 AI_WhoStrikesFirst(u32 battlerAI, u32 battler2, u32 moveConsidered); bool32 CanTargetFaintAi(u32 battlerDef, u32 battlerAtk); bool32 CanTargetMoveFaintAi(u32 move, u32 battlerDef, u32 battlerAtk, u32 nHits); bool32 CanTargetFaintAiWithMod(u32 battlerDef, u32 battlerAtk, s32 hpMod, s32 dmgMod); @@ -64,6 +64,8 @@ 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); +bool32 AI_ShouldCopyStatChanges(u32 battlerAtk, u32 battlerDef); // stat stage checks bool32 AnyStatIsRaised(u32 battlerId); @@ -83,8 +85,8 @@ bool32 ShouldLowerEvasion(u32 battlerAtk, u32 battlerDef, u32 defAbility); // move checks bool32 IsAffectedByPowder(u32 battler, u32 ability, u32 holdEffect); -bool32 MovesWithSplitUnusable(u32 attacker, u32 target, u32 split); -u32 AI_WhichMoveBetter(u32 move1, u32 move2, u32 battlerAtk, u32 battlerDef, s32 noOfHitsToKo); +bool32 MovesWithCategoryUnusable(u32 attacker, u32 target, u32 category); +s32 AI_WhichMoveBetter(u32 move1, u32 move2, u32 battlerAtk, u32 battlerDef, s32 noOfHitsToKo); s32 AI_CalcDamageSaveBattlers(u32 move, u32 battlerAtk, u32 battlerDef, u8 *typeEffectiveness, bool32 considerZPower); s32 AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u8 *typeEffectiveness, bool32 considerZPower, u32 weather); bool32 AI_IsDamagedByRecoil(u32 battler); @@ -97,11 +99,10 @@ u32 AI_GetMoveEffectiveness(u32 move, u32 battlerAtk, u32 battlerDef); u16 *GetMovesArray(u32 battler); bool32 IsConfusionMoveEffect(u32 moveEffect); bool32 HasMove(u32 battlerId, u32 move); -bool32 HasOnlyMovesWithSplit(u32 battlerId, u32 split, bool32 onlyOffensive); -bool32 HasMoveWithSplit(u32 battler, u32 split); +bool32 HasOnlyMovesWithCategory(u32 battlerId, u32 category, bool32 onlyOffensive); +bool32 HasMoveWithCategory(u32 battler, u32 category); bool32 HasMoveWithType(u32 battler, u32 type); -bool32 HasMoveWithTypeAndSplit(u32 battler, u32 type, u32 split); -bool32 HasMoveEffect(u32 battlerId, u32 effect); +bool32 HasMoveEffect(u32 battlerId, u32 moveEffect); bool32 HasMoveWithMoveEffect(u32 battlerId, u32 moveEffect, u32 effectHitOnly); bool32 HasMoveWithLowAccuracy(u32 battlerAtk, u32 battlerDef, u32 accCheck, bool32 ignoreStatus, u32 atkAbility, u32 defAbility, u32 atkHoldEffect, u32 defHoldEffect); bool32 IsAromaVeilProtectedMove(u32 move); @@ -177,8 +178,8 @@ struct BattlePokemon *AllocSaveBattleMons(void); void FreeRestoreBattleMons(struct BattlePokemon *savedBattleMons); s32 CountUsablePartyMons(u32 battlerId); bool32 IsPartyFullyHealedExceptBattler(u32 battler); -bool32 PartyHasMoveSplit(u32 battlerId, u32 split); -bool32 SideHasMoveSplit(u32 battlerId, u32 split); +bool32 PartyHasMoveCategory(u32 battlerId, u32 category); +bool32 SideHasMoveCategory(u32 battlerId, u32 category); // score increases void IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, u32 statId, s32 *score); diff --git a/include/battle_anim.h b/include/battle_anim.h index 7aaa099518..672b640cc9 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -134,7 +134,7 @@ void SetBattlerSpriteYOffsetFromRotation(u8 spriteId); u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 anim1, bool8 anim2); u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight); u8 GetSpritePalIdxByBattler(u8 battler); -s16 CloneBattlerSpriteWithBlend(u8); +s16 CloneBattlerSpriteWithBlend(u8 animBattler); void DestroySpriteWithActiveSheet(struct Sprite *); u8 CreateInvisibleSpriteCopy(int, u8, int); void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData *, const void *, bool32); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index ea7e63525f..5f3bd8316e 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_interface.h b/include/battle_interface.h index af8f0dc117..b26205d810 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -103,6 +103,7 @@ bool32 IsBurstTriggerSpriteActive(void); void HideBurstTriggerSprite(void); void DestroyBurstTriggerSprite(void); void MegaIndicator_LoadSpritesGfx(void); +void MegaIndicator_SetVisibilities(u32 healthboxId, bool32 invisible); u8 CreatePartyStatusSummarySprites(u8 battler, struct HpAndStatus *partyInfo, bool8 skipPlayer, bool8 isBattleStart); void Task_HidePartyStatusSummary(u8 taskId); void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); diff --git a/include/battle_main.h b/include/battle_main.h index 9bb9bbdfb0..b171b2f289 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -57,15 +57,16 @@ void SwitchInClearSetData(u32 battler); const u8* FaintClearSetData(u32 battler); void BattleTurnPassed(void); u8 IsRunningFromBattleImpossible(u32 battler); +void SwitchTwoBattlersInParty(u32 battler, u32 battler2); void SwitchPartyOrder(u32 battlerId); void SwapTurnOrder(u8 id1, u8 id2); u32 GetBattlerTotalSpeedStatArgs(u32 battler, u32 ability, u32 holdEffect); u32 GetBattlerTotalSpeedStat(u32 battler); s8 GetChosenMovePriority(u32 battlerId); s8 GetMovePriority(u32 battlerId, u16 move); -u32 GetWhichBattlerFasterArgs(u32 battler1, u32 battler2, bool32 ignoreChosenMoves, u32 ability1, u32 ability2, +s32 GetWhichBattlerFasterArgs(u32 battler1, u32 battler2, bool32 ignoreChosenMoves, u32 ability1, u32 ability2, u32 holdEffectBattler1, u32 holdEffectBattler2, u32 speedBattler1, u32 speedBattler2, s32 priority1, s32 priority2); -u32 GetWhichBattlerFaster(u32 battler1, u32 battler2, bool32 ignoreChosenMoves); +s32 GetWhichBattlerFaster(u32 battler1, u32 battler2, bool32 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); void SpecialStatusesClear(void); diff --git a/include/battle_message.h b/include/battle_message.h index e01c916c3c..338712606a 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 e78b57e4d1..a4e8a166ed 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 d2addbc4c3..bc534b69af 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -13,6 +13,7 @@ extern const u8 BattleScript_MoveMissedPause[]; extern const u8 BattleScript_MoveMissed[]; extern const u8 BattleScript_FlingFailConsumeItem[]; extern const u8 BattleScript_FailedFromAtkString[]; +extern const u8 BattleScript_FailedFromAtkCanceler[]; extern const u8 BattleScript_ButItFailed[]; extern const u8 BattleScript_StatUp[]; extern const u8 BattleScript_StatDown[]; @@ -483,6 +484,13 @@ 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 96aeb4b761..a2009eea41 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 4ab858fb06..f43a667d42 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -193,13 +193,13 @@ struct Pokemon *GetIllusionMonPtr(u32 battler); void ClearIllusionMon(u32 battler); bool32 SetIllusionMon(struct Pokemon *mon, u32 battler); bool32 ShouldGetStatBadgeBoost(u16 flagId, u32 battler); -u8 GetBattleMoveSplit(u32 moveId); +u8 GetBattleMoveCategory(u32 moveId); bool32 CanFling(u32 battler); bool32 IsTelekinesisBannedSpecies(u16 species); bool32 IsHealBlockPreventingMove(u32 battler, u32 move); bool32 HasEnoughHpToEatBerry(u32 battler, u32 hpFraction, u32 itemId); bool32 IsPartnerMonFromSameTrainer(u32 battler); -u8 GetSplitBasedOnStats(u32 battler); +u8 GetCategoryBasedOnStats(u32 battler); bool32 TestSheerForceFlag(u32 battler, u16 move); void TryRestoreHeldItems(void); bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item); @@ -224,13 +224,14 @@ bool32 IsGen6ExpShareEnabled(void); bool32 MoveHasMoveEffect(u32 move, u32 moveEffect, bool32 effectHitOnly); // Ability checks -bool32 IsRolePlayBannedAbilityAtk(u16 ability); -bool32 IsRolePlayBannedAbility(u16 ability); bool32 IsSkillSwapBannedAbility(u16 ability); +bool32 IsRolePlayDoodleBannedAbility(u16 ability); +bool32 IsRolePlayDoodleBannedAbilityAttacker(u16 ability); bool32 IsWorrySeedBannedAbility(u16 ability); bool32 IsGastroAcidBannedAbility(u16 ability); +bool32 IsEntrainmentBannedAbility(u16 ability); bool32 IsEntrainmentBannedAbilityAttacker(u16 ability); -bool32 IsEntrainmentTargetOrSimpleBeamBannedAbility(u16 ability); +bool32 IsSimpleBeamBannedAbility(u16 ability); bool32 CanSleep(u32 battler); bool32 CanBePoisoned(u32 battlerAttacker, u32 battlerTarget); @@ -248,7 +249,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 17082b0fdc..f4be812643 100644 --- a/include/config.h +++ b/include/config.h @@ -64,17 +64,21 @@ #define ITEM_EXPANSION // Generation constants used in configs to define behavior -#define GEN_3 0 -#define GEN_4 1 -#define GEN_5 2 -#define GEN_6 3 -#define GEN_7 4 -#define GEN_8 5 -#define GEN_9 6 +#define GEN_1 0 +#define GEN_2 1 +#define GEN_3 2 +#define GEN_4 3 +#define GEN_5 4 +#define GEN_6 5 +#define GEN_7 6 +#define GEN_8 7 +#define GEN_9 8 #define GEN_LATEST GEN_9 // General settings -#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 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. +#define HQ_RANDOM TRUE // If TRUE, replaces the default RNG with an implementation of SFC32 RNG. May break code that relies on RNG. #endif // GUARD_CONFIG_H diff --git a/include/config/battle.h b/include/config/battle.h index d1ba9b969a..7e0f05a819 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -46,6 +46,7 @@ #define B_PRANKSTER_DARK_TYPES GEN_LATEST // In Gen7+, Prankster-elevated status moves do not affect Dark type Pokémon. #define B_SHEER_COLD_IMMUNITY GEN_LATEST // In Gen7+, Ice-types are immune to Sheer Cold #define B_ROOST_PURE_FLYING GEN_LATEST // In Gen5+, Roost makes pure Flying-types into Normal-type. +#define B_STATUS_TYPE_IMMUNITY GEN_LATEST // In Gen1, Pokémon were immune to paralysis/freeze/burn side effects of attacking moves, if they shared a type with the move. // Turn settings #define B_BINDING_TURNS GEN_LATEST // In Gen5+, binding moves last for 4-5 turns instead of 2-5 turns. (With Grip Claw, 7 and 5 turns respectively.) @@ -56,7 +57,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 @@ -78,7 +79,7 @@ // Move stat change settings #define B_FELL_STINGER_STAT_RAISE GEN_LATEST // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. -#define B_KINGS_SHIELD_LOWER_ATK GEN_LATEST // In Gen8+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. +#define B_KINGS_SHIELD_LOWER_ATK GEN_LATEST // In Gen8+, it lowers Atk by 1 stage instead of 2 of opponents that hit it. #define B_SPEED_BUFFING_RAPID_SPIN GEN_LATEST // In Gen8, Rapid Spin raises the user's Speed by 1 stage. #define B_CHARGE_SPDEF_RAISE GEN_LATEST // In Gen5+, Charge raises the user's Special Defense by 1 stage. #define B_MINIMIZE_EVASION GEN_LATEST // In Gen5+, Minimize raises evasion by 2 stages instead of 1. @@ -108,6 +109,10 @@ #define B_STOCKPILE_RAISES_DEFS GEN_LATEST // In Gen4+, Stockpile also raises Defense and Sp. Defense stats. Once Spit Up / Swallow is used, these stat changes are lost. #define B_TRANSFORM_SHINY GEN_LATEST // In Gen4+, Transform will copy the shiny state of the opponent instead of maintaining its own shiny state. #define B_TRANSFORM_FORM_CHANGES GEN_LATEST // In Gen5+, Transformed Pokemon cannot change forms. +#define B_WIDE_GUARD GEN_LATEST // In Gen5 only, Quick Guard has a chance to fail if used consecutively. +#define B_QUICK_GUARD GEN_LATEST // In Gen5 only, Wide Guard has a chance to fail if used consecutively. +#define B_IMPRISON GEN_LATEST // In Gen5+, Imprison doesn't fail if opposing pokemon don't have any moves the user knows. +#define B_ALLY_SWITCH_FAIL_CHANCE GEN_LATEST // In Gen9, using Ally Switch consecutively decreases the chance of success for each consecutive use. // Ability settings #define B_EXPANDED_ABILITY_NAMES TRUE // If TRUE, ability names are increased from 12 characters to 16 characters. @@ -130,6 +135,9 @@ #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. +#define B_PROTEAN_LIBERO GEN_LATEST // In Gen9+, Protean and Libero change the user's type only once per Battle. +#define B_INTREPID_SWORD GEN_LATEST // In Gen9+, Intrepid Sword raises Attack by one stage only once per Battle. +#define B_DAUNTLESS_SHIELD GEN_LATEST // In Gen9+, Dauntless Shield raises Defense by one stage only once per Battle. // 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. @@ -170,6 +178,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. @@ -188,7 +202,7 @@ #define B_FAST_INTRO TRUE // If set to TRUE, battle intro texts print at the same time as animation of a Pokémon, as opposing to waiting for the animation to end. #define B_FAST_HP_DRAIN TRUE // If set to TRUE, HP bars will move faster to accomodate higher max HP amounts. #define B_SHOW_TARGETS TRUE // If set to TRUE, all available targets, for moves hitting 2 or 3 Pokémon, will be shown before selecting a move. -#define B_SHOW_SPLIT_ICON TRUE // If set to TRUE, it will show an icon in the summary showing the move's category split. +#define B_SHOW_CATEGORY_ICON TRUE // If set to TRUE, it will show an icon in the summary showing the move's category. #define B_HIDE_HEALTHBOX_IN_ANIMS TRUE // If set to TRUE, hides healthboxes during move animations. #define B_EXPANDED_MOVE_NAMES FALSE // If set to TRUE, move names are increased from 12 characters to 16 characters. #define B_WAIT_TIME_MULTIPLIER 16 // This determines how long text pauses in battle last. Vanilla is 16. Lower values result in faster battles. @@ -213,6 +227,8 @@ #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. +#define B_TRY_CATCH_TRAINER_BALL GEN_LATEST // In Gen4+, trying to catch a Trainer's Pokémon does not consume the Poké Ball. // 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 55de3fdb60..195a78e457 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 functionality 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 cac35413de..3488064421 100644 --- a/include/config/overworld.h +++ b/include/config/overworld.h @@ -6,6 +6,7 @@ // 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. diff --git a/include/config/pokemon.h b/include/config/pokemon.h index 900c66bb40..abdb728ac1 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -25,12 +25,13 @@ // 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_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. +#define P_SHUCKLE_BERRY_JUICE GEN_LATEST // In Gen 2, Shuckle had a 1/16 chance of converting Berry that it's holding into Berry Juice. Enabling this will allow Shuckle 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. +#define P_CATCH_CURVE GEN_LATEST // Since Gen 6, the capture rate curve was changed to make pokeballs more effective on lower level pokemon // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. @@ -38,20 +39,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. -// Generations of Pokémon are defined by the first member introduced. -// 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) - // Go here if you want to disable specific families of Pokémon. -#include "config/species_families.h" +#include "config/species_enabled.h" #endif // GUARD_CONFIG_POKEMON_H diff --git a/include/config/species_families.h b/include/config/species_enabled.h similarity index 91% rename from include/config/species_families.h rename to include/config/species_enabled.h index c3b07ecc69..8004abc3bb 100644 --- a/include/config/species_families.h +++ b/include/config/species_enabled.h @@ -1,17 +1,58 @@ -#ifndef GUARD_CONFIG_SPECIES_FAMILIES_H -#define GUARD_CONFIG_SPECIES_FAMILIES_H +#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 +#define P_TERA_FORMS TRUE + +// Fusion forms +#define P_FUSION_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 -#define P_MEGA_EVOLUTIONS TRUE -#define P_GIGANTAMAX_FORMS TRUE +// 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. // 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 @@ -554,4 +595,4 @@ #define P_FAMILY_FEZANDIPITI P_GEN_9_POKEMON #define P_FAMILY_OGERPON P_GEN_9_POKEMON -#endif // GUARD_CONFIG_SPECIES_FAMILIES_H +#endif // GUARD_CONFIG_SPECIES_ENABLED_H diff --git a/include/constants/abilities.h b/include/constants/abilities.h index d844a94e11..7e3b1728d9 100644 --- a/include/constants/abilities.h +++ b/include/constants/abilities.h @@ -332,8 +332,12 @@ #define ABILITY_EMBODY_ASPECT_CORNERSTONE 304 #define ABILITY_TOXIC_CHAIN 305 #define ABILITY_SUPERSWEET_SYRUP 306 +#define ABILITY_307 307 +#define ABILITY_308 308 +#define ABILITY_309 309 +#define ABILITY_310 310 -#define ABILITIES_COUNT_GEN9 307 +#define ABILITIES_COUNT_GEN9 311 #define ABILITIES_COUNT ABILITIES_COUNT_GEN9 diff --git a/include/constants/battle.h b/include/constants/battle.h index 2092684c99..17f221a92f 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -191,18 +191,19 @@ #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_IGNORE_BIDE (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) #define HITMARKER_NO_PPDEDUCT (1 << 11) #define HITMARKER_SWAP_ATTACKER_TARGET (1 << 12) -#define HITMARKER_IGNORE_SAFEGUARD (1 << 13) +#define HITMARKER_STATUS_ABILITY_EFFECT (1 << 13) #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) @@ -387,8 +392,9 @@ #define MOVE_EFFECT_STEALTH_ROCK 75 #define MOVE_EFFECT_SPIKES 76 #define MOVE_EFFECT_SYRUP_BOMB 77 +#define MOVE_EFFECT_FLORAL_HEALING 78 -#define NUM_MOVE_EFFECTS 78 +#define NUM_MOVE_EFFECTS 79 #define MOVE_EFFECT_AFFECTS_USER 0x2000 #define MOVE_EFFECT_CERTAIN 0x4000 diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 0a01eb2996..76e68b2457 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -515,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 @@ -559,6 +560,9 @@ #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 adac0a938d..c855c1ab57 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_frontier.h b/include/constants/battle_frontier.h index 85c1df085e..e4a56b15d1 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -41,10 +41,9 @@ #define SPECIAL_BATTLE_ARENA 5 #define SPECIAL_BATTLE_FACTORY 6 #define SPECIAL_BATTLE_PIKE_SINGLE 7 -#define SPECIAL_BATTLE_STEVEN 8 -#define SPECIAL_BATTLE_PIKE_DOUBLE 9 -#define SPECIAL_BATTLE_PYRAMID 10 -#define SPECIAL_BATTLE_MULTI 11 +#define SPECIAL_BATTLE_PIKE_DOUBLE 8 +#define SPECIAL_BATTLE_PYRAMID 9 +#define SPECIAL_BATTLE_MULTI 10 #define MAX_BATTLE_FRONTIER_POINTS 9999 #define MAX_STREAK 9999 diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index d47a274784..1163ad2c3f 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -48,7 +48,7 @@ #define EFFECT_RECOIL_IF_MISS 44 #define EFFECT_MIST 45 #define EFFECT_FOCUS_ENERGY 46 -#define EFFECT_RECOIL_25 47 +#define EFFECT_RECOIL 47 #define EFFECT_CONFUSE 48 #define EFFECT_ATTACK_UP_2 49 #define EFFECT_DEFENSE_UP_2 50 @@ -413,10 +413,13 @@ #define EFFECT_POPULATION_BOMB 407 #define EFFECT_UNUSED_408 408 #define EFFECT_SALT_CURE 409 -#define EFFECT_IVY_CUDGEL 410 +#define EFFECT_CHILLY_RECEPTION 410 #define EFFECT_MAX_MOVE 411 #define EFFECT_GLAIVE_RUSH 412 +#define EFFECT_RAGING_BULL 413 +#define EFFECT_RAGE_FIST 414 +#define EFFECT_DOODLE 415 -#define NUM_BATTLE_MOVE_EFFECTS 413 +#define NUM_BATTLE_MOVE_EFFECTS 416 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_partner.h b/include/constants/battle_partner.h new file mode 100644 index 0000000000..5622349a88 --- /dev/null +++ b/include/constants/battle_partner.h @@ -0,0 +1,8 @@ + +#ifndef GUARD_CONSTANTS_BATTLE_PARTNERS_H +#define GUARD_CONSTANTS_BATTLE_PARTNERS_H + +#define PARTNER_NONE 0 +#define PARTNER_STEVEN 1 + +#endif // GUARD_CONSTANTS_BATTLE_PARTNERS_H diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index f9901cc372..207fbd0fab 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -131,120 +131,116 @@ #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_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 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE 154 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION 155 +#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_ABILITY_POPUP 54 +#define VARIOUS_JUMP_IF_TARGET_ALLY 55 +#define VARIOUS_TRY_SYNCHRONOISE 56 +#define VARIOUS_PSYCHO_SHIFT 57 +#define VARIOUS_CURE_STATUS 58 +#define VARIOUS_POWER_TRICK 59 +#define VARIOUS_AFTER_YOU 60 +#define VARIOUS_BESTOW 61 +#define VARIOUS_UNUSED_62 62 +#define VARIOUS_JUMP_IF_NOT_GROUNDED 63 +#define VARIOUS_HANDLE_TRAINER_SLIDE_MSG 64 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF 65 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON 66 +#define VARIOUS_SET_AURORA_VEIL 67 +#define VARIOUS_TRY_THIRD_TYPE 68 +#define VARIOUS_ACUPRESSURE 69 +#define VARIOUS_SET_POWDER 70 +#define VARIOUS_SPECTRAL_THIEF 71 +#define VARIOUS_GRAVITY_ON_AIRBORNE_MONS 72 +#define VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS 73 +#define VARIOUS_JUMP_IF_ROAR_FAILS 74 +#define VARIOUS_TRY_INSTRUCT 75 +#define VARIOUS_JUMP_IF_NOT_BERRY 76 +#define VARIOUS_TRACE_ABILITY 77 +#define VARIOUS_UPDATE_NICK 78 +#define VARIOUS_TRY_ILLUSION_OFF 79 +#define VARIOUS_SET_SPRITEIGNORE0HP 80 +#define VARIOUS_HANDLE_FORM_CHANGE 81 +#define VARIOUS_GET_STAT_VALUE 82 +#define VARIOUS_JUMP_IF_FULL_HP 83 +#define VARIOUS_LOSE_TYPE 84 +#define VARIOUS_TRY_ACTIVATE_SOULHEART 85 +#define VARIOUS_TRY_ACTIVATE_RECEIVER 86 +#define VARIOUS_TRY_ACTIVATE_BEAST_BOOST 87 +#define VARIOUS_TRY_FRISK 88 +#define VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED 89 +#define VARIOUS_TRY_FAIRY_LOCK 90 +#define VARIOUS_JUMP_IF_NO_ALLY 91 +#define VARIOUS_POISON_TYPE_IMMUNITY 92 +#define VARIOUS_JUMP_IF_NO_HOLD_EFFECT 93 +#define VARIOUS_INFATUATE_WITH_BATTLER 94 +#define VARIOUS_SET_LAST_USED_ITEM 95 +#define VARIOUS_PARALYZE_TYPE_IMMUNITY 96 +#define VARIOUS_JUMP_IF_ABSENT 97 +#define VARIOUS_DESTROY_ABILITY_POPUP 98 +#define VARIOUS_TOTEM_BOOST 99 +#define VARIOUS_TRY_ACTIVATE_GRIM_NEIGH 100 +#define VARIOUS_MOVEEND_ITEM_EFFECTS 101 +#define VARIOUS_TERRAIN_SEED 102 +#define VARIOUS_MAKE_INVISIBLE 103 +#define VARIOUS_ROOM_SERVICE 104 +#define VARIOUS_EERIE_SPELL_PP_REDUCE 105 +#define VARIOUS_JUMP_IF_TEAM_HEALTHY 106 +#define VARIOUS_TRY_HEAL_QUARTER_HP 107 +#define VARIOUS_REMOVE_TERRAIN 108 +#define VARIOUS_JUMP_IF_PRANKSTER_BLOCKED 109 +#define VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER 110 +#define VARIOUS_GET_ROTOTILLER_TARGETS 111 +#define VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED 112 +#define VARIOUS_TRY_ACTIVATE_BATTLE_BOND 113 +#define VARIOUS_CONSUME_BERRY 114 +#define VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL 115 +#define VARIOUS_JUMP_IF_SPECIES 116 +#define VARIOUS_UPDATE_ABILITY_POPUP 117 +#define VARIOUS_JUMP_IF_WEATHER_AFFECTED 118 +#define VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED 119 +#define VARIOUS_SET_ATTACKER_STICKY_WEB_USER 120 +#define VARIOUS_PHOTON_GEYSER_CHECK 121 +#define VARIOUS_SHELL_SIDE_ARM_CHECK 122 +#define VARIOUS_TRY_NO_RETREAT 123 +#define VARIOUS_TRY_TAR_SHOT 124 +#define VARIOUS_CAN_TAR_SHOT_WORK 125 +#define VARIOUS_CHECK_POLTERGEIST 126 +#define VARIOUS_CUT_1_3_HP_RAISE_STATS 127 +#define VARIOUS_TRY_END_NEUTRALIZING_GAS 128 +#define VARIOUS_JUMP_IF_UNDER_200 129 +#define VARIOUS_SET_SKY_DROP 130 +#define VARIOUS_CLEAR_SKY_DROP 131 +#define VARIOUS_SKY_DROP_YAWN 132 +#define VARIOUS_JUMP_IF_HOLD_EFFECT 133 +#define VARIOUS_CURE_CERTAIN_STATUSES 134 +#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 135 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 136 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 137 +#define VARIOUS_SAVE_BATTLER_ITEM 138 +#define VARIOUS_RESTORE_BATTLER_ITEM 139 +#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 140 +#define VARIOUS_SET_BEAK_BLAST 141 +#define VARIOUS_SWAP_SIDE_STATUSES 142 +#define VARIOUS_SWAP_STATS 143 +#define VARIOUS_TEATIME_INVUL 144 +#define VARIOUS_TEATIME_TARGETS 145 +#define VARIOUS_TRY_WIND_RIDER_POWER 146 +#define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 147 +#define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 148 +#define VARIOUS_STORE_HEALING_WISH 149 +#define VARIOUS_HIT_SWITCH_TARGET_FAILED 150 +#define VARIOUS_TRY_REVIVAL_BLESSING 151 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 @@ -301,27 +297,29 @@ #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 -#define MOVEEND_RED_CARD 26 -#define MOVEEND_EJECT_PACK 27 -#define MOVEEND_LIFEORB_SHELLBELL 28 // Includes shell bell, throat spray, etc -#define MOVEEND_CHANGED_ITEMS 29 -#define MOVEEND_PICKPOCKET 30 -#define MOVEEND_DANCER 31 -#define MOVEEND_EMERGENCY_EXIT 32 -#define MOVEEND_SYMBIOSIS 33 -#define MOVEEND_OPPORTUNIST 34 // Occurs after other stat change items/abilities to try and copy the boosts -#define MOVEEND_CLEAR_BITS 35 -#define MOVEEND_COUNT 36 +#define MOVEEND_NUM_HITS 16 +#define MOVEEND_SUBSTITUTE 17 +#define MOVEEND_SKY_DROP_CONFUSE 18 +#define MOVEEND_UPDATE_LAST_MOVES 19 +#define MOVEEND_MIRROR_MOVE 20 +#define MOVEEND_NEXT_TARGET 21 // Everything up until here is handled for each strike of a multi-hit move +#define MOVEEND_MULTIHIT_MOVE 22 +#define MOVEEND_DEFROST 23 +#define MOVEEND_RECOIL 24 +#define MOVEEND_MAGICIAN 25 // Occurs after final multi-hit strike, and after other items/abilities would activate +#define MOVEEND_EJECT_BUTTON 26 +#define MOVEEND_RED_CARD 27 +#define MOVEEND_EJECT_PACK 28 +#define MOVEEND_LIFEORB_SHELLBELL 29 // Includes shell bell, throat spray, etc +#define MOVEEND_CHANGED_ITEMS 30 +#define MOVEEND_PICKPOCKET 31 +#define MOVEEND_DANCER 32 +#define MOVEEND_EMERGENCY_EXIT 33 +#define MOVEEND_SYMBIOSIS 34 +#define MOVEEND_OPPORTUNIST 35 // Occurs after other stat change items/abilities to try and copy the boosts +#define MOVEEND_SAME_MOVE_TURNS 36 +#define MOVEEND_CLEAR_BITS 37 +#define MOVEEND_COUNT 38 // switch cases #define B_SWITCH_NORMAL 0 diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 69e3dd935d..6263f87a38 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -686,8 +686,18 @@ #define STRINGID_PKMNHURTBYROCKSTHROWN 684 #define STRINGID_MOVEBLOCKEDBYDYNAMAX 685 #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 STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE 696 -#define BATTLESTRINGS_COUNT 687 +#define BATTLESTRINGS_COUNT 697 // 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 0000000000..ddeee56d42 --- /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 +#if P_FAMILY_MAREEP + CRY_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 +#if P_FAMILY_HOUNDOUR + CRY_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 + CRY_TURTWIG, + CRY_GROTLE, + CRY_TORTERRA, +#endif //P_FAMILY_TURTWIG +#if P_FAMILY_CHIMCHAR + CRY_CHIMCHAR, + CRY_MONFERNO, + CRY_INFERNAPE, +#endif //P_FAMILY_CHIMCHAR +#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 af5af53403..cd971efddf 100755 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -242,6 +242,8 @@ #define MOVEMENT_ACTION_FIGURE_8 0x9B #define MOVEMENT_ACTION_FLY_UP 0x9C #define MOVEMENT_ACTION_FLY_DOWN 0x9D +#define MOVEMENT_ACTION_EMOTE_X 0x9E +#define MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK 0x9F #define MOVEMENT_ACTION_STEP_END 0xFE #define MOVEMENT_ACTION_NONE 0xFF @@ -300,6 +302,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/field_effects.h b/include/constants/field_effects.h index a620409479..f8efeb9b81 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -68,6 +68,9 @@ #define FLDEFF_RAYQUAZA_SPOTLIGHT 64 #define FLDEFF_DESTROY_DEOXYS_ROCK 65 #define FLDEFF_MOVE_DEOXYS_ROCK 66 +#define FLDEFF_USE_VS_SEEKER 67 +#define FLDEFF_X_ICON 68 +#define FLDEFF_DOUBLE_EXCL_MARK_ICON 69 #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 38481869bc..51325baf25 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. @@ -112,7 +113,11 @@ #define FORM_CHANGE_TIME_OF_DAY 18 // Form change that depends on a multichoice (e.g. Rotom Catalog). -// param2: multichoice list (starting at 0). +// param1: multichoice list (starting at 0). #define FORM_CHANGE_ITEM_USE_MULTICHOICE 19 +// Form change that activates when inflicted with a specific status +// param1: status +#define FORM_CHANGE_STATUS 20 + #endif // GUARD_CONSTANTS_FORM_CHANGE_TYPES_H diff --git a/include/constants/items.h b/include/constants/items.h index 3f97bd76d3..dbe8c9acd2 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 @@ -834,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 @@ -857,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 @@ -943,8 +986,10 @@ #define ITEM_SWIFT_MOCHI 811 #define ITEM_FRESH_START_MOCHI 812 #define ITEM_GLIMMERING_CHARM 813 +#define ITEM_814 814 // TWV0YWwgQWxsb3k= +#define ITEM_815 815 // U3RlbGxhciBUZXJhIFNoYXJk -#define ITEMS_COUNT 814 +#define ITEMS_COUNT 816 #define ITEM_FIELD_ARROW ITEMS_COUNT // A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations diff --git a/include/constants/moves.h b/include/constants/moves.h index e87441b505..a8fcb01654 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 @@ -167,6 +179,9 @@ #define MOVE_SLASH 163 #define MOVE_SUBSTITUTE 164 #define MOVE_STRUGGLE 165 + +#define MOVES_COUNT_GEN1 166 + #define MOVE_SKETCH 166 #define MOVE_TRIPLE_KICK 167 #define MOVE_THIEF 168 @@ -187,6 +202,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 +241,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,12 +265,17 @@ #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 #define MOVE_WHIRLPOOL 250 #define MOVE_BEAT_UP 251 + +#define MOVES_COUNT_GEN2 252 + #define MOVE_FAKE_OUT 252 #define MOVE_UPROAR 253 #define MOVE_STOCKPILE 254 @@ -267,6 +290,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 +323,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 +347,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 @@ -864,8 +890,23 @@ #define MOVE_MATCHA_GOTCHA 830 #define MOVE_SYRUP_BOMB 831 #define MOVE_IVY_CUDGEL 832 +#define MOVE_833 833 +#define MOVE_834 834 +#define MOVE_835 835 +#define MOVE_836 836 +#define MOVE_837 837 +#define MOVE_838 838 +#define MOVE_839 839 +#define MOVE_840 840 +#define MOVE_841 841 +#define MOVE_842 842 +#define MOVE_843 843 +#define MOVE_844 844 +#define MOVE_845 845 +#define MOVE_846 846 +#define MOVE_847 847 -#define MOVES_COUNT_GEN9 833 +#define MOVES_COUNT_GEN9 848 #define MOVES_COUNT MOVES_COUNT_GEN9 diff --git a/include/constants/opponents.h b/include/constants/opponents.h index c9cf9239d8..9e7131077c 100644 --- a/include/constants/opponents.h +++ b/include/constants/opponents.h @@ -1,6 +1,8 @@ #ifndef GUARD_CONSTANTS_OPPONENTS_H #define GUARD_CONSTANTS_OPPONENTS_H +#include "constants/battle_partner.h" + #define TRAINER_NONE 0 #define TRAINER_SAWYER_1 1 #define TRAINER_GRUNT_AQUA_HIDEOUT_1 2 @@ -863,5 +865,6 @@ #define TRAINERS_COUNT 855 #define MAX_TRAINERS_COUNT 864 +#define TRAINER_PARTNER(partner) (MAX_TRAINERS_COUNT + partner) #endif // GUARD_CONSTANTS_OPPONENTS_H diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index 93d5e5d57b..c860b425d4 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -80,6 +80,7 @@ #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 diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index b637b748d9..ffbbb2eb18 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -1031,13 +1031,21 @@ enum { NATIONAL_DEX_MUNKIDORI, NATIONAL_DEX_FEZANDIPITI, NATIONAL_DEX_OGERPON, + NATIONAL_DEX_1018, + NATIONAL_DEX_1019, + NATIONAL_DEX_1020, + NATIONAL_DEX_1021, + NATIONAL_DEX_1022, + NATIONAL_DEX_1023, + NATIONAL_DEX_1024, + NATIONAL_DEX_1025, }; #define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI #if P_GEN_9_POKEMON == TRUE - #define NATIONAL_DEX_COUNT NATIONAL_DEX_OGERPON + #define NATIONAL_DEX_COUNT NATIONAL_DEX_1025 #elif P_GEN_8_POKEMON == TRUE #define NATIONAL_DEX_COUNT NATIONAL_DEX_ENAMORUS #elif P_GEN_7_POKEMON == TRUE @@ -1070,6 +1078,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, @@ -1088,7 +1099,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, @@ -1120,7 +1131,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, @@ -1146,7 +1157,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, @@ -1159,12 +1170,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, @@ -1221,7 +1232,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, @@ -1242,18 +1253,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, @@ -1264,6 +1278,9 @@ enum { HOENN_DEX_GOREBYSS, HOENN_DEX_RELICANTH, HOENN_DEX_CORSOLA, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + 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 e10085b8ba..67053a2819 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -25,24 +25,24 @@ #define NUMBER_OF_MON_TYPES 19 // Pokemon egg groups -#define EGG_GROUP_NONE 0 -#define EGG_GROUP_MONSTER 1 -#define EGG_GROUP_WATER_1 2 -#define EGG_GROUP_BUG 3 -#define EGG_GROUP_FLYING 4 -#define EGG_GROUP_FIELD 5 -#define EGG_GROUP_FAIRY 6 -#define EGG_GROUP_GRASS 7 -#define EGG_GROUP_HUMAN_LIKE 8 -#define EGG_GROUP_WATER_3 9 -#define EGG_GROUP_MINERAL 10 -#define EGG_GROUP_AMORPHOUS 11 -#define EGG_GROUP_WATER_2 12 -#define EGG_GROUP_DITTO 13 -#define EGG_GROUP_DRAGON 14 -#define EGG_GROUP_UNDISCOVERED 15 +#define EGG_GROUP_NONE 0 +#define EGG_GROUP_MONSTER 1 +#define EGG_GROUP_WATER_1 2 +#define EGG_GROUP_BUG 3 +#define EGG_GROUP_FLYING 4 +#define EGG_GROUP_FIELD 5 +#define EGG_GROUP_FAIRY 6 +#define EGG_GROUP_GRASS 7 +#define EGG_GROUP_HUMAN_LIKE 8 +#define EGG_GROUP_WATER_3 9 +#define EGG_GROUP_MINERAL 10 +#define EGG_GROUP_AMORPHOUS 11 +#define EGG_GROUP_WATER_2 12 +#define EGG_GROUP_DITTO 13 +#define EGG_GROUP_DRAGON 14 +#define EGG_GROUP_NO_EGGS_DISCOVERED 15 -#define EGG_GROUPS_PER_MON 2 +#define EGG_GROUPS_PER_MON 2 // Pokemon natures #define NATURE_HARDY 0 @@ -225,10 +225,10 @@ #define EV_ITEM_RAISE_LIMIT 100 #endif -// Split defines. -#define SPLIT_PHYSICAL 0x0 -#define SPLIT_SPECIAL 0x1 -#define SPLIT_STATUS 0x2 +// Move category defines. +#define BATTLE_CATEGORY_PHYSICAL 0 +#define BATTLE_CATEGORY_SPECIAL 1 +#define BATTLE_CATEGORY_STATUS 2 // Growth rates #define GROWTH_MEDIUM_FAST 0 @@ -253,7 +253,8 @@ #define F_SUMMARY_SCREEN_FLIP_SPRITE 0x80 // Evolution types -#define EVO_NONE 0xffff // Not an actual evolution, used to generate offspring that can't evolve into the specified species, like regional forms. +#define EVOLUTIONS_END 0xFFFF // Not an actual evolution, used to mark the end of an evolution array. +#define EVO_NONE 0xFFFE // Not an actual evolution, used to generate offspring that can't evolve into the specified species, like regional forms. #define EVO_FRIENDSHIP 1 // Pokémon levels up with friendship ≥ 220 #define EVO_FRIENDSHIP_DAY 2 // Pokémon levels up during the day with friendship ≥ 220 #define EVO_FRIENDSHIP_NIGHT 3 // Pokémon levels up at night with friendship ≥ 220 @@ -301,8 +302,6 @@ #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 - // Evolution 'modes,' for GetEvolutionTargetSpecies #define EVO_MODE_NORMAL 0 #define EVO_MODE_TRADE 1 @@ -331,21 +330,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_PALDEAN_FORM (1 << 8) -#define SPECIES_FLAG_ALL_PERFECT_IVS (1 << 9) -#define SPECIES_FLAG_CANNOT_BE_TRADED (1 << 10) -#define SPECIES_FLAG_ULTRA_BURST (1 << 11) -#define SPECIES_FLAG_PARADOX (1 << 12) - #define LEGENDARY_PERFECT_IV_COUNT 3 #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/constants/species.h b/include/constants/species.h index 7d05c9b0df..bcac9ecbc8 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -813,6 +813,7 @@ #define SPECIES_SILVALLY_NORMAL 773 #define SPECIES_MINIOR SPECIES_MINIOR_METEOR #define SPECIES_MINIOR_METEOR SPECIES_MINIOR_METEOR_RED +#define SPECIES_MINIOR_RED SPECIES_MINIOR_METEOR_RED #define SPECIES_MINIOR_METEOR_RED 774 #define SPECIES_KOMALA 775 #define SPECIES_TURTONATOR 776 @@ -1349,6 +1350,12 @@ #define SPECIES_SILVALLY_FAIRY FORMS_START + 287 // Minior +#define SPECIES_MINIOR_ORANGE SPECIES_MINIOR_METEOR_ORANGE +#define SPECIES_MINIOR_YELLOW SPECIES_MINIOR_METEOR_YELLOW +#define SPECIES_MINIOR_GREEN SPECIES_MINIOR_METEOR_GREEN +#define SPECIES_MINIOR_BLUE SPECIES_MINIOR_METEOR_BLUE +#define SPECIES_MINIOR_INDIGO SPECIES_MINIOR_METEOR_INDIGO +#define SPECIES_MINIOR_VIOLET SPECIES_MINIOR_METEOR_VIOLET #define SPECIES_MINIOR_METEOR_ORANGE FORMS_START + 288 #define SPECIES_MINIOR_METEOR_YELLOW FORMS_START + 289 #define SPECIES_MINIOR_METEOR_GREEN FORMS_START + 290 @@ -1650,8 +1657,82 @@ #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 +// Indigo Disk +#define SPECIES_1018 GEN9_START + 137 +#define SPECIES_1019 GEN9_START + 138 +#define SPECIES_1020 GEN9_START + 139 +#define SPECIES_1021 GEN9_START + 140 +#define SPECIES_1022 GEN9_START + 141 +#define SPECIES_1023 GEN9_START + 142 +#define SPECIES_1024 SPECIES_1024_FORM_1 +#define SPECIES_1024_FORM_1 GEN9_START + 143 +#define SPECIES_1024_FORM_2 GEN9_START + 144 +#define SPECIES_1024_FORM_3 GEN9_START + 145 +#define SPECIES_1025 GEN9_START + 146 -#define GIGANTAMAX_START SPECIES_URSALUNA_BLOODMOON +#define PLACEHOLDER_START SPECIES_1025 +// XD: Gale of Darkness +#define SPECIES_LUGIA_SHADOW PLACEHOLDER_START + 1 +// Diamond & Pearl +#define SPECIES_MOTHIM_SANDY_CLOAK PLACEHOLDER_START + 2 +#define SPECIES_MOTHIM_TRASH_CLOAK PLACEHOLDER_START + 3 +// X & Y +#define SPECIES_SCATTERBUG_POLAR PLACEHOLDER_START + 4 +#define SPECIES_SCATTERBUG_TUNDRA PLACEHOLDER_START + 5 +#define SPECIES_SCATTERBUG_CONTINENTAL PLACEHOLDER_START + 6 +#define SPECIES_SCATTERBUG_GARDEN PLACEHOLDER_START + 7 +#define SPECIES_SCATTERBUG_ELEGANT PLACEHOLDER_START + 8 +#define SPECIES_SCATTERBUG_MEADOW PLACEHOLDER_START + 9 +#define SPECIES_SCATTERBUG_MODERN PLACEHOLDER_START + 10 +#define SPECIES_SCATTERBUG_MARINE PLACEHOLDER_START + 11 +#define SPECIES_SCATTERBUG_ARCHIPELAGO PLACEHOLDER_START + 12 +#define SPECIES_SCATTERBUG_HIGH_PLAINS PLACEHOLDER_START + 13 +#define SPECIES_SCATTERBUG_SANDSTORM PLACEHOLDER_START + 14 +#define SPECIES_SCATTERBUG_RIVER PLACEHOLDER_START + 15 +#define SPECIES_SCATTERBUG_MONSOON PLACEHOLDER_START + 16 +#define SPECIES_SCATTERBUG_SAVANNA PLACEHOLDER_START + 17 +#define SPECIES_SCATTERBUG_SUN PLACEHOLDER_START + 18 +#define SPECIES_SCATTERBUG_OCEAN PLACEHOLDER_START + 19 +#define SPECIES_SCATTERBUG_JUNGLE PLACEHOLDER_START + 20 +#define SPECIES_SCATTERBUG_FANCY PLACEHOLDER_START + 21 +#define SPECIES_SCATTERBUG_POKE_BALL PLACEHOLDER_START + 22 +#define SPECIES_SPEWPA_POLAR PLACEHOLDER_START + 23 +#define SPECIES_SPEWPA_TUNDRA PLACEHOLDER_START + 24 +#define SPECIES_SPEWPA_CONTINENTAL PLACEHOLDER_START + 25 +#define SPECIES_SPEWPA_GARDEN PLACEHOLDER_START + 26 +#define SPECIES_SPEWPA_ELEGANT PLACEHOLDER_START + 27 +#define SPECIES_SPEWPA_MEADOW PLACEHOLDER_START + 28 +#define SPECIES_SPEWPA_MODERN PLACEHOLDER_START + 29 +#define SPECIES_SPEWPA_MARINE PLACEHOLDER_START + 30 +#define SPECIES_SPEWPA_ARCHIPELAGO PLACEHOLDER_START + 31 +#define SPECIES_SPEWPA_HIGH_PLAINS PLACEHOLDER_START + 32 +#define SPECIES_SPEWPA_SANDSTORM PLACEHOLDER_START + 33 +#define SPECIES_SPEWPA_RIVER PLACEHOLDER_START + 34 +#define SPECIES_SPEWPA_MONSOON PLACEHOLDER_START + 35 +#define SPECIES_SPEWPA_SAVANNA PLACEHOLDER_START + 36 +#define SPECIES_SPEWPA_SUN PLACEHOLDER_START + 37 +#define SPECIES_SPEWPA_OCEAN PLACEHOLDER_START + 38 +#define SPECIES_SPEWPA_JUNGLE PLACEHOLDER_START + 39 +#define SPECIES_SPEWPA_FANCY PLACEHOLDER_START + 40 +#define SPECIES_SPEWPA_POKE_BALL PLACEHOLDER_START + 41 +// Sun & Moon +#define SPECIES_RATICATE_ALOLAN_TOTEM PLACEHOLDER_START + 42 +#define SPECIES_GUMSHOOS_TOTEM PLACEHOLDER_START + 43 +#define SPECIES_VIKAVOLT_TOTEM PLACEHOLDER_START + 44 +#define SPECIES_LURANTIS_TOTEM PLACEHOLDER_START + 45 +#define SPECIES_SALAZZLE_TOTEM PLACEHOLDER_START + 46 +#define SPECIES_MIMIKYU_TOTEM PLACEHOLDER_START + 47 +#define SPECIES_KOMMO_O_TOTEM PLACEHOLDER_START + 48 +// Ultra Sun & Ultra Moon +#define SPECIES_MAROWAK_ALOLAN_TOTEM PLACEHOLDER_START + 49 +#define SPECIES_RIBOMBEE_TOTEM PLACEHOLDER_START + 50 +#define SPECIES_ARAQUANID_TOTEM PLACEHOLDER_START + 51 +#define SPECIES_TOGEDEMARU_TOTEM PLACEHOLDER_START + 52 +// Let's Go Pikachu & Let's Go Eevee +#define SPECIES_PIKACHU_PARTNER PLACEHOLDER_START + 53 +#define SPECIES_EEVEE_PARTNER PLACEHOLDER_START + 54 + +#define GIGANTAMAX_START SPECIES_EEVEE_PARTNER // Gigantamax Forms #define SPECIES_VENUSAUR_GIGANTAMAX GIGANTAMAX_START + 1 diff --git a/include/constants/trainers.h b/include/constants/trainers.h index 16904bcd12..ff7d5b11f3 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -14,8 +14,6 @@ #define TRAINER_SECRET_BASE 1024 #define TRAINER_LINK_OPPONENT 2048 #define TRAINER_UNION_ROOM 3072 -#define TRAINER_STEVEN_PARTNER 3075 -#define TRAINER_CUSTOM_PARTNER 3076 #define TRAINER_PIC_HIKER 0 #define TRAINER_PIC_AQUA_GRUNT_M 1 diff --git a/include/contest.h b/include/contest.h index 21e2530c21..7a67fecd55 100644 --- a/include/contest.h +++ b/include/contest.h @@ -3,6 +3,7 @@ #include "palette.h" #include "constants/contest.h" +#include "random.h" // for rng_value_t enum { @@ -327,7 +328,7 @@ extern struct ContestResources *gContestResources; extern struct ContestWinner gCurContestWinner; extern u8 gCurContestWinnerIsForArtist; extern u8 gCurContestWinnerSaveIdx; -extern u32 gContestRngValue; +extern rng_value_t gContestRngValue; // contest.c void ResetLinkContestBoolean(void); diff --git a/include/data.h b/include/data.h index 8423329114..a5918fcb98 100644 --- a/include/data.h +++ b/include/data.h @@ -28,6 +28,22 @@ struct MonCoords u8 y_offset; }; +struct TrainerSprite +{ + u8 y_offset; + struct CompressedSpriteSheet frontPic; + struct CompressedSpritePalette palette; + const union AnimCmd *const *const animation; +}; + +struct TrainerBacksprite +{ + struct MonCoords coordinates; + struct CompressedSpriteSheet backPic; + struct CompressedSpritePalette palette; + const union AnimCmd *const *const animation; +}; + #define MON_COORDS_SIZE(width, height)(DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8)) #define GET_MON_COORDS_WIDTH(size)((size >> 4) * 8) #define GET_MON_COORDS_HEIGHT(size)((size & 0xF) * 8) @@ -90,33 +106,16 @@ 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 sAnim_GeneralFrame3[]; 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 gMonPaletteTableFemale[]; -extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; -extern const struct CompressedSpritePalette gMonShinyPaletteTableFemale[]; -extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; -extern const struct MonCoords gTrainerFrontPicCoords[]; -extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[]; -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 TrainerSprite gTrainerSprites[]; +extern const struct TrainerBacksprite gTrainerBacksprites[]; extern const struct Trainer gTrainers[]; +extern const struct Trainer gBattlePartners[]; + 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 d89c7994b8..e25392091b 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 1ded221eb4..9c99d09044 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 01269cdb5e..b48522ebc8 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -440,4 +440,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 4e0a88f82a..1539356959 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -611,5 +611,9 @@ extern const u8 EventScript_TradeCenter_Chair1[]; extern const u8 EventScript_TradeCenter_Chair0[]; extern const u8 EventScript_ConfirmLeaveCableClubRoom[]; extern const u8 EventScript_TerminateLink[]; +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 faf71e9c08..d36f2686c2 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 7461929c3a..b5bf29ca88 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -254,6 +254,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 d55118dde5..9d7258e32d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -65,8390 +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_TaurosPaldeanCombatBreed[]; -extern const u32 gMonPalette_TaurosPaldeanCombatBreed[]; -extern const u32 gMonBackPic_TaurosPaldeanCombatBreed[]; -extern const u32 gMonShinyPalette_TaurosPaldeanCombatBreed[]; -extern const u8 gMonIcon_TaurosPaldeanCombatBreed[]; -// extern const u8 gMonFootprint_TaurosPaldeanCombatBreed[]; -extern const u32 gMonFrontPic_TaurosPaldeanBlazeBreed[]; -extern const u32 gMonPalette_TaurosPaldeanBlazeBreed[]; -extern const u32 gMonBackPic_TaurosPaldeanBlazeBreed[]; -extern const u32 gMonShinyPalette_TaurosPaldeanBlazeBreed[]; -extern const u8 gMonIcon_TaurosPaldeanBlazeBreed[]; -// extern const u8 gMonFootprint_TaurosPaldeanBlazeBreed[]; -extern const u32 gMonFrontPic_TaurosPaldeanAquaBreed[]; -extern const u32 gMonPalette_TaurosPaldeanAquaBreed[]; -extern const u32 gMonBackPic_TaurosPaldeanAquaBreed[]; -extern const u32 gMonShinyPalette_TaurosPaldeanAquaBreed[]; -extern const u8 gMonIcon_TaurosPaldeanAquaBreed[]; -// extern const u8 gMonFootprint_TaurosPaldeanAquaBreed[]; -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_WooperPaldean[]; -extern const u32 gMonPalette_WooperPaldean[]; -extern const u32 gMonBackPic_WooperPaldean[]; -extern const u32 gMonShinyPalette_WooperPaldean[]; -//extern const u8 gMonIcon_WooperPaldean[]; -extern const u8 gMonFootprint_WooperPaldean[]; -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_UrsalunaBloodmoon[]; -extern const u32 gMonPalette_UrsalunaBloodmoon[]; -extern const u32 gMonBackPic_UrsalunaBloodmoon[]; -extern const u32 gMonShinyPalette_UrsalunaBloodmoon[]; -extern const u8 gMonIcon_UrsalunaBloodmoon[]; -extern const u8 gMonFootprint_UrsalunaBloodmoon[]; -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_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_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_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 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_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[]; -#if P_CUSTOM_GENDER_DIFF_ICONS == TRUE -extern const u8 gMonIcon_PikachuF[]; -#endif -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[]; -#if P_CUSTOM_GENDER_DIFF_ICONS == TRUE -extern const u8 gMonIcon_WobbuffetF[]; -#endif -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_CUSTOM_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_AlcremieStrawberryVanillaCream[]; -//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_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_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 u32 gMonFrontPic_AlcremieStrawberry[]; -extern const u32 gMonPalette_AlcremieStrawberryVanillaCream[]; -extern const u32 gMonPalette_AlcremieStrawberryRubyCream[]; -extern const u32 gMonPalette_AlcremieStrawberryMatchaCream[]; -extern const u32 gMonPalette_AlcremieStrawberryMintCream[]; -extern const u32 gMonPalette_AlcremieStrawberryLemonCream[]; -extern const u32 gMonPalette_AlcremieStrawberrySaltedCream[]; -extern const u32 gMonPalette_AlcremieStrawberryRubySwirl[]; -extern const u32 gMonPalette_AlcremieStrawberryCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieStrawberryRainbowSwirl[]; -extern const u32 gMonBackPic_AlcremieStrawberry[]; -extern const u32 gMonShinyPalette_AlcremieStrawberry[]; -extern const u8 gMonFootprint_Alcremie[]; -extern const u32 gMonFrontPic_AlcremieBerry[]; -extern const u32 gMonPalette_AlcremieBerryVanillaCream[]; -extern const u32 gMonPalette_AlcremieBerryRubyCream[]; -extern const u32 gMonPalette_AlcremieBerryMatchaCream[]; -extern const u32 gMonPalette_AlcremieBerryMintCream[]; -extern const u32 gMonPalette_AlcremieBerryLemonCream[]; -extern const u32 gMonPalette_AlcremieBerrySaltedCream[]; -extern const u32 gMonPalette_AlcremieBerryRubySwirl[]; -extern const u32 gMonPalette_AlcremieBerryCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieBerryRainbowSwirl[]; -extern const u32 gMonBackPic_AlcremieBerry[]; -extern const u32 gMonShinyPalette_AlcremieBerry[]; -//extern const u8 gMonIcon_AlcremieBerry[]; -extern const u32 gMonFrontPic_AlcremieLove[]; -extern const u32 gMonPalette_AlcremieLoveVanillaCream[]; -extern const u32 gMonPalette_AlcremieLoveRubyCream[]; -extern const u32 gMonPalette_AlcremieLoveMatchaCream[]; -extern const u32 gMonPalette_AlcremieLoveMintCream[]; -extern const u32 gMonPalette_AlcremieLoveLemonCream[]; -extern const u32 gMonPalette_AlcremieLoveSaltedCream[]; -extern const u32 gMonPalette_AlcremieLoveRubySwirl[]; -extern const u32 gMonPalette_AlcremieLoveCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieLoveRainbowSwirl[]; -extern const u32 gMonBackPic_AlcremieLove[]; -extern const u32 gMonShinyPalette_AlcremieLove[]; -//extern const u8 gMonIcon_AlcremieLove[]; -extern const u32 gMonFrontPic_AlcremieStar[]; -extern const u32 gMonPalette_AlcremieStarVanillaCream[]; -extern const u32 gMonPalette_AlcremieStarRubyCream[]; -extern const u32 gMonPalette_AlcremieStarMatchaCream[]; -extern const u32 gMonPalette_AlcremieStarMintCream[]; -extern const u32 gMonPalette_AlcremieStarLemonCream[]; -extern const u32 gMonPalette_AlcremieStarSaltedCream[]; -extern const u32 gMonPalette_AlcremieStarRubySwirl[]; -extern const u32 gMonPalette_AlcremieStarCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieStarRainbowSwirl[]; -extern const u32 gMonBackPic_AlcremieStar[]; -extern const u32 gMonShinyPalette_AlcremieStar[]; -//extern const u8 gMonIcon_AlcremieStar[]; -extern const u32 gMonFrontPic_AlcremieClover[]; -extern const u32 gMonPalette_AlcremieCloverVanillaCream[]; -extern const u32 gMonPalette_AlcremieCloverRubyCream[]; -extern const u32 gMonPalette_AlcremieCloverMatchaCream[]; -extern const u32 gMonPalette_AlcremieCloverMintCream[]; -extern const u32 gMonPalette_AlcremieCloverLemonCream[]; -extern const u32 gMonPalette_AlcremieCloverSaltedCream[]; -extern const u32 gMonPalette_AlcremieCloverRubySwirl[]; -extern const u32 gMonPalette_AlcremieCloverCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieCloverRainbowSwirl[]; -extern const u32 gMonBackPic_AlcremieClover[]; -extern const u32 gMonShinyPalette_AlcremieClover[]; -//extern const u8 gMonIcon_AlcremieClover[]; -extern const u32 gMonFrontPic_AlcremieFlower[]; -extern const u32 gMonPalette_AlcremieFlowerVanillaCream[]; -extern const u32 gMonPalette_AlcremieFlowerRubyCream[]; -extern const u32 gMonPalette_AlcremieFlowerMatchaCream[]; -extern const u32 gMonPalette_AlcremieFlowerMintCream[]; -extern const u32 gMonPalette_AlcremieFlowerLemonCream[]; -extern const u32 gMonPalette_AlcremieFlowerSaltedCream[]; -extern const u32 gMonPalette_AlcremieFlowerRubySwirl[]; -extern const u32 gMonPalette_AlcremieFlowerCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieFlowerRainbowSwirl[]; -extern const u32 gMonBackPic_AlcremieFlower[]; -extern const u32 gMonShinyPalette_AlcremieFlower[]; -//extern const u8 gMonIcon_AlcremieFlower[]; -extern const u32 gMonFrontPic_AlcremieRibbon[]; -extern const u32 gMonPalette_AlcremieRibbonVanillaCream[]; -extern const u32 gMonPalette_AlcremieRibbonRubyCream[]; -extern const u32 gMonPalette_AlcremieRibbonMatchaCream[]; -extern const u32 gMonPalette_AlcremieRibbonMintCream[]; -extern const u32 gMonPalette_AlcremieRibbonLemonCream[]; -extern const u32 gMonPalette_AlcremieRibbonSaltedCream[]; -extern const u32 gMonPalette_AlcremieRibbonRubySwirl[]; -extern const u32 gMonPalette_AlcremieRibbonCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieRibbonRainbowSwirl[]; -extern const u32 gMonBackPic_AlcremieRibbon[]; -extern const u32 gMonShinyPalette_AlcremieRibbon[]; -//extern const u8 gMonIcon_AlcremieRibbon[]; -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 -#if P_GEN_9_POKEMON == TRUE -extern const u32 gMonFrontPic_Sprigatito[]; -extern const u32 gMonPalette_Sprigatito[]; -extern const u32 gMonBackPic_Sprigatito[]; -extern const u32 gMonShinyPalette_Sprigatito[]; -extern const u8 gMonIcon_Sprigatito[]; -extern const u8 gMonFootprint_Sprigatito[]; -extern const u32 gMonFrontPic_Floragato[]; -extern const u32 gMonPalette_Floragato[]; -extern const u32 gMonBackPic_Floragato[]; -extern const u32 gMonShinyPalette_Floragato[]; -extern const u8 gMonIcon_Floragato[]; -extern const u8 gMonFootprint_Floragato[]; -extern const u32 gMonFrontPic_Meowscarada[]; -extern const u32 gMonPalette_Meowscarada[]; -extern const u32 gMonBackPic_Meowscarada[]; -extern const u32 gMonShinyPalette_Meowscarada[]; -extern const u8 gMonIcon_Meowscarada[]; -extern const u8 gMonFootprint_Meowscarada[]; -extern const u32 gMonFrontPic_Fuecoco[]; -extern const u32 gMonPalette_Fuecoco[]; -extern const u32 gMonBackPic_Fuecoco[]; -extern const u32 gMonShinyPalette_Fuecoco[]; -extern const u8 gMonIcon_Fuecoco[]; -extern const u8 gMonFootprint_Fuecoco[]; -extern const u32 gMonFrontPic_Crocalor[]; -extern const u32 gMonPalette_Crocalor[]; -extern const u32 gMonBackPic_Crocalor[]; -extern const u32 gMonShinyPalette_Crocalor[]; -extern const u8 gMonIcon_Crocalor[]; -extern const u8 gMonFootprint_Crocalor[]; -extern const u32 gMonFrontPic_Skeledirge[]; -extern const u32 gMonPalette_Skeledirge[]; -extern const u32 gMonBackPic_Skeledirge[]; -extern const u32 gMonShinyPalette_Skeledirge[]; -extern const u8 gMonIcon_Skeledirge[]; -extern const u8 gMonFootprint_Skeledirge[]; -extern const u32 gMonFrontPic_Quaxly[]; -extern const u32 gMonPalette_Quaxly[]; -extern const u32 gMonBackPic_Quaxly[]; -extern const u32 gMonShinyPalette_Quaxly[]; -extern const u8 gMonIcon_Quaxly[]; -extern const u8 gMonFootprint_Quaxly[]; -extern const u32 gMonFrontPic_Quaxwell[]; -extern const u32 gMonPalette_Quaxwell[]; -extern const u32 gMonBackPic_Quaxwell[]; -extern const u32 gMonShinyPalette_Quaxwell[]; -extern const u8 gMonIcon_Quaxwell[]; -extern const u8 gMonFootprint_Quaxwell[]; -extern const u32 gMonFrontPic_Quaquaval[]; -extern const u32 gMonPalette_Quaquaval[]; -extern const u32 gMonBackPic_Quaquaval[]; -extern const u32 gMonShinyPalette_Quaquaval[]; -extern const u8 gMonIcon_Quaquaval[]; -extern const u8 gMonFootprint_Quaquaval[]; -extern const u32 gMonFrontPic_Lechonk[]; -extern const u32 gMonPalette_Lechonk[]; -extern const u32 gMonBackPic_Lechonk[]; -extern const u32 gMonShinyPalette_Lechonk[]; -extern const u8 gMonIcon_Lechonk[]; -extern const u8 gMonFootprint_Lechonk[]; -extern const u32 gMonFrontPic_OinkologneMale[]; -extern const u32 gMonPalette_OinkologneMale[]; -extern const u32 gMonBackPic_OinkologneMale[]; -extern const u32 gMonShinyPalette_OinkologneMale[]; -extern const u8 gMonIcon_OinkologneMale[]; -extern const u8 gMonFootprint_Oinkologne[]; -extern const u32 gMonFrontPic_OinkologneFemale[]; -extern const u32 gMonPalette_OinkologneFemale[]; -extern const u32 gMonBackPic_OinkologneFemale[]; -extern const u32 gMonShinyPalette_OinkologneFemale[]; -extern const u8 gMonIcon_OinkologneFemale[]; -extern const u8 gMonFootprint_OinkologneFemale[]; -extern const u32 gMonFrontPic_Tarountula[]; -extern const u32 gMonPalette_Tarountula[]; -extern const u32 gMonBackPic_Tarountula[]; -extern const u32 gMonShinyPalette_Tarountula[]; -extern const u8 gMonIcon_Tarountula[]; -extern const u8 gMonFootprint_Tarountula[]; -extern const u32 gMonFrontPic_Spidops[]; -extern const u32 gMonPalette_Spidops[]; -extern const u32 gMonBackPic_Spidops[]; -extern const u32 gMonShinyPalette_Spidops[]; -extern const u8 gMonIcon_Spidops[]; -extern const u8 gMonFootprint_Spidops[]; -extern const u32 gMonFrontPic_Nymble[]; -extern const u32 gMonPalette_Nymble[]; -extern const u32 gMonBackPic_Nymble[]; -extern const u32 gMonShinyPalette_Nymble[]; -extern const u8 gMonIcon_Nymble[]; -extern const u8 gMonFootprint_Nymble[]; -extern const u32 gMonFrontPic_Lokix[]; -extern const u32 gMonPalette_Lokix[]; -extern const u32 gMonBackPic_Lokix[]; -extern const u32 gMonShinyPalette_Lokix[]; -extern const u8 gMonIcon_Lokix[]; -extern const u8 gMonFootprint_Lokix[]; -extern const u32 gMonFrontPic_Pawmi[]; -extern const u32 gMonPalette_Pawmi[]; -extern const u32 gMonBackPic_Pawmi[]; -extern const u32 gMonShinyPalette_Pawmi[]; -extern const u8 gMonIcon_Pawmi[]; -extern const u8 gMonFootprint_Pawmi[]; -extern const u32 gMonFrontPic_Pawmo[]; -extern const u32 gMonPalette_Pawmo[]; -extern const u32 gMonBackPic_Pawmo[]; -extern const u32 gMonShinyPalette_Pawmo[]; -extern const u8 gMonIcon_Pawmo[]; -extern const u8 gMonFootprint_Pawmo[]; -extern const u32 gMonFrontPic_Pawmot[]; -extern const u32 gMonPalette_Pawmot[]; -extern const u32 gMonBackPic_Pawmot[]; -extern const u32 gMonShinyPalette_Pawmot[]; -extern const u8 gMonIcon_Pawmot[]; -extern const u8 gMonFootprint_Pawmot[]; -extern const u32 gMonFrontPic_Tandemaus[]; -extern const u32 gMonPalette_Tandemaus[]; -extern const u32 gMonBackPic_Tandemaus[]; -extern const u32 gMonShinyPalette_Tandemaus[]; -extern const u8 gMonIcon_Tandemaus[]; -extern const u8 gMonFootprint_Tandemaus[]; -extern const u32 gMonFrontPic_MausholdFamilyOfThree[]; -extern const u32 gMonPalette_Maushold[]; -extern const u32 gMonBackPic_MausholdFamilyOfThree[]; -extern const u32 gMonShinyPalette_Maushold[]; -extern const u8 gMonIcon_MausholdFamilyOfThree[]; -extern const u8 gMonFootprint_Maushold[]; -extern const u32 gMonFrontPic_MausholdFamilyOfFour[]; -extern const u32 gMonBackPic_MausholdFamilyOfFour[]; -extern const u8 gMonIcon_MausholdFamilyOfFour[]; -extern const u32 gMonFrontPic_Fidough[]; -extern const u32 gMonPalette_Fidough[]; -extern const u32 gMonBackPic_Fidough[]; -extern const u32 gMonShinyPalette_Fidough[]; -extern const u8 gMonIcon_Fidough[]; -extern const u8 gMonFootprint_Fidough[]; -extern const u32 gMonFrontPic_Dachsbun[]; -extern const u32 gMonPalette_Dachsbun[]; -extern const u32 gMonBackPic_Dachsbun[]; -extern const u32 gMonShinyPalette_Dachsbun[]; -extern const u8 gMonIcon_Dachsbun[]; -extern const u8 gMonFootprint_Dachsbun[]; -extern const u32 gMonFrontPic_Smoliv[]; -extern const u32 gMonPalette_Smoliv[]; -extern const u32 gMonBackPic_Smoliv[]; -extern const u32 gMonShinyPalette_Smoliv[]; -extern const u8 gMonIcon_Smoliv[]; -extern const u8 gMonFootprint_Smoliv[]; -extern const u32 gMonFrontPic_Dolliv[]; -extern const u32 gMonPalette_Dolliv[]; -extern const u32 gMonBackPic_Dolliv[]; -extern const u32 gMonShinyPalette_Dolliv[]; -extern const u8 gMonIcon_Dolliv[]; -extern const u8 gMonFootprint_Dolliv[]; -extern const u32 gMonFrontPic_Arboliva[]; -extern const u32 gMonPalette_Arboliva[]; -extern const u32 gMonBackPic_Arboliva[]; -extern const u32 gMonShinyPalette_Arboliva[]; -extern const u8 gMonIcon_Arboliva[]; -extern const u8 gMonFootprint_Arboliva[]; -extern const u32 gMonFrontPic_Squawkabilly[]; -extern const u32 gMonPalette_SquawkabillyGreenPlumage[]; -extern const u32 gMonPalette_SquawkabillyBluePlumage[]; -extern const u32 gMonPalette_SquawkabillyYellowPlumage[]; -extern const u32 gMonPalette_SquawkabillyWhitePlumage[]; -extern const u32 gMonBackPic_Squawkabilly[]; -extern const u32 gMonShinyPalette_SquawkabillyGreenPlumage[]; -extern const u32 gMonShinyPalette_SquawkabillyBluePlumage[]; -extern const u32 gMonShinyPalette_SquawkabillyYellowPlumage[]; -extern const u32 gMonShinyPalette_SquawkabillyWhitePlumage[]; -extern const u8 gMonIcon_SquawkabillyGreenPlumage[]; -extern const u8 gMonIcon_SquawkabillyBluePlumage[]; -extern const u8 gMonIcon_SquawkabillyYellowPlumage[]; -extern const u8 gMonIcon_SquawkabillyWhitePlumage[]; -extern const u8 gMonFootprint_Squawkabilly[]; -extern const u32 gMonFrontPic_Nacli[]; -extern const u32 gMonPalette_Nacli[]; -extern const u32 gMonBackPic_Nacli[]; -extern const u32 gMonShinyPalette_Nacli[]; -extern const u8 gMonIcon_Nacli[]; -extern const u8 gMonFootprint_Nacli[]; -extern const u32 gMonFrontPic_Naclstack[]; -extern const u32 gMonPalette_Naclstack[]; -extern const u32 gMonBackPic_Naclstack[]; -extern const u32 gMonShinyPalette_Naclstack[]; -extern const u8 gMonIcon_Naclstack[]; -extern const u8 gMonFootprint_Naclstack[]; -extern const u32 gMonFrontPic_Garganacl[]; -extern const u32 gMonPalette_Garganacl[]; -extern const u32 gMonBackPic_Garganacl[]; -extern const u32 gMonShinyPalette_Garganacl[]; -extern const u8 gMonIcon_Garganacl[]; -extern const u8 gMonFootprint_Garganacl[]; -extern const u32 gMonFrontPic_Charcadet[]; -extern const u32 gMonPalette_Charcadet[]; -extern const u32 gMonBackPic_Charcadet[]; -extern const u32 gMonShinyPalette_Charcadet[]; -extern const u8 gMonIcon_Charcadet[]; -extern const u8 gMonFootprint_Charcadet[]; -extern const u32 gMonFrontPic_Armarouge[]; -extern const u32 gMonPalette_Armarouge[]; -extern const u32 gMonBackPic_Armarouge[]; -extern const u32 gMonShinyPalette_Armarouge[]; -extern const u8 gMonIcon_Armarouge[]; -extern const u8 gMonFootprint_Armarouge[]; -extern const u32 gMonFrontPic_Ceruledge[]; -extern const u32 gMonPalette_Ceruledge[]; -extern const u32 gMonBackPic_Ceruledge[]; -extern const u32 gMonShinyPalette_Ceruledge[]; -extern const u8 gMonIcon_Ceruledge[]; -extern const u8 gMonFootprint_Ceruledge[]; -extern const u32 gMonFrontPic_Tadbulb[]; -extern const u32 gMonPalette_Tadbulb[]; -extern const u32 gMonBackPic_Tadbulb[]; -extern const u32 gMonShinyPalette_Tadbulb[]; -extern const u8 gMonIcon_Tadbulb[]; -extern const u8 gMonFootprint_Tadbulb[]; -extern const u32 gMonFrontPic_Bellibolt[]; -extern const u32 gMonPalette_Bellibolt[]; -extern const u32 gMonBackPic_Bellibolt[]; -extern const u32 gMonShinyPalette_Bellibolt[]; -extern const u8 gMonIcon_Bellibolt[]; -extern const u8 gMonFootprint_Bellibolt[]; -extern const u32 gMonFrontPic_Wattrel[]; -extern const u32 gMonPalette_Wattrel[]; -extern const u32 gMonBackPic_Wattrel[]; -extern const u32 gMonShinyPalette_Wattrel[]; -extern const u8 gMonIcon_Wattrel[]; -extern const u8 gMonFootprint_Wattrel[]; -extern const u32 gMonFrontPic_Kilowattrel[]; -extern const u32 gMonPalette_Kilowattrel[]; -extern const u32 gMonBackPic_Kilowattrel[]; -extern const u32 gMonShinyPalette_Kilowattrel[]; -extern const u8 gMonIcon_Kilowattrel[]; -extern const u8 gMonFootprint_Kilowattrel[]; -extern const u32 gMonFrontPic_Maschiff[]; -extern const u32 gMonPalette_Maschiff[]; -extern const u32 gMonBackPic_Maschiff[]; -extern const u32 gMonShinyPalette_Maschiff[]; -extern const u8 gMonIcon_Maschiff[]; -extern const u8 gMonFootprint_Maschiff[]; -extern const u32 gMonFrontPic_Mabosstiff[]; -extern const u32 gMonPalette_Mabosstiff[]; -extern const u32 gMonBackPic_Mabosstiff[]; -extern const u32 gMonShinyPalette_Mabosstiff[]; -extern const u8 gMonIcon_Mabosstiff[]; -extern const u8 gMonFootprint_Mabosstiff[]; -extern const u32 gMonFrontPic_Shroodle[]; -extern const u32 gMonPalette_Shroodle[]; -extern const u32 gMonBackPic_Shroodle[]; -extern const u32 gMonShinyPalette_Shroodle[]; -extern const u8 gMonIcon_Shroodle[]; -extern const u8 gMonFootprint_Shroodle[]; -extern const u32 gMonFrontPic_Grafaiai[]; -extern const u32 gMonPalette_Grafaiai[]; -extern const u32 gMonBackPic_Grafaiai[]; -extern const u32 gMonShinyPalette_Grafaiai[]; -extern const u8 gMonIcon_Grafaiai[]; -extern const u8 gMonFootprint_Grafaiai[]; -extern const u32 gMonFrontPic_Bramblin[]; -extern const u32 gMonPalette_Bramblin[]; -extern const u32 gMonBackPic_Bramblin[]; -extern const u32 gMonShinyPalette_Bramblin[]; -extern const u8 gMonIcon_Bramblin[]; -extern const u8 gMonFootprint_Bramblin[]; -extern const u32 gMonFrontPic_Brambleghast[]; -extern const u32 gMonPalette_Brambleghast[]; -extern const u32 gMonBackPic_Brambleghast[]; -extern const u32 gMonShinyPalette_Brambleghast[]; -extern const u8 gMonIcon_Brambleghast[]; -extern const u8 gMonFootprint_Brambleghast[]; -extern const u32 gMonFrontPic_Toedscool[]; -extern const u32 gMonPalette_Toedscool[]; -extern const u32 gMonBackPic_Toedscool[]; -extern const u32 gMonShinyPalette_Toedscool[]; -extern const u8 gMonIcon_Toedscool[]; -extern const u8 gMonFootprint_Toedscool[]; -extern const u32 gMonFrontPic_Toedscruel[]; -extern const u32 gMonPalette_Toedscruel[]; -extern const u32 gMonBackPic_Toedscruel[]; -extern const u32 gMonShinyPalette_Toedscruel[]; -extern const u8 gMonIcon_Toedscruel[]; -extern const u8 gMonFootprint_Toedscruel[]; -extern const u32 gMonFrontPic_Klawf[]; -extern const u32 gMonPalette_Klawf[]; -extern const u32 gMonBackPic_Klawf[]; -extern const u32 gMonShinyPalette_Klawf[]; -extern const u8 gMonIcon_Klawf[]; -extern const u8 gMonFootprint_Klawf[]; -extern const u32 gMonFrontPic_Capsakid[]; -extern const u32 gMonPalette_Capsakid[]; -extern const u32 gMonBackPic_Capsakid[]; -extern const u32 gMonShinyPalette_Capsakid[]; -extern const u8 gMonIcon_Capsakid[]; -extern const u8 gMonFootprint_Capsakid[]; -extern const u32 gMonFrontPic_Scovillain[]; -extern const u32 gMonPalette_Scovillain[]; -extern const u32 gMonBackPic_Scovillain[]; -extern const u32 gMonShinyPalette_Scovillain[]; -extern const u8 gMonIcon_Scovillain[]; -extern const u8 gMonFootprint_Scovillain[]; -extern const u32 gMonFrontPic_Rellor[]; -extern const u32 gMonPalette_Rellor[]; -extern const u32 gMonBackPic_Rellor[]; -extern const u32 gMonShinyPalette_Rellor[]; -extern const u8 gMonIcon_Rellor[]; -extern const u8 gMonFootprint_Rellor[]; -extern const u32 gMonFrontPic_Rabsca[]; -extern const u32 gMonPalette_Rabsca[]; -extern const u32 gMonBackPic_Rabsca[]; -extern const u32 gMonShinyPalette_Rabsca[]; -extern const u8 gMonIcon_Rabsca[]; -extern const u8 gMonFootprint_Rabsca[]; -extern const u32 gMonFrontPic_Flittle[]; -extern const u32 gMonPalette_Flittle[]; -extern const u32 gMonBackPic_Flittle[]; -extern const u32 gMonShinyPalette_Flittle[]; -extern const u8 gMonIcon_Flittle[]; -extern const u8 gMonFootprint_Flittle[]; -extern const u32 gMonFrontPic_Espathra[]; -extern const u32 gMonPalette_Espathra[]; -extern const u32 gMonBackPic_Espathra[]; -extern const u32 gMonShinyPalette_Espathra[]; -extern const u8 gMonIcon_Espathra[]; -extern const u8 gMonFootprint_Espathra[]; -extern const u32 gMonFrontPic_Tinkatink[]; -extern const u32 gMonPalette_Tinkatink[]; -extern const u32 gMonBackPic_Tinkatink[]; -extern const u32 gMonShinyPalette_Tinkatink[]; -extern const u8 gMonIcon_Tinkatink[]; -extern const u8 gMonFootprint_Tinkatink[]; -extern const u32 gMonFrontPic_Tinkatuff[]; -extern const u32 gMonPalette_Tinkatuff[]; -extern const u32 gMonBackPic_Tinkatuff[]; -extern const u32 gMonShinyPalette_Tinkatuff[]; -extern const u8 gMonIcon_Tinkatuff[]; -extern const u8 gMonFootprint_Tinkatuff[]; -extern const u32 gMonFrontPic_Tinkaton[]; -extern const u32 gMonPalette_Tinkaton[]; -extern const u32 gMonBackPic_Tinkaton[]; -extern const u32 gMonShinyPalette_Tinkaton[]; -extern const u8 gMonIcon_Tinkaton[]; -extern const u8 gMonFootprint_Tinkaton[]; -extern const u32 gMonFrontPic_Wiglett[]; -extern const u32 gMonPalette_Wiglett[]; -extern const u32 gMonBackPic_Wiglett[]; -extern const u32 gMonShinyPalette_Wiglett[]; -extern const u8 gMonIcon_Wiglett[]; -extern const u8 gMonFootprint_Wiglett[]; -extern const u32 gMonFrontPic_Wugtrio[]; -extern const u32 gMonPalette_Wugtrio[]; -extern const u32 gMonBackPic_Wugtrio[]; -extern const u32 gMonShinyPalette_Wugtrio[]; -extern const u8 gMonIcon_Wugtrio[]; -extern const u8 gMonFootprint_Wugtrio[]; -extern const u32 gMonFrontPic_Bombirdier[]; -extern const u32 gMonPalette_Bombirdier[]; -extern const u32 gMonBackPic_Bombirdier[]; -extern const u32 gMonShinyPalette_Bombirdier[]; -extern const u8 gMonIcon_Bombirdier[]; -extern const u8 gMonFootprint_Bombirdier[]; -extern const u32 gMonFrontPic_Finizen[]; -extern const u32 gMonPalette_Finizen[]; -extern const u32 gMonBackPic_Finizen[]; -extern const u32 gMonShinyPalette_Finizen[]; -extern const u8 gMonIcon_Finizen[]; -extern const u8 gMonFootprint_Finizen[]; -extern const u32 gMonFrontPic_PalafinZero[]; -extern const u32 gMonPalette_PalafinZero[]; -extern const u32 gMonBackPic_PalafinZero[]; -extern const u32 gMonShinyPalette_PalafinZero[]; -extern const u8 gMonIcon_PalafinZero[]; -extern const u8 gMonFootprint_PalafinHero[]; -extern const u32 gMonFrontPic_PalafinHero[]; -extern const u32 gMonPalette_PalafinHero[]; -extern const u32 gMonBackPic_PalafinHero[]; -extern const u32 gMonShinyPalette_PalafinHero[]; -extern const u8 gMonIcon_PalafinHero[]; -extern const u8 gMonFootprint_PalafinHero[]; -extern const u32 gMonFrontPic_Varoom[]; -extern const u32 gMonPalette_Varoom[]; -extern const u32 gMonBackPic_Varoom[]; -extern const u32 gMonShinyPalette_Varoom[]; -extern const u8 gMonIcon_Varoom[]; -extern const u8 gMonFootprint_Varoom[]; -extern const u32 gMonFrontPic_Revavroom[]; -extern const u32 gMonPalette_Revavroom[]; -extern const u32 gMonBackPic_Revavroom[]; -extern const u32 gMonShinyPalette_Revavroom[]; -extern const u8 gMonIcon_Revavroom[]; -extern const u8 gMonFootprint_Revavroom[]; -extern const u32 gMonFrontPic_Cyclizar[]; -extern const u32 gMonPalette_Cyclizar[]; -extern const u32 gMonBackPic_Cyclizar[]; -extern const u32 gMonShinyPalette_Cyclizar[]; -extern const u8 gMonIcon_Cyclizar[]; -extern const u8 gMonFootprint_Cyclizar[]; -extern const u32 gMonFrontPic_Orthworm[]; -extern const u32 gMonPalette_Orthworm[]; -extern const u32 gMonBackPic_Orthworm[]; -extern const u32 gMonShinyPalette_Orthworm[]; -extern const u8 gMonIcon_Orthworm[]; -extern const u8 gMonFootprint_Orthworm[]; -extern const u32 gMonFrontPic_Glimmet[]; -extern const u32 gMonPalette_Glimmet[]; -extern const u32 gMonBackPic_Glimmet[]; -extern const u32 gMonShinyPalette_Glimmet[]; -extern const u8 gMonIcon_Glimmet[]; -extern const u8 gMonFootprint_Glimmet[]; -extern const u32 gMonFrontPic_Glimmora[]; -extern const u32 gMonPalette_Glimmora[]; -extern const u32 gMonBackPic_Glimmora[]; -extern const u32 gMonShinyPalette_Glimmora[]; -extern const u8 gMonIcon_Glimmora[]; -extern const u8 gMonFootprint_Glimmora[]; -extern const u32 gMonFrontPic_Greavard[]; -extern const u32 gMonPalette_Greavard[]; -extern const u32 gMonBackPic_Greavard[]; -extern const u32 gMonShinyPalette_Greavard[]; -extern const u8 gMonIcon_Greavard[]; -extern const u8 gMonFootprint_Greavard[]; -extern const u32 gMonFrontPic_Houndstone[]; -extern const u32 gMonPalette_Houndstone[]; -extern const u32 gMonBackPic_Houndstone[]; -extern const u32 gMonShinyPalette_Houndstone[]; -extern const u8 gMonIcon_Houndstone[]; -extern const u8 gMonFootprint_Houndstone[]; -extern const u32 gMonFrontPic_Flamigo[]; -extern const u32 gMonPalette_Flamigo[]; -extern const u32 gMonBackPic_Flamigo[]; -extern const u32 gMonShinyPalette_Flamigo[]; -extern const u8 gMonIcon_Flamigo[]; -extern const u8 gMonFootprint_Flamigo[]; -extern const u32 gMonFrontPic_Cetoddle[]; -extern const u32 gMonPalette_Cetoddle[]; -extern const u32 gMonBackPic_Cetoddle[]; -extern const u32 gMonShinyPalette_Cetoddle[]; -extern const u8 gMonIcon_Cetoddle[]; -extern const u8 gMonFootprint_Cetoddle[]; -extern const u32 gMonFrontPic_Cetitan[]; -extern const u32 gMonPalette_Cetitan[]; -extern const u32 gMonBackPic_Cetitan[]; -extern const u32 gMonShinyPalette_Cetitan[]; -extern const u8 gMonIcon_Cetitan[]; -extern const u8 gMonFootprint_Cetitan[]; -extern const u32 gMonFrontPic_Veluza[]; -extern const u32 gMonPalette_Veluza[]; -extern const u32 gMonBackPic_Veluza[]; -extern const u32 gMonShinyPalette_Veluza[]; -extern const u8 gMonIcon_Veluza[]; -extern const u8 gMonFootprint_Veluza[]; -extern const u32 gMonFrontPic_Dondozo[]; -extern const u32 gMonPalette_Dondozo[]; -extern const u32 gMonBackPic_Dondozo[]; -extern const u32 gMonShinyPalette_Dondozo[]; -extern const u8 gMonIcon_Dondozo[]; -extern const u8 gMonFootprint_Dondozo[]; -extern const u32 gMonFrontPic_TatsugiriCurly[]; -extern const u32 gMonFrontPic_TatsugiriDroopy[]; -extern const u32 gMonFrontPic_TatsugiriStretchy[]; -extern const u32 gMonPalette_TatsugiriCurly[]; -extern const u32 gMonPalette_TatsugiriDroopy[]; -extern const u32 gMonPalette_TatsugiriStretchy[]; -extern const u32 gMonBackPic_TatsugiriCurly[]; -extern const u32 gMonBackPic_TatsugiriDroopy[]; -extern const u32 gMonBackPic_TatsugiriStretchy[]; -extern const u32 gMonShinyPalette_TatsugiriCurly[]; -extern const u32 gMonShinyPalette_TatsugiriDroopy[]; -extern const u32 gMonShinyPalette_TatsugiriStretchy[]; -extern const u8 gMonIcon_TatsugiriCurly[]; -extern const u8 gMonIcon_TatsugiriDroopy[]; -extern const u8 gMonIcon_TatsugiriStretchy[]; -extern const u8 gMonFootprint_Tatsugiri[]; -extern const u32 gMonFrontPic_Annihilape[]; -extern const u32 gMonPalette_Annihilape[]; -extern const u32 gMonBackPic_Annihilape[]; -extern const u32 gMonShinyPalette_Annihilape[]; -extern const u8 gMonIcon_Annihilape[]; -extern const u8 gMonFootprint_Annihilape[]; -extern const u32 gMonFrontPic_Clodsire[]; -extern const u32 gMonPalette_Clodsire[]; -extern const u32 gMonBackPic_Clodsire[]; -extern const u32 gMonShinyPalette_Clodsire[]; -extern const u8 gMonIcon_Clodsire[]; -extern const u8 gMonFootprint_Clodsire[]; -extern const u32 gMonFrontPic_Farigiraf[]; -extern const u32 gMonPalette_Farigiraf[]; -extern const u32 gMonBackPic_Farigiraf[]; -extern const u32 gMonShinyPalette_Farigiraf[]; -extern const u8 gMonIcon_Farigiraf[]; -extern const u8 gMonFootprint_Farigiraf[]; -extern const u32 gMonFrontPic_DudunsparceTwoSegment[]; -extern const u32 gMonPalette_Dudunsparce[]; -extern const u32 gMonBackPic_DudunsparceTwoSegment[]; -extern const u32 gMonShinyPalette_Dudunsparce[]; -extern const u8 gMonIcon_Dudunsparce[]; -extern const u8 gMonFootprint_Dudunsparce[]; -extern const u32 gMonFrontPic_DudunsparceThreeSegment[]; -extern const u32 gMonBackPic_DudunsparceThreeSegment[]; -extern const u32 gMonFrontPic_Kingambit[]; -extern const u32 gMonPalette_Kingambit[]; -extern const u32 gMonBackPic_Kingambit[]; -extern const u32 gMonShinyPalette_Kingambit[]; -extern const u8 gMonIcon_Kingambit[]; -extern const u8 gMonFootprint_Kingambit[]; -extern const u32 gMonFrontPic_GreatTusk[]; -extern const u32 gMonPalette_GreatTusk[]; -extern const u32 gMonBackPic_GreatTusk[]; -extern const u32 gMonShinyPalette_GreatTusk[]; -extern const u8 gMonIcon_GreatTusk[]; -extern const u8 gMonFootprint_GreatTusk[]; -extern const u32 gMonFrontPic_ScreamTail[]; -extern const u32 gMonPalette_ScreamTail[]; -extern const u32 gMonBackPic_ScreamTail[]; -extern const u32 gMonShinyPalette_ScreamTail[]; -extern const u8 gMonIcon_ScreamTail[]; -extern const u8 gMonFootprint_ScreamTail[]; -extern const u32 gMonFrontPic_BruteBonnet[]; -extern const u32 gMonPalette_BruteBonnet[]; -extern const u32 gMonBackPic_BruteBonnet[]; -extern const u32 gMonShinyPalette_BruteBonnet[]; -extern const u8 gMonIcon_BruteBonnet[]; -extern const u8 gMonFootprint_BruteBonnet[]; -extern const u32 gMonFrontPic_FlutterMane[]; -extern const u32 gMonPalette_FlutterMane[]; -extern const u32 gMonBackPic_FlutterMane[]; -extern const u32 gMonShinyPalette_FlutterMane[]; -extern const u8 gMonIcon_FlutterMane[]; -extern const u8 gMonFootprint_FlutterMane[]; -extern const u32 gMonFrontPic_SlitherWing[]; -extern const u32 gMonPalette_SlitherWing[]; -extern const u32 gMonBackPic_SlitherWing[]; -extern const u32 gMonShinyPalette_SlitherWing[]; -extern const u8 gMonIcon_SlitherWing[]; -extern const u8 gMonFootprint_SlitherWing[]; -extern const u32 gMonFrontPic_SandyShocks[]; -extern const u32 gMonPalette_SandyShocks[]; -extern const u32 gMonBackPic_SandyShocks[]; -extern const u32 gMonShinyPalette_SandyShocks[]; -extern const u8 gMonIcon_SandyShocks[]; -extern const u8 gMonFootprint_SandyShocks[]; -extern const u32 gMonFrontPic_IronTreads[]; -extern const u32 gMonPalette_IronTreads[]; -extern const u32 gMonBackPic_IronTreads[]; -extern const u32 gMonShinyPalette_IronTreads[]; -extern const u8 gMonIcon_IronTreads[]; -extern const u8 gMonFootprint_IronTreads[]; -extern const u32 gMonFrontPic_IronBundle[]; -extern const u32 gMonPalette_IronBundle[]; -extern const u32 gMonBackPic_IronBundle[]; -extern const u32 gMonShinyPalette_IronBundle[]; -extern const u8 gMonIcon_IronBundle[]; -extern const u8 gMonFootprint_IronBundle[]; -extern const u32 gMonFrontPic_IronHands[]; -extern const u32 gMonPalette_IronHands[]; -extern const u32 gMonBackPic_IronHands[]; -extern const u32 gMonShinyPalette_IronHands[]; -extern const u8 gMonIcon_IronHands[]; -extern const u8 gMonFootprint_IronHands[]; -extern const u32 gMonFrontPic_IronJugulis[]; -extern const u32 gMonPalette_IronJugulis[]; -extern const u32 gMonBackPic_IronJugulis[]; -extern const u32 gMonShinyPalette_IronJugulis[]; -extern const u8 gMonIcon_IronJugulis[]; -extern const u8 gMonFootprint_IronJugulis[]; -extern const u32 gMonFrontPic_IronMoth[]; -extern const u32 gMonPalette_IronMoth[]; -extern const u32 gMonBackPic_IronMoth[]; -extern const u32 gMonShinyPalette_IronMoth[]; -extern const u8 gMonIcon_IronMoth[]; -extern const u8 gMonFootprint_IronMoth[]; -extern const u32 gMonFrontPic_IronThorns[]; -extern const u32 gMonPalette_IronThorns[]; -extern const u32 gMonBackPic_IronThorns[]; -extern const u32 gMonShinyPalette_IronThorns[]; -extern const u8 gMonIcon_IronThorns[]; -extern const u8 gMonFootprint_IronThorns[]; -extern const u32 gMonFrontPic_Frigibax[]; -extern const u32 gMonPalette_Frigibax[]; -extern const u32 gMonBackPic_Frigibax[]; -extern const u32 gMonShinyPalette_Frigibax[]; -extern const u8 gMonIcon_Frigibax[]; -extern const u8 gMonFootprint_Frigibax[]; -extern const u32 gMonFrontPic_Arctibax[]; -extern const u32 gMonPalette_Arctibax[]; -extern const u32 gMonBackPic_Arctibax[]; -extern const u32 gMonShinyPalette_Arctibax[]; -extern const u8 gMonIcon_Arctibax[]; -extern const u8 gMonFootprint_Arctibax[]; -extern const u32 gMonFrontPic_Baxcalibur[]; -extern const u32 gMonPalette_Baxcalibur[]; -extern const u32 gMonBackPic_Baxcalibur[]; -extern const u32 gMonShinyPalette_Baxcalibur[]; -extern const u8 gMonIcon_Baxcalibur[]; -extern const u8 gMonFootprint_Baxcalibur[]; -extern const u32 gMonFrontPic_GimmighoulChest[]; -extern const u32 gMonPalette_GimmighoulChest[]; -extern const u32 gMonBackPic_GimmighoulChest[]; -extern const u32 gMonShinyPalette_GimmighoulChest[]; -extern const u8 gMonIcon_GimmighoulChest[]; -extern const u8 gMonFootprint_Gimmighoul[]; -extern const u32 gMonFrontPic_GimmighoulRoaming[]; -extern const u32 gMonPalette_GimmighoulRoaming[]; -extern const u32 gMonBackPic_GimmighoulRoaming[]; -extern const u32 gMonShinyPalette_GimmighoulRoaming[]; -extern const u8 gMonIcon_GimmighoulRoaming[]; -extern const u32 gMonFrontPic_Gholdengo[]; -extern const u32 gMonPalette_Gholdengo[]; -extern const u32 gMonBackPic_Gholdengo[]; -extern const u32 gMonShinyPalette_Gholdengo[]; -extern const u8 gMonIcon_Gholdengo[]; -extern const u8 gMonFootprint_Gholdengo[]; -extern const u32 gMonFrontPic_WoChien[]; -extern const u32 gMonPalette_WoChien[]; -extern const u32 gMonBackPic_WoChien[]; -extern const u32 gMonShinyPalette_WoChien[]; -extern const u8 gMonIcon_WoChien[]; -extern const u8 gMonFootprint_WoChien[]; -extern const u32 gMonFrontPic_ChienPao[]; -extern const u32 gMonPalette_ChienPao[]; -extern const u32 gMonBackPic_ChienPao[]; -extern const u32 gMonShinyPalette_ChienPao[]; -extern const u8 gMonIcon_ChienPao[]; -extern const u8 gMonFootprint_ChienPao[]; -extern const u32 gMonFrontPic_TingLu[]; -extern const u32 gMonPalette_TingLu[]; -extern const u32 gMonBackPic_TingLu[]; -extern const u32 gMonShinyPalette_TingLu[]; -extern const u8 gMonIcon_TingLu[]; -extern const u8 gMonFootprint_TingLu[]; -extern const u32 gMonFrontPic_ChiYu[]; -extern const u32 gMonPalette_ChiYu[]; -extern const u32 gMonBackPic_ChiYu[]; -extern const u32 gMonShinyPalette_ChiYu[]; -extern const u8 gMonIcon_ChiYu[]; -extern const u8 gMonFootprint_ChiYu[]; -extern const u32 gMonFrontPic_RoaringMoon[]; -extern const u32 gMonPalette_RoaringMoon[]; -extern const u32 gMonBackPic_RoaringMoon[]; -extern const u32 gMonShinyPalette_RoaringMoon[]; -extern const u8 gMonIcon_RoaringMoon[]; -extern const u8 gMonFootprint_RoaringMoon[]; -extern const u32 gMonFrontPic_IronValiant[]; -extern const u32 gMonPalette_IronValiant[]; -extern const u32 gMonBackPic_IronValiant[]; -extern const u32 gMonShinyPalette_IronValiant[]; -extern const u8 gMonIcon_IronValiant[]; -extern const u8 gMonFootprint_IronValiant[]; -extern const u32 gMonFrontPic_Koraidon[]; -extern const u32 gMonPalette_Koraidon[]; -extern const u32 gMonBackPic_Koraidon[]; -extern const u32 gMonShinyPalette_Koraidon[]; -extern const u8 gMonIcon_Koraidon[]; -extern const u8 gMonFootprint_Koraidon[]; -extern const u32 gMonFrontPic_Miraidon[]; -extern const u32 gMonPalette_Miraidon[]; -extern const u32 gMonBackPic_Miraidon[]; -extern const u32 gMonShinyPalette_Miraidon[]; -extern const u8 gMonIcon_Miraidon[]; -extern const u8 gMonFootprint_Miraidon[]; -extern const u32 gMonFrontPic_WalkingWake[]; -extern const u32 gMonPalette_WalkingWake[]; -extern const u32 gMonBackPic_WalkingWake[]; -extern const u32 gMonShinyPalette_WalkingWake[]; -extern const u8 gMonIcon_WalkingWake[]; -extern const u8 gMonFootprint_WalkingWake[]; -extern const u32 gMonFrontPic_IronLeaves[]; -extern const u32 gMonPalette_IronLeaves[]; -extern const u32 gMonBackPic_IronLeaves[]; -extern const u32 gMonShinyPalette_IronLeaves[]; -extern const u8 gMonIcon_IronLeaves[]; -extern const u8 gMonFootprint_IronLeaves[]; -extern const u32 gMonFrontPic_Dipplin[]; -extern const u32 gMonPalette_Dipplin[]; -extern const u32 gMonBackPic_Dipplin[]; -extern const u32 gMonShinyPalette_Dipplin[]; -extern const u8 gMonIcon_Dipplin[]; -extern const u8 gMonFootprint_Dipplin[]; -extern const u32 gMonFrontPic_Poltchageist[]; -extern const u32 gMonPalette_Poltchageist[]; -extern const u32 gMonBackPic_Poltchageist[]; -extern const u32 gMonShinyPalette_Poltchageist[]; -extern const u8 gMonIcon_Poltchageist[]; -extern const u8 gMonFootprint_Poltchageist[]; -extern const u32 gMonFrontPic_Sinistcha[]; -extern const u32 gMonPalette_Sinistcha[]; -extern const u32 gMonBackPic_Sinistcha[]; -extern const u32 gMonShinyPalette_Sinistcha[]; -extern const u8 gMonIcon_Sinistcha[]; -extern const u8 gMonFootprint_Sinistcha[]; -extern const u32 gMonFrontPic_Okidogi[]; -extern const u32 gMonPalette_Okidogi[]; -extern const u32 gMonBackPic_Okidogi[]; -extern const u32 gMonShinyPalette_Okidogi[]; -extern const u8 gMonIcon_Okidogi[]; -extern const u8 gMonFootprint_Okidogi[]; -extern const u32 gMonFrontPic_Munkidori[]; -extern const u32 gMonPalette_Munkidori[]; -extern const u32 gMonBackPic_Munkidori[]; -extern const u32 gMonShinyPalette_Munkidori[]; -extern const u8 gMonIcon_Munkidori[]; -extern const u8 gMonFootprint_Munkidori[]; -extern const u32 gMonFrontPic_Fezandipiti[]; -extern const u32 gMonPalette_Fezandipiti[]; -extern const u32 gMonBackPic_Fezandipiti[]; -extern const u32 gMonShinyPalette_Fezandipiti[]; -extern const u8 gMonIcon_Fezandipiti[]; -extern const u8 gMonFootprint_Fezandipiti[]; -extern const u32 gMonFrontPic_OgerponTealMask[]; -extern const u32 gMonPalette_OgerponTealMask[]; -extern const u32 gMonBackPic_OgerponTealMask[]; -extern const u32 gMonShinyPalette_OgerponTealMask[]; -extern const u8 gMonIcon_OgerponTealMask[]; -extern const u32 gMonFrontPic_OgerponWellspringMask[]; -extern const u32 gMonPalette_OgerponWellspringMask[]; -extern const u32 gMonBackPic_OgerponWellspringMask[]; -extern const u32 gMonShinyPalette_OgerponWellspringMask[]; -extern const u8 gMonIcon_OgerponWellspringMask[]; -extern const u32 gMonFrontPic_OgerponHearthflameMask[]; -extern const u32 gMonPalette_OgerponHearthflameMask[]; -extern const u32 gMonBackPic_OgerponHearthflameMask[]; -extern const u32 gMonShinyPalette_OgerponHearthflameMask[]; -extern const u8 gMonIcon_OgerponHearthflameMask[]; -extern const u32 gMonFrontPic_OgerponCornerstoneMask[]; -extern const u32 gMonPalette_OgerponCornerstoneMask[]; -extern const u32 gMonBackPic_OgerponCornerstoneMask[]; -extern const u32 gMonShinyPalette_OgerponCornerstoneMask[]; -extern const u8 gMonIcon_OgerponCornerstoneMask[]; -extern const u32 gMonFrontPic_OgerponTealMaskTera[]; -extern const u32 gMonPalette_OgerponTealMaskTera[]; -extern const u32 gMonBackPic_OgerponTealMaskTera[]; -extern const u32 gMonShinyPalette_OgerponTealMaskTera[]; -extern const u32 gMonFrontPic_OgerponWellspringMaskTera[]; -extern const u32 gMonPalette_OgerponWellspringMaskTera[]; -extern const u32 gMonBackPic_OgerponWellspringMaskTera[]; -extern const u32 gMonShinyPalette_OgerponWellspringMaskTera[]; -extern const u32 gMonFrontPic_OgerponHearthflameMaskTera[]; -extern const u32 gMonPalette_OgerponHearthflameMaskTera[]; -extern const u32 gMonBackPic_OgerponHearthflameMaskTera[]; -extern const u32 gMonShinyPalette_OgerponHearthflameMaskTera[]; -extern const u32 gMonFrontPic_OgerponCornerstoneMaskTera[]; -extern const u32 gMonPalette_OgerponCornerstoneMaskTera[]; -extern const u32 gMonBackPic_OgerponCornerstoneMaskTera[]; -extern const u32 gMonShinyPalette_OgerponCornerstoneMaskTera[]; -extern const u8 gMonFootprint_Ogerpon[]; -#endif - -// trainer sprites -extern const u32 gTrainerFrontPic_Hiker[]; -extern const u32 gTrainerFrontPic_AquaGruntM[]; -extern const u32 gTrainerFrontPic_PokemonBreederF[]; -extern const u32 gTrainerFrontPic_CoolTrainerM[]; -extern const u32 gTrainerFrontPic_BirdKeeper[]; -extern const u32 gTrainerFrontPic_Collector[]; -extern const u32 gTrainerFrontPic_AquaGruntF[]; -extern const u32 gTrainerFrontPic_SwimmerM[]; -extern const u32 gTrainerFrontPic_MagmaGruntM[]; -extern const u32 gTrainerFrontPic_ExpertM[]; -extern const u32 gTrainerFrontPic_AquaAdminM[]; -extern const u32 gTrainerFrontPic_BlackBelt[]; -extern const u32 gTrainerFrontPic_AquaAdminF[]; -extern const u32 gTrainerFrontPic_AquaLeaderArchie[]; -extern const u32 gTrainerFrontPic_HexManiac[]; -extern const u32 gTrainerFrontPic_AromaLady[]; -extern const u32 gTrainerFrontPic_RuinManiac[]; -extern const u32 gTrainerFrontPic_Interviewer[]; -extern const u32 gTrainerFrontPic_TuberF[]; -extern const u32 gTrainerFrontPic_TuberM[]; -extern const u32 gTrainerFrontPic_CoolTrainerF[]; -extern const u32 gTrainerFrontPic_Lady[]; -extern const u32 gTrainerFrontPic_Beauty[]; -extern const u32 gTrainerFrontPic_RichBoy[]; -extern const u32 gTrainerFrontPic_ExpertF[]; -extern const u32 gTrainerFrontPic_Pokemaniac[]; -extern const u32 gTrainerFrontPic_MagmaGruntF[]; -extern const u32 gTrainerFrontPic_Guitarist[]; -extern const u32 gTrainerFrontPic_Kindler[]; -extern const u32 gTrainerFrontPic_Camper[]; -extern const u32 gTrainerFrontPic_Picnicker[]; -extern const u32 gTrainerFrontPic_BugManiac[]; -extern const u32 gTrainerFrontPic_PokemonBreederM[]; -extern const u32 gTrainerFrontPic_PsychicM[]; -extern const u32 gTrainerFrontPic_PsychicF[]; -extern const u32 gTrainerFrontPic_Gentleman[]; -extern const u32 gTrainerFrontPic_EliteFourSidney[]; -extern const u32 gTrainerFrontPic_EliteFourPhoebe[]; -extern const u32 gTrainerFrontPic_EliteFourGlacia[]; -extern const u32 gTrainerFrontPic_EliteFourDrake[]; -extern const u32 gTrainerFrontPic_LeaderRoxanne[]; -extern const u32 gTrainerFrontPic_LeaderBrawly[]; -extern const u32 gTrainerFrontPic_LeaderWattson[]; -extern const u32 gTrainerFrontPic_LeaderFlannery[]; -extern const u32 gTrainerFrontPic_LeaderNorman[]; -extern const u32 gTrainerFrontPic_LeaderWinona[]; -extern const u32 gTrainerFrontPic_LeaderTateAndLiza[]; -extern const u32 gTrainerFrontPic_LeaderJuan[]; -extern const u32 gTrainerFrontPic_SchoolKidM[]; -extern const u32 gTrainerFrontPic_SchoolKidF[]; -extern const u32 gTrainerFrontPic_SrAndJr[]; -extern const u32 gTrainerFrontPic_PokefanM[]; -extern const u32 gTrainerFrontPic_PokefanF[]; -extern const u32 gTrainerFrontPic_Youngster[]; -extern const u32 gTrainerFrontPic_ChampionWallace[]; -extern const u32 gTrainerFrontPic_Fisherman[]; -extern const u32 gTrainerFrontPic_CyclingTriathleteM[]; -extern const u32 gTrainerFrontPic_CyclingTriathleteF[]; -extern const u32 gTrainerFrontPic_RunningTriathleteM[]; -extern const u32 gTrainerFrontPic_RunningTriathleteF[]; -extern const u32 gTrainerFrontPic_SwimmingTriathleteM[]; -extern const u32 gTrainerFrontPic_SwimmingTriathleteF[]; -extern const u32 gTrainerFrontPic_DragonTamer[]; -extern const u32 gTrainerFrontPic_NinjaBoy[]; -extern const u32 gTrainerFrontPic_BattleGirl[]; -extern const u32 gTrainerFrontPic_ParasolLady[]; -extern const u32 gTrainerFrontPic_SwimmerF[]; -extern const u32 gTrainerFrontPic_Twins[]; -extern const u32 gTrainerFrontPic_Sailor[]; -extern const u32 gTrainerFrontPic_MagmaAdmin[]; -extern const u32 gTrainerFrontPic_Wally[]; -extern const u32 gTrainerFrontPic_Brendan[]; -extern const u32 gTrainerFrontPic_May[]; -extern const u32 gTrainerFrontPic_BugCatcher[]; -extern const u32 gTrainerFrontPic_PokemonRangerM[]; -extern const u32 gTrainerFrontPic_PokemonRangerF[]; -extern const u32 gTrainerFrontPic_MagmaLeaderMaxie[]; -extern const u32 gTrainerFrontPic_Lass[]; -extern const u32 gTrainerFrontPic_YoungCouple[]; -extern const u32 gTrainerFrontPic_OldCouple[]; -extern const u32 gTrainerFrontPic_SisAndBro[]; -extern const u32 gTrainerFrontPic_Steven[]; -extern const u32 gTrainerFrontPic_SalonMaidenAnabel[]; -extern const u32 gTrainerFrontPic_DomeAceTucker[]; -extern const u32 gTrainerFrontPic_PalaceMavenSpenser[]; -extern const u32 gTrainerFrontPic_ArenaTycoonGreta[]; -extern const u32 gTrainerFrontPic_FactoryHeadNoland[]; -extern const u32 gTrainerFrontPic_PikeQueenLucy[]; -extern const u32 gTrainerFrontPic_PyramidKingBrandon[]; -extern const u32 gTrainerFrontPic_Red[]; -extern const u32 gTrainerFrontPic_Leaf[]; -extern const u32 gTrainerFrontPic_RubySapphireBrendan[]; -extern const u32 gTrainerFrontPic_RubySapphireMay[]; - -extern const u32 gTrainerPalette_Hiker[]; -extern const u32 gTrainerPalette_AquaGruntM[]; -extern const u32 gTrainerPalette_PokemonBreederF[]; -extern const u32 gTrainerPalette_CoolTrainerM[]; -extern const u32 gTrainerPalette_BirdKeeper[]; -extern const u32 gTrainerPalette_Collector[]; -extern const u32 gTrainerPalette_AquaGruntF[]; -extern const u32 gTrainerPalette_SwimmerM[]; -extern const u32 gTrainerPalette_MagmaGruntM[]; -extern const u32 gTrainerPalette_ExpertM[]; -extern const u32 gTrainerPalette_AquaAdminM[]; -extern const u32 gTrainerPalette_BlackBelt[]; -extern const u32 gTrainerPalette_AquaAdminF[]; -extern const u32 gTrainerPalette_AquaLeaderArchie[]; -extern const u32 gTrainerPalette_HexManiac[]; -extern const u32 gTrainerPalette_AromaLady[]; -extern const u32 gTrainerPalette_RuinManiac[]; -extern const u32 gTrainerPalette_Interviewer[]; -extern const u32 gTrainerPalette_TuberF[]; -extern const u32 gTrainerPalette_TuberM[]; -extern const u32 gTrainerPalette_CoolTrainerF[]; -extern const u32 gTrainerPalette_Lady[]; -extern const u32 gTrainerPalette_Beauty[]; -extern const u32 gTrainerPalette_RichBoy[]; -extern const u32 gTrainerPalette_ExpertF[]; -extern const u32 gTrainerPalette_Pokemaniac[]; -extern const u32 gTrainerPalette_MagmaGruntF[]; -extern const u32 gTrainerPalette_Guitarist[]; -extern const u32 gTrainerPalette_Kindler[]; -extern const u32 gTrainerPalette_Camper[]; -extern const u32 gTrainerPalette_Picnicker[]; -extern const u32 gTrainerPalette_BugManiac[]; -extern const u32 gTrainerPalette_PokemonBreederM[]; -extern const u32 gTrainerPalette_PsychicM[]; -extern const u32 gTrainerPalette_PsychicF[]; -extern const u32 gTrainerPalette_Gentleman[]; -extern const u32 gTrainerPalette_EliteFourSidney[]; -extern const u32 gTrainerPalette_EliteFourPhoebe[]; -extern const u32 gTrainerPalette_EliteFourGlacia[]; -extern const u32 gTrainerPalette_EliteFourDrake[]; -extern const u32 gTrainerPalette_LeaderRoxanne[]; -extern const u32 gTrainerPalette_LeaderBrawly[]; -extern const u32 gTrainerPalette_LeaderWattson[]; -extern const u32 gTrainerPalette_LeaderFlannery[]; -extern const u32 gTrainerPalette_LeaderNorman[]; -extern const u32 gTrainerPalette_LeaderWinona[]; -extern const u32 gTrainerPalette_LeaderTateAndLiza[]; -extern const u32 gTrainerPalette_LeaderJuan[]; -extern const u32 gTrainerPalette_SchoolKidM[]; -extern const u32 gTrainerPalette_SchoolKidF[]; -extern const u32 gTrainerPalette_SrAndJr[]; -extern const u32 gTrainerPalette_PokefanM[]; -extern const u32 gTrainerPalette_PokefanF[]; -extern const u32 gTrainerPalette_Youngster[]; -extern const u32 gTrainerPalette_ChampionWallace[]; -extern const u32 gTrainerPalette_Fisherman[]; -extern const u32 gTrainerPalette_CyclingTriathleteM[]; -extern const u32 gTrainerPalette_CyclingTriathleteF[]; -extern const u32 gTrainerPalette_RunningTriathleteM[]; -extern const u32 gTrainerPalette_RunningTriathleteF[]; -extern const u32 gTrainerPalette_SwimmingTriathleteM[]; -extern const u32 gTrainerPalette_SwimmingTriathleteF[]; -extern const u32 gTrainerPalette_DragonTamer[]; -extern const u32 gTrainerPalette_NinjaBoy[]; -extern const u32 gTrainerPalette_BattleGirl[]; -extern const u32 gTrainerPalette_ParasolLady[]; -extern const u32 gTrainerPalette_SwimmerF[]; -extern const u32 gTrainerPalette_Twins[]; -extern const u32 gTrainerPalette_Sailor[]; -extern const u32 gTrainerPalette_MagmaAdmin[]; -extern const u32 gTrainerPalette_Wally[]; -extern const u32 gTrainerPalette_Brendan[]; -extern const u32 gTrainerPalette_May[]; -extern const u32 gTrainerPalette_BugCatcher[]; -extern const u32 gTrainerPalette_PokemonRangerM[]; -extern const u32 gTrainerPalette_PokemonRangerF[]; -extern const u32 gTrainerPalette_MagmaLeaderMaxie[]; -extern const u32 gTrainerPalette_Lass[]; -extern const u32 gTrainerPalette_YoungCouple[]; -extern const u32 gTrainerPalette_OldCouple[]; -extern const u32 gTrainerPalette_SisAndBro[]; -extern const u32 gTrainerPalette_Steven[]; -extern const u32 gTrainerPalette_SalonMaidenAnabel[]; -extern const u32 gTrainerPalette_DomeAceTucker[]; -extern const u32 gTrainerPalette_PalaceMavenSpenser[]; -extern const u32 gTrainerPalette_ArenaTycoonGreta[]; -extern const u32 gTrainerPalette_FactoryHeadNoland[]; -extern const u32 gTrainerPalette_PikeQueenLucy[]; -extern const u32 gTrainerPalette_PyramidKingBrandon[]; -extern const u32 gTrainerPalette_Red[]; -extern const u32 gTrainerPalette_Leaf[]; -extern const u32 gTrainerPalette_RubySapphireBrendan[]; -extern const u32 gTrainerPalette_RubySapphireMay[]; - -extern const u8 gTrainerBackPic_Brendan[]; -extern const u8 gTrainerBackPic_May[]; -extern const u8 gTrainerBackPic_Red[]; -extern const u8 gTrainerBackPic_Leaf[]; -extern const u8 gTrainerBackPic_RubySapphireBrendan[]; -extern const u8 gTrainerBackPic_RubySapphireMay[]; -extern const u8 gTrainerBackPic_Wally[]; -extern const u8 gTrainerBackPic_Steven[]; - -extern const u32 gTrainerBackPicPalette_Red[]; -extern const u32 gTrainerBackPicPalette_Leaf[]; - // pokeblock extern const u32 gMenuPokeblock_Gfx[]; extern const u32 gMenuPokeblock_Pal[]; @@ -9985,8 +1601,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[]; @@ -11510,6 +3126,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 b0ac8afb6b..0628ab932a 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_use.h b/include/item_use.h index a4dd92663d..90d671bd42 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -31,6 +31,7 @@ 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); @@ -40,6 +41,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 304eae1266..c50abc276a 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -68,6 +68,7 @@ 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 96cd02affb..39b45fc5ff 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,24 +18,10 @@ 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); +u8 DisplayCaughtMonDexPage(u16 species, u32 otId, u32 personality); s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 CreateMonSpriteFromNationalDexNumber(u16, s16, s16, u16); bool16 HasAllHoennMons(void); diff --git a/include/pokemon.h b/include/pokemon.h index 40d9a87820..2f7c917b1f 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -303,7 +303,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; @@ -313,7 +320,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; @@ -321,6 +328,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; @@ -330,25 +338,91 @@ 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 *frontPic; + /* 0x4C */ const u32 *frontPicFemale; + /* 0x50 */ const u32 *backPic; + /* 0x54 */ const u32 *backPicFemale; + /* 0x58 */ const u32 *palette; + /* 0x5C */ const u32 *paletteFemale; + /* 0x60 */ const u32 *shinyPalette; + /* 0x64 */ const u32 *shinyPaletteFemale; + /* 0x68 */ const u8 *iconSprite; + /* 0x6C */ const u8 *iconSpriteFemale; + /* 0x70 */ const u8 *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 isPrimalReversion: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 *levelUpLearnset; + /* 0x84 */ const u16 *teachableLearnset; + /* 0x88 */ const struct Evolution *evolutions; + /* 0x84 */ const u16 *formSpeciesIdTable; + /* 0x84 */ const struct FormChange *formChangeTable; }; struct BattleMove { u16 effect; u8 power; - u8 type; - u8 accuracy; + u8 type:5; + u8 category:3; + + u16 accuracy:7; + u16 recoil:7; + u16 criticalHitStage:2; u8 pp; u8 secondaryEffectChance; + u16 target; s8 priority; - u8 split; - u16 argument; - u8 zMoveEffect; + union { + u8 effect; + u8 powerOverride; + } zMove; + // Flags u32 makesContact:1; u32 ignoresProtect:1; @@ -356,7 +430,7 @@ struct BattleMove u32 snatchAffected:1; u32 mirrorMoveBanned:1; u32 ignoresKingsRock:1; - u32 highCritRatio:1; + u32 alwaysCriticalHit:1; u32 twoTurnMove:1; u32 punchingMove:1; u32 sheerForceBoost:1; @@ -393,8 +467,11 @@ struct BattleMove u32 instructBanned:1; u32 encoreBanned:1; u32 parentalBondBanned:1; + u32 skyBattleBanned:1; u32 numAdditionalEffects:2; // limited to 3 - don't want to get too crazy + u16 argument; + // primary/secondary effects const struct AdditionalEffect *additionalEffects; }; @@ -432,13 +509,6 @@ struct LevelUpMove u16 level; }; -struct Evolution -{ - u16 method; - u16 param; - u16 targetSpecies; -}; - struct FormChange { u16 method; @@ -448,6 +518,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) (( \ @@ -471,8 +554,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[]; @@ -480,8 +561,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); @@ -548,7 +627,7 @@ void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg); void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg); void CopyMon(void *dest, void *src, size_t size); u8 GiveMonToPlayer(struct Pokemon *mon); -u8 SendMonToPC(struct Pokemon* mon); +u8 CopyMonToPC(struct Pokemon *mon); u8 CalculatePlayerPartyCount(void); u8 CalculateEnemyPartyCount(void); u8 GetMonsStateToDoubles(void); @@ -561,6 +640,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); @@ -575,7 +663,6 @@ u8 GetNature(struct Pokemon *mon); u8 GetNatureFromPersonality(u32 personality); u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem, struct Pokemon *tradePartner); bool8 IsMonPastEvolutionLevel(struct Pokemon *mon); -u16 HoennPokedexNumToSpecies(u16 hoennNum); u16 NationalPokedexNumToSpecies(u16 nationalNum); u16 NationalToHoennOrder(u16 nationalNum); u16 SpeciesToNationalPokedexNum(u16 species); @@ -609,8 +696,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); @@ -654,5 +739,7 @@ void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality); u8 CalculatePartyCount(struct Pokemon *party); u16 SanitizeSpeciesId(u16 species); bool32 IsSpeciesEnabled(u16 species); +u16 GetCryIdBySpecies(u16 species); +u16 GetSpeciesPreEvolution(u16 species); #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 08e905fef6..9e51e1bc4d 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 eb5f9a992d..5ab1b4cb8f 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 0f60dd7ad5..6e2615ee9e 100644 --- a/include/random.h +++ b/include/random.h @@ -1,8 +1,74 @@ #ifndef GUARD_RANDOM_H #define GUARD_RANDOM_H -extern u32 gRngValue; -extern u32 gRng2Value; +// The number 1103515245 comes from the example implementation of rand and srand +// in the ISO C standard. +#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691) +#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) + +/* Some functions have been added to support HQ_RANDOM. +* +* If using HQ_RANDOM, you cannot call Random() in interrupt handlers safely. +* AdvanceRandom() is provided to handle burning numbers in the VBlank handler +* if you choose to do that, and can be used regardless of HQ_RANDOM setting. +* If you need to use random numbers in the VBlank handler, a local state +* should be used instead. +* +* LocalRandom(*val) allows you to have local random states that are the same +* type as the global states regardless of HQ_RANDOM setting, which is useful +* if you want to be able to set them from or assign them to gRngValue. +* +* Random2_32() was added to HQ_RANDOM because the output of the generator is +* always 32 bits and Random()/Random2() are just wrappers in that mode. It is +* also available in non-HQ mode for consistency. +*/ + +#if HQ_RANDOM == TRUE +struct Sfc32State { + u32 a; + u32 b; + u32 c; + u32 ctr; +}; + +typedef struct Sfc32State rng_value_t; + +#define RNG_VALUE_EMPTY {} + +// Calling this function directly is discouraged. +// Use LocalRandom() instead. +static inline u32 _SFC32_Next(struct Sfc32State *state) +{ + const u32 result = state->a + state->b + state->ctr++; + state->a = state->b ^ (state->b >> 9); + state->b = state->c * 9; + state->c = result + ((state->c << 21) | (state->c >> 11)); + return result; +} + +static inline u16 LocalRandom(rng_value_t *val) +{ + return _SFC32_Next(val) >> 16; +} + +u32 Random32(void); +u32 Random2_32(void); + +static inline u16 Random(void) +{ + return Random32() >> 16; +} + +static inline u16 Random2(void) +{ + return Random2_32() >> 16; +} + +void AdvanceRandom(void); +#else +typedef u32 rng_value_t; + +#define RNG_VALUE_EMPTY 0 //Returns a 16-bit pseudorandom number u16 Random(void); @@ -10,11 +76,23 @@ u16 Random2(void); //Returns a 32-bit pseudorandom number #define Random32() (Random() | (Random() << 16)) +#define Random2_32() (Random2() | (Random2() << 16)) -// The number 1103515245 comes from the example implementation of rand and srand -// in the ISO C standard. -#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691) -#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) +static inline u16 LocalRandom(rng_value_t *val) +{ + *val = ISO_RANDOMIZE1(*val); + return *val >> 16; +} + +static inline void AdvanceRandom(void) +{ + Random(); +} + +#endif + +extern rng_value_t gRngValue; +extern rng_value_t gRng2Value; //Sets the initial seed value of the pseudorandom number generator void SeedRng(u16 seed); @@ -97,6 +175,8 @@ enum RandomTag RNG_STENCH, RNG_TRI_ATTACK, RNG_QUICK_DRAW, + RNG_QUICK_CLAW, + RNG_TRACE, }; #define RandomWeighted(tag, ...) \ diff --git a/include/recorded_battle.h b/include/recorded_battle.h index fcbe9495fd..c64a665b74 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -2,6 +2,7 @@ #define GUARD_RECORDED_BATTLE_H #include "constants/battle.h" +#include "random.h" #define BATTLER_RECORD_SIZE 664 @@ -13,7 +14,7 @@ struct RecordedBattleSave u8 playersGender[MAX_BATTLERS_COUNT]; u32 playersTrainerId[MAX_BATTLERS_COUNT]; u8 playersLanguage[MAX_BATTLERS_COUNT]; - u32 rngSeed; + rng_value_t rngSeed; u32 battleFlags; u8 playersBattlers[MAX_BATTLERS_COUNT]; u16 opponentA; @@ -49,8 +50,8 @@ enum RECORDED_ITEM_MOVE, }; -extern u32 gRecordedBattleRngSeed; -extern u32 gBattlePalaceMoveSelectionRngValue; +extern rng_value_t gRecordedBattleRngSeed; +extern rng_value_t gBattlePalaceMoveSelectionRngValue; extern u8 gRecordedBattleMultiplayerId; #define B_RECORD_MODE_RECORDING 1 diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h index 174fb4157f..07958bf6c0 100644 --- a/include/reshow_battle_screen.h +++ b/include/reshow_battle_screen.h @@ -3,5 +3,6 @@ void ReshowBattleScreenDummy(void); void ReshowBattleScreenAfterMenu(void); +void CreateBattlerSprite(u32 battler); #endif // GUARD_RESHOW_BATTLE_SCREEN_H diff --git a/include/rtc.h b/include/rtc.h index d94beafcdc..9882d702b6 100644 --- a/include/rtc.h +++ b/include/rtc.h @@ -17,21 +17,75 @@ #define RTC_ERR_FLAG_MASK 0x0FF0 -#define MORNING_EVO_HOUR_BEGIN 6 -#define MORNING_EVO_HOUR_END 10 +//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_EVO_HOUR_BEGIN 10 -#define DAY_EVO_HOUR_END 19 + #define DAY_HOUR_BEGIN 12 + #define DAY_HOUR_END HOURS_PER_DAY -#define DUSK_EVO_HOUR_BEGIN 19 -#define DUSK_EVO_HOUR_END 20 + #define EVENING_HOUR_BEGIN 0 + #define EVENING_HOUR_END 0 -#define NIGHT_EVO_HOUR_BEGIN 20 -#define NIGHT_EVO_HOUR_END 6 + #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_DUSK 2 +#define TIME_EVENING 2 #define TIME_NIGHT 3 extern struct Time gLocalTime; diff --git a/include/script_menu.h b/include/script_menu.h index 734c717cff..41b45000eb 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 cd56d71e36..9184b4663a 100644 --- a/include/strings.h +++ b/include/strings.h @@ -944,6 +944,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[]; diff --git a/include/test/battle.h b/include/test/battle.h index 616c81964a..ee41032102 100644 --- a/include/test/battle.h +++ b/include/test/battle.h @@ -129,7 +129,7 @@ * PARAMETRIZE { raiseAttack = FALSE; } * PARAMETRIZE { raiseAttack = TRUE; } * GIVEN { - * ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + * ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); * PLAYER(SPECIES_WOBBUFFET); * OPPONENT(SPECIES_WOBBUFFET); * } WHEN { @@ -176,7 +176,7 @@ * Pokémon we can observe the damage of a physical attack with and * without the burn. To document that this test assumes the attack is * physical we can use: - * ASSUME(gBattleMoves[MOVE_WHATEVER].split == SPLIT_PHYSICAL); + * ASSUME(gBattleMoves[MOVE_WHATEVER].category == BATTLE_CATEGORY_PHYSICAL); * * ASSUMPTIONS * Should be placed immediately after any #includes and contain any @@ -280,6 +280,13 @@ * GIVEN { * RNGSeed(0xC0DEIDEA); * + * FLAG_SET(flagId) + * Sets the specified flag. Can currently only set one flag at a time. + * Cleared between perameters and at the end of the test. + * Example: + * GIVEN { + * FLAG_SET(FLAG_SYS_EXAMPLE_FLAG); + * * PLAYER(species) and OPPONENT(species) * Adds the species to the player's or opponent's party respectively. * The Pokémon can be further customized with the following functions: @@ -489,6 +496,7 @@ #include "constants/battle_ai.h" #include "constants/battle_anim.h" #include "constants/battle_move_effects.h" +#include "constants/flags.h" #include "constants/hold_effects.h" #include "constants/items.h" #include "constants/moves.h" @@ -681,6 +689,7 @@ struct BattleTestData struct ExpectedAiScore expectedAiScores[MAX_BATTLERS_COUNT][MAX_TURNS][MAX_AI_SCORE_COMPARISION_PER_TURN]; // Max 4 comparisions per turn struct AILogLine aiLogLines[MAX_BATTLERS_COUNT][MAX_MON_MOVES][MAX_AI_LOG_LINES]; u8 aiLogPrintedForMove[MAX_BATTLERS_COUNT]; // Marks ai score log as printed for move, so the same log isn't displayed multiple times. + u16 flagId; }; struct BattleTestRunnerState @@ -818,6 +827,8 @@ struct moveWithPP { #define AI_FLAGS(flags) AIFlags_(__LINE__, flags) #define AI_LOG AILogScores(__LINE__) +#define FLAG_SET(flagId) SetFlagForTest(__LINE__, flagId) + #define PLAYER(species) for (OpenPokemon(__LINE__, B_SIDE_PLAYER, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) #define OPPONENT(species) for (OpenPokemon(__LINE__, B_SIDE_OPPONENT, species); gBattleTestRunnerState->data.currentMon; ClosePokemon(__LINE__)) @@ -839,10 +850,12 @@ struct moveWithPP { #define Status1(status1) Status1_(__LINE__, status1) #define OTName(otName) do {static const u8 otName_[] = _(otName); OTName_(__LINE__, otName_);} while (0) +void SetFlagForTest(u32 sourceLine, u16 flagId); +void ClearFlagAfterTest(void); void OpenPokemon(u32 sourceLine, u32 side, u32 species); void ClosePokemon(u32 sourceLine); -void RNGSeed_(u32 sourceLine, u32 seed); +void RNGSeed_(u32 sourceLine, rng_value_t seed); void AIFlags_(u32 sourceLine, u32 flags); void AILogScores(u32 sourceLine); void Gender_(u32 sourceLine, u32 gender); @@ -1063,7 +1076,7 @@ void ValidateFinally(u32 sourceLine); { \ s32 _a = (a), _m = (m), _b = (b); \ s32 _am = Q_4_12_TO_INT(_a * _m); \ - s32 _t = Q_4_12_TO_INT(abs(_m) + Q_4_12_ROUND); \ + s32 _t = max(Q_4_12_TO_INT(abs(_m) + Q_4_12_ROUND), 1); \ if (abs(_am-_b) > _t) \ Test_ExitWithResult(TEST_RESULT_FAIL, "%s:%d: EXPECT_MUL_EQ(%d, %q, %d) failed: %d not in [%d..%d]", gTestRunnerState.test->filename, __LINE__, _a, _m, _b, _am, _b-_t, _b+_t); \ } while (0) diff --git a/include/test_runner.h b/include/test_runner.h index e0df88b0a6..248a0463e5 100644 --- a/include/test_runner.h +++ b/include/test_runner.h @@ -19,6 +19,7 @@ void TestRunner_Battle_CheckSwitch(u32 battlerId, u32 partyIndex); void TestRunner_Battle_CheckAiMoveScores(u32 battlerId); void TestRunner_Battle_AISetScore(const char *file, u32 line, u32 battlerId, u32 moveIndex, s32 score); void TestRunner_Battle_AIAdjustScore(const char *file, u32 line, u32 battlerId, u32 moveIndex, s32 score); +void TestRunner_Battle_InvalidNoHPMon(u32 battlerId, u32 partyIndex); void TestRunner_Battle_CheckBattleRecordActionType(u32 battlerId, u32 recordIndex, u32 actionType); @@ -38,6 +39,7 @@ u32 TestRunner_Battle_GetForcedAbility(u32 side, u32 partyIndex); #define TestRunner_Battle_CheckAiMoveScores(...) (void)0 #define TestRunner_Battle_AISetScore(...) (void)0 #define TestRunner_Battle_AIAdjustScore(...) (void)0 +#define TestRunner_Battle_InvalidNoHPMon(...) (void)0 #define TestRunner_Battle_CheckBattleRecordActionType(...) (void)0 diff --git a/include/trainer_see.h b/include/trainer_see.h index ab808c720c..5518a91761 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 0000000000..723e73bf37 --- /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/ld_script.txt b/ld_script.ld similarity index 99% rename from ld_script.txt rename to ld_script.ld index 6b7d115b22..642480d35d 100644 --- a/ld_script.txt +++ b/ld_script.ld @@ -4,16 +4,18 @@ gNumMusicPlayers = 4; gMaxLines = 0; gInitialMainCB2 = CB2_InitCopyrightScreenAfterBootup; -SECTIONS { - . = 0x2000000; +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} - ewram (NOLOAD) : +SECTIONS { + + ewram 0x2000000 (NOLOAD) : ALIGN(4) { - gHeap = .; - - . = 0x1C000; - INCLUDE "sym_ewram.ld" src/*.o(ewram_data); gflib/*.o(ewram_data); @@ -21,12 +23,9 @@ SECTIONS { *libc.a:impure.o(.data); *libc.a:locale.o(.data); *libc.a:mallocr.o(.data); - . = 0x40000; - } + } > EWRAM - . = 0x3000000; - - iwram (NOLOAD) : + iwram 0x3000000 (NOLOAD) : ALIGN(4) { /* .bss starts at 0x3000000 */ @@ -41,10 +40,9 @@ SECTIONS { /* COMMON starts at 0x30022A8 */ INCLUDE "sym_common.ld" *libc.a:sbrkr.o(COMMON); - end = .; - . = 0x8000; - } + } > IWRAM + /* BEGIN ROM DATA */ . = 0x8000000; .text : @@ -345,7 +343,7 @@ SECTIONS { src/international_string_util.o(.text); src/pokemon_debug.o(.text); src/expansion_intro.o(.text); - } =0 + } > ROM =0 script_data : ALIGN(4) @@ -357,7 +355,7 @@ SECTIONS { data/battle_scripts_2.o(script_data); data/contest_ai_scripts.o(script_data); data/mystery_event_script_cmd_table.o(script_data); - } =0 + } > ROM =0 lib_text : ALIGN(4) @@ -441,7 +439,7 @@ SECTIONS { *libc.a:libcfunc.o(.text); *libc.a:lseekr.o(.text); *libc.a:readr.o(.text); - } =0 + } > ROM =0 .rodata : ALIGN(4) @@ -712,7 +710,7 @@ SECTIONS { data/sound_data.o(.rodata); src/pokemon_debug.o(.rodata); src/expansion_intro.o(.rodata); - } =0 + } > ROM =0 song_data : ALIGN(4) @@ -1247,7 +1245,7 @@ SECTIONS { sound/songs/midi/ph_nurse_blend.o(.rodata); sound/songs/midi/ph_nurse_held.o(.rodata); sound/songs/midi/ph_nurse_solo.o(.rodata); - } =0 + } > ROM =0 lib_rodata : SUBALIGN(4) @@ -1300,7 +1298,7 @@ SECTIONS { *libc.a:lseekr.o(.rodata); *libc.a:readr.o(.rodata); src/libisagbprn.o(.rodata); - } =0 + } > ROM =0 multiboot_data : ALIGN(4) @@ -1308,13 +1306,13 @@ SECTIONS { data/multiboot_ereader.o(.rodata); data/multiboot_berry_glitch_fix.o(.rodata); data/multiboot_pokemon_colosseum.o(.rodata); - } =0 + } > ROM =0 - gfx_data : + gfx_data : ALIGN(4) { src/graphics.o(.rodata); - } =0 + } > ROM =0 extra : ALIGN(4) @@ -1324,7 +1322,7 @@ SECTIONS { src/*.o(.rodata); gflib/*.o(.rodata); data/*.o(.rodata); - } = 0 + } > ROM = 0 __rom_end = .; diff --git a/ld_script_modern.txt b/ld_script_modern.ld similarity index 89% rename from ld_script_modern.txt rename to ld_script_modern.ld index 7a14cfa52c..f3bf7b6798 100644 --- a/ld_script_modern.txt +++ b/ld_script_modern.ld @@ -4,46 +4,40 @@ gNumMusicPlayers = 4; gMaxLines = 0; gInitialMainCB2 = CB2_InitCopyrightScreenAfterBootup; -SECTIONS { - . = 0x2000000; +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} - ewram (NOLOAD) : +SECTIONS { + ewram 0x2000000 (NOLOAD) : ALIGN(4) { - gHeap = .; - - . = 0x1C000; - src/*.o(ewram_data); gflib/*.o(ewram_data); - . = 0x40000; - } + } > EWRAM - . = 0x3000000; - - iwram (NOLOAD) : + iwram 0x3000000 (NOLOAD) : ALIGN(4) { - /* .bss starts at 0x3000000 */ src/*.o(.bss); gflib/*.o(.bss); data/*.o(.bss); *libc.a:*.o(.bss*); *libnosys.a:*.o(.bss*); - /* .bss.code starts at 0x3001AA8 */ src/m4a.o(.bss.code); - /* COMMON starts at 0x30022A8 */ src/*.o(COMMON); gflib/*.o(COMMON); *libc.a:*.o(COMMON); *libnosys.a:*.o(COMMON); - end = .; - . = 0x8000; - } + } > IWRAM + /* BEGIN ROM DATA */ . = 0x8000000; .text : @@ -57,13 +51,13 @@ SECTIONS { gflib/*.o(.text*); src/*.o(.text*); asm/*.o(.text*); - } =0 + } > ROM =0 script_data : ALIGN(4) { data/*.o(script_data); - } =0 + } > ROM =0 lib_text : ALIGN(4) @@ -84,7 +78,7 @@ SECTIONS { *libc.a:*.o(.text*); *libnosys.a:*.o(.text*); src/libisagbprn.o(.text); - } =0 + } > ROM =0 .rodata : ALIGN(4) @@ -92,13 +86,13 @@ SECTIONS { src/*.o(.rodata*); gflib/*.o(.rodata*); data/*.o(.rodata*); - } =0 + } > ROM =0 song_data : ALIGN(4) { sound/songs/*.o(.rodata); - } =0 + } > ROM =0 lib_rodata : SUBALIGN(4) @@ -115,7 +109,7 @@ SECTIONS { *libc.a:*.o(.rodata*); *libc.a:*.o(.data*); src/libisagbprn.o(.rodata); - } =0 + } > ROM =0 multiboot_data : ALIGN(4) @@ -123,13 +117,13 @@ SECTIONS { data/multiboot_ereader.o(.rodata); data/multiboot_berry_glitch_fix.o(.rodata); data/multiboot_pokemon_colosseum.o(.rodata); - } =0 + } > ROM =0 gfx_data : ALIGN(4) { src/graphics.o(.rodata); - } =0 + } > ROM =0 __rom_end = .; diff --git a/ld_script_test.txt b/ld_script_test.ld similarity index 87% rename from ld_script_test.txt rename to ld_script_test.ld index 447d7a2b87..b86302f8cb 100644 --- a/ld_script_test.txt +++ b/ld_script_test.ld @@ -4,29 +4,25 @@ gNumMusicPlayers = 4; gMaxLines = 0; gInitialMainCB2 = CB2_TestRunner; -SECTIONS { - . = 0x2000000; +MEMORY +{ + EWRAM (rwx) : ORIGIN = 0x2000000, LENGTH = 256K + IWRAM (rwx) : ORIGIN = 0x3000000, LENGTH = 32K + ROM (rx) : ORIGIN = 0x8000000, LENGTH = 32M +} - ewram (NOLOAD) : +SECTIONS { + ewram 0x2000000 (NOLOAD) : ALIGN(4) { - gHeap = .; - - . = 0x1C000; - src/*.o(ewram_data); gflib/*.o(ewram_data); test/*.o(ewram_data); + } > EWRAM - . = 0x40000; - } - - . = 0x3000000; - - iwram (NOLOAD) : + iwram 0x3000000 (NOLOAD) : ALIGN(4) { - /* .bss starts at 0x3000000 */ src/*.o(.bss); gflib/*.o(.bss); data/*.o(.bss); @@ -35,26 +31,22 @@ SECTIONS { *libgcc.a:*.o(.bss*); *libnosys.a:*.o(.bss*); - /* .bss.code starts at 0x3001AA8 */ src/m4a.o(.bss.code); - /* COMMON starts at 0x30022A8 */ src/*.o(COMMON); gflib/*.o(COMMON); data/*.o(COMMON); test/*.o(COMMON); *libc.a:sbrkr.o(COMMON); - end = .; /* .persistent starts at 0x3007F00 */ /* WARNING: This is the end of the IRQ stack, if there's too * much data it WILL be overwritten. */ . = 0x7F00; test/*.o(.persistent); + } > IWRAM - . = 0x8000; - } - + /* BEGIN ROM DATA */ . = 0x8000000; .text : @@ -65,13 +57,13 @@ SECTIONS { src/rom_header_rhh.o(.text.*); src/*.o(.text); gflib/*.o(.text); - } =0 + } > ROM =0 script_data : ALIGN(4) { data/*.o(script_data); - } =0 + } > ROM =0 lib_text : ALIGN(4) @@ -80,7 +72,7 @@ SECTIONS { *libgcc.a:*.o(.text*); *libc.a:*.o(.text*); *libnosys.a:*.o(.text*); - } =0 + } > ROM =0 .rodata : ALIGN(4) @@ -88,13 +80,13 @@ SECTIONS { src/*.o(.rodata*); gflib/*.o(.rodata*); data/*.o(.rodata*); - } =0 + } > ROM =0 song_data : ALIGN(4) { sound/songs/*.o(.rodata); - } =0 + } > ROM =0 lib_rodata : SUBALIGN(4) @@ -103,7 +95,7 @@ SECTIONS { *libc.a:*.o(.rodata*); *libc.a:*.o(.data*); src/libisagbprn.o(.rodata); - } =0 + } > ROM =0 tests : ALIGN(4) @@ -113,7 +105,7 @@ SECTIONS { __stop_tests = .; test/*.o(.text); test/*.o(.rodata*); - } =0 + } > ROM =0 __rom_end = .; diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 1ffa1b8732..6d0c9b97dc 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -1,5101 +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 +.if P_FAMILY_MAREEP == TRUE cry Cry_Mareep 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 +.if P_FAMILY_HOUNDOUR == TRUE cry Cry_Houndour 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 cry Cry_Turtwig cry Cry_Grotle cry Cry_Torterra +.endif @ P_FAMILY_TURTWIG +.if P_FAMILY_CHIMCHAR == TRUE cry Cry_Chimchar cry Cry_Monferno cry Cry_Infernape +.endif @ P_FAMILY_CHIMCHAR +.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 - cry Cry_Eternatus - cry Cry_Kubfu - cry Cry_Urshifu - cry Cry_Zarude - cry Cry_Regieleki - cry Cry_Regidrago - cry Cry_Glastrier - cry Cry_Spectrier - 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_uncomp 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 +.endif @ P_FAMILY_DREEPY +.if P_FAMILY_ZACIAN == TRUE + cry Cry_ZacianHeroOfManyBattles cry Cry_ZacianCrownedSword - @ Zamazenta +.endif @ P_FAMILY_ZACIAN +.if P_FAMILY_ZAMAZENTA == TRUE + cry Cry_ZamazentaHeroOfManyBattles cry Cry_ZamazentaCrownedShield - @ Eternatus +.endif @ P_FAMILY_ZAMAZENTA +.if P_FAMILY_ETERNATUS == TRUE + cry Cry_Eternatus cry Cry_EternatusEternamax - @ Urshifu +.endif @ P_FAMILY_ETERNATUS +.if P_FAMILY_KUBFU == TRUE + cry Cry_Kubfu + cry Cry_UrshifuSingleStrikeStyle cry Cry_UrshifuRapidStrikeStyle - @ Zarude +.endif @ P_FAMILY_KUBFU +.if P_FAMILY_ZARUDE == TRUE cry Cry_Zarude - @ Calyrex +.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 +.if P_FUSION_FORMS == TRUE cry Cry_CalyrexIceRider cry Cry_CalyrexShadowRider - @ Basculegion - cry Cry_Basculegion - @ 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 - cry Cry_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 - cry Cry_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 - cry Cry_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 - cry Cry_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 - cry Cry_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 - cry Cry_Alcremie -.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 - 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 - @ 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 - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - 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_9_POKEMON == TRUE +.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_Oinkologne + 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_Maushold + 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 - cry Cry_Squawkabilly - cry Cry_Squawkabilly - 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_Palafin + 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 - cry Cry_Tatsugiri +.endif @ P_FAMILY_DONDOZO +.if P_FAMILY_TATSUGIRI == TRUE + cry Cry_TatsugiriCurly cry Cry_TatsugiriDroopy cry Cry_TatsugiriStretchy - cry Cry_Annihilape - cry Cry_Clodsire - cry Cry_Farigiraf - cry Cry_Dudunsparce - cry Cry_Dudunsparce - cry Cry_Kingambit +.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 - cry Cry_Gimmighoul +.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 -.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 -.endif -@ Paldean Forms - cry Cry_Tauros - cry Cry_Tauros - cry Cry_Tauros - cry Cry_Wooper -.if P_GEN_9_POKEMON == TRUE +.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 - cry Cry_Dipplin - cry Cry_Poltchageist +.endif @ P_FAMILY_IRON_LEAVES +.if P_FAMILY_POLTCHAGEIST == TRUE cry Cry_Poltchageist cry Cry_Sinistcha - 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 - cry Cry_Ogerpon - cry Cry_Ogerpon - cry Cry_Ogerpon - cry Cry_Ogerpon - cry Cry_Ogerpon - cry Cry_Ogerpon - cry Cry_Ogerpon -.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 -.endif -.if P_GEN_8_POKEMON == TRUE - cry Cry_Ursaluna -.else - 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 +.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 - cry_reverse Cry_Crobat +.endif @ P_FAMILY_SPINARAK +.if P_FAMILY_CHINCHOU == TRUE cry_reverse Cry_Chinchou cry_reverse Cry_Lanturn - cry_reverse Cry_Pichu - cry_reverse Cry_Cleffa - cry_reverse Cry_Igglybuff +.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 +.if P_FAMILY_MAREEP == TRUE cry_reverse Cry_Mareep cry_reverse Cry_Flaaffy cry_reverse Cry_Ampharos - cry_reverse Cry_Bellossom +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_AmpharosMega +.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 - cry_reverse Cry_Politoed +.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 - cry_reverse Cry_Espeon - cry_reverse Cry_Umbreon +.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_Slowking + 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 - cry_reverse Cry_Steelix +.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 - cry_reverse Cry_Scizor +.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 +.if P_FAMILY_HOUNDOUR == TRUE cry_reverse Cry_Houndour cry_reverse Cry_Houndoom - cry_reverse Cry_Kingdra +.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 - cry_reverse Cry_Porygon2 +.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 - cry_reverse Cry_Tyrogue - cry_reverse Cry_Hitmontop - cry_reverse Cry_Smoochum - cry_reverse Cry_Elekid - cry_reverse Cry_Magby +.endif @ P_FAMILY_SMEARGLE +.if P_FAMILY_MILTANK == TRUE cry_reverse Cry_Miltank - cry_reverse Cry_Blissey +.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 - cry_reverse Cry_Azurill +.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 - cry_reverse Cry_Wynaut +.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 +.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 +.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 +.endif @ P_FAMILY_DEOXYS +.if P_FAMILY_TURTWIG == TRUE cry_reverse Cry_Turtwig cry_reverse Cry_Grotle cry_reverse Cry_Torterra +.endif @ P_FAMILY_TURTWIG +.if P_FAMILY_CHIMCHAR == TRUE cry_reverse Cry_Chimchar cry_reverse Cry_Monferno cry_reverse Cry_Infernape +.endif @ P_FAMILY_CHIMCHAR +.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 - cry_reverse Cry_Budew - cry_reverse Cry_Roserade +.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 cry_reverse Cry_Wormadam 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 +.endif @ P_FAMILY_CHERUBI +.if P_FAMILY_SHELLOS == TRUE cry_reverse Cry_Shellos cry_reverse Cry_Gastrodon - cry_reverse Cry_Ambipom +.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 - cry_reverse Cry_Mismagius - cry_reverse Cry_Honchkrow +.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 - cry_reverse Cry_Chingling +.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 - cry_reverse Cry_Bonsly - cry_reverse Cry_MimeJr - cry_reverse Cry_Happiny +.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 - cry_reverse Cry_Munchlax +.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 - cry_reverse Cry_Mantyke +.endif @ P_FAMILY_FINNEON +.if P_FAMILY_SNOVER == TRUE 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 +.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 +.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 +.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 - cry_reverse Cry_Shaymin +.endif @ P_FAMILY_DARKRAI +.if P_FAMILY_SHAYMIN == TRUE + cry_reverse Cry_ShayminLand + cry_reverse Cry_ShayminSky +.endif @ P_FAMILY_SHAYMIN +.if P_FAMILY_ARCEUS == TRUE 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 +.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 +.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 +.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 cry_reverse Cry_Sawsbuck +.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 - cry_reverse Cry_Tornadus - cry_reverse Cry_Thundurus +.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 - cry_reverse Cry_Landorus +.endif @ P_FAMILY_ZEKROM +.if P_FAMILY_LANDORUS == TRUE + cry_reverse Cry_LandorusIncarnate + cry_reverse Cry_LandorusTherian +.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 +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_KYUREM +.if P_FAMILY_KELDEO == TRUE cry_reverse Cry_Keldeo +.endif @ P_FAMILY_KELDEO +.if P_FAMILY_MELOETTA == TRUE cry_reverse Cry_Meloetta +.endif @ P_FAMILY_MELOETTA +.if P_FAMILY_GENESECT == TRUE 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 +.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 +.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 +.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 cry_reverse Cry_Floette + cry_reverse Cry_FloetteEternalFlower cry_reverse Cry_Florges +.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 +.endif @ P_FAMILY_FURFROU +.if P_FAMILY_ESPURR == TRUE cry_reverse Cry_Espurr cry_reverse Cry_Meowstic +.endif @ P_FAMILY_ESPURR +.if P_FAMILY_HONEDGE == TRUE cry_reverse Cry_Honedge cry_reverse Cry_Doublade cry_reverse Cry_Aegislash +.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 - cry_reverse Cry_Sylveon +.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 - cry_reverse_uncomp Cry_Klefki +.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 cry_reverse Cry_Gourgeist + cry_reverse Cry_GourgeistSuper +.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 +.endif @ P_FAMILY_XERNEAS +.if P_FAMILY_YVELTAL == TRUE cry_reverse Cry_Yveltal - cry_reverse Cry_Zygarde +.endif @ P_FAMILY_YVELTAL +.if P_FAMILY_ZYGARDE == TRUE + cry_reverse Cry_Zygarde50 + cry_reverse Cry_Zygarde10 + cry_reverse Cry_ZygardeComplete +.endif @ P_FAMILY_ZYGARDE +.if P_FAMILY_DIANCIE == TRUE cry_reverse Cry_Diancie - cry_reverse Cry_Hoopa +.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 +.endif @ P_FAMILY_HOOPA +.if P_FAMILY_VOLCANION == TRUE 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 +.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 - cry_reverse Cry_Oricorio +.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 +.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 - cry_reverse Cry_Lycanroc - cry_reverse Cry_Wishiwashi + cry_reverse Cry_LycanrocMidday + cry_reverse Cry_LycanrocMidnight + cry_reverse Cry_LycanrocDusk +.endif @ P_FAMILY_ROCKRUFF +.if P_FAMILY_WISHIWASHI == TRUE + cry_reverse Cry_WishiwashiSolo + cry_reverse Cry_WishiwashiSchool +.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 +.endif @ P_FAMILY_TYPE_NULL +.if P_FAMILY_MINIOR == TRUE cry_reverse Cry_Minior +.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 +.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 +.endif @ P_ULTRA_BURST_FORMS +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_NECROZMA +.if P_FAMILY_MAGEARNA == TRUE cry_reverse Cry_Magearna +.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 - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - 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 +.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 +.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_Toxtricity + 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 - cry_reverse Cry_Obstagoon - cry_reverse Cry_Perrserker - cry_reverse Cry_Cursola - cry_reverse Cry_Sirfetchd - cry_reverse Cry_MrRime - cry_reverse Cry_Runerigus +.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 - cry_reverse Cry_Eiscue - cry_reverse Cry_Indeedee - cry_reverse Cry_Morpeko +.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 +.endif @ P_FAMILY_DURALUDON +.if P_FAMILY_DREEPY == TRUE 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 - cry_reverse Cry_VenusaurMega - cry_reverse Cry_CharizardMegaX - cry_reverse Cry_CharizardMegaY - cry_reverse Cry_BlastoiseMega - cry_reverse Cry_BeedrillMega - cry_reverse Cry_PidgeotMega - cry_reverse Cry_AlakazamMega - cry_reverse Cry_SlowbroMega - cry_reverse Cry_GengarMega - cry_reverse Cry_KangaskhanMega - cry_reverse Cry_PinsirMega - cry_reverse Cry_GyaradosMega - cry_reverse Cry_AerodactylMega - cry_reverse Cry_MewtwoMegaX - cry_reverse Cry_MewtwoMegaY - cry_reverse Cry_AmpharosMega - cry_reverse Cry_SteelixMega - cry_reverse Cry_ScizorMega - cry_reverse Cry_HeracrossMega - cry_reverse Cry_HoundoomMega - cry_reverse Cry_TyranitarMega - cry_reverse Cry_SceptileMega - cry_reverse Cry_BlazikenMega - cry_reverse Cry_SwampertMega - cry_reverse Cry_GardevoirMega - cry_reverse Cry_SableyeMega - cry_reverse Cry_MawileMega - cry_reverse Cry_AggronMega - cry_reverse Cry_MedichamMega - cry_reverse Cry_ManectricMega - cry_reverse Cry_SharpedoMega - cry_reverse Cry_CameruptMega - cry_reverse Cry_AltariaMega - cry_reverse Cry_BanetteMega - cry_reverse Cry_AbsolMega - cry_reverse Cry_GlalieMega - cry_reverse Cry_SalamenceMega - cry_reverse Cry_MetagrossMega - cry_reverse Cry_LatiasMega - 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 - 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 - cry_reverse Cry_Deoxys -.if P_GEN_4_POKEMON == TRUE - @ Burmy - cry_reverse Cry_Burmy - cry_reverse Cry_Burmy - @ Wormadam - cry_reverse Cry_Wormadam - cry_reverse Cry_Wormadam - @ Cherrim - cry_reverse Cry_Cherrim - @ Shellos - 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 - cry_reverse Cry_Rotom - @ Origin Forme - cry_reverse Cry_Dialga - cry_reverse Cry_Palkia - cry_reverse Cry_Giratina - @ Shaymin - 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 - 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 - cry_reverse Cry_Basculin - @ Darmanitan - cry_reverse Cry_Darmanitan - cry_reverse Cry_Darmanitan - @ Deerling - cry_reverse Cry_Deerling - cry_reverse Cry_Deerling - cry_reverse Cry_Deerling - @ Sawsbuck - cry_reverse Cry_Sawsbuck - cry_reverse Cry_Sawsbuck - cry_reverse Cry_Sawsbuck - @ Therian Forms - cry_reverse Cry_TornadusTherian - cry_reverse Cry_ThundurusTherian - cry_reverse Cry_LandorusTherian - cry_reverse Cry_EnamorusTherian - @ Kyurem - cry_reverse Cry_KyuremWhite - cry_reverse Cry_KyuremBlack - @ Keldeo - cry_reverse Cry_Keldeo - @ Meloetta - cry_reverse Cry_Meloetta - @ Genesect - cry_reverse Cry_Genesect - 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 - 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 - cry_reverse Cry_Vivillon - @ Flabébé - cry_reverse Cry_Flabebe - cry_reverse Cry_Flabebe - cry_reverse Cry_Flabebe - 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 - cry_reverse Cry_Furfrou - @ Meowstic - cry_reverse Cry_Meowstic - @ Aegislash - cry_reverse Cry_Aegislash - @ Pumpkaboo - cry_reverse Cry_Pumpkaboo - cry_reverse Cry_Pumpkaboo - cry_reverse Cry_PumpkabooSuper - @ Gourgeist - cry_reverse Cry_Gourgeist - cry_reverse Cry_Gourgeist - cry_reverse Cry_GourgeistSuper - @ Xerneas - cry_reverse Cry_Xerneas - @ Zygarde - cry_reverse Cry_Zygarde10 - cry_reverse Cry_Zygarde10 - cry_reverse Cry_Zygarde - cry_reverse Cry_ZygardeComplete - @ Hoopa - 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 - cry_reverse_uncomp Cry_OricorioPomPom - cry_reverse Cry_OricorioPau - cry_reverse Cry_OricorioSensu - @ Rockruff - cry_reverse Cry_Rockruff - @ Lycanroc - cry_reverse Cry_LycanrocMidnight - cry_reverse Cry_LycanrocDusk - @ Wishiwashi - 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 - 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 - 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 - cry_reverse Cry_Mimikyu - @ Necrozma - cry_reverse Cry_NecrozmaDuskMane - cry_reverse Cry_NecrozmaDawnWings - cry_reverse Cry_NecrozmaUltra - @ Magearna - 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 +.endif @ P_FAMILY_DREEPY +.if P_FAMILY_ZACIAN == TRUE + cry_reverse Cry_ZacianHeroOfManyBattles cry_reverse Cry_ZacianCrownedSword - @ Zamazenta +.endif @ P_FAMILY_ZACIAN +.if P_FAMILY_ZAMAZENTA == TRUE + cry_reverse Cry_ZamazentaHeroOfManyBattles cry_reverse Cry_ZamazentaCrownedShield - @ Eternatus +.endif @ P_FAMILY_ZAMAZENTA +.if P_FAMILY_ETERNATUS == TRUE + cry_reverse Cry_Eternatus cry_reverse Cry_EternatusEternamax - @ Urshifu +.endif @ P_FAMILY_ETERNATUS +.if P_FAMILY_KUBFU == TRUE + cry_reverse Cry_Kubfu + cry_reverse Cry_UrshifuSingleStrikeStyle cry_reverse Cry_UrshifuRapidStrikeStyle - @ Zarude +.endif @ P_FAMILY_KUBFU +.if P_FAMILY_ZARUDE == TRUE cry_reverse Cry_Zarude - @ Calyrex +.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 - @ Basculegion - cry_reverse Cry_Basculegion - @ 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 - 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 - 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 - 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 - 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 - 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 - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie -.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 -.endif -.if P_GEN_9_POKEMON == TRUE +.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_Oinkologne + 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_Maushold + 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 - cry_reverse Cry_Squawkabilly - cry_reverse Cry_Squawkabilly - 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_Palafin + 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 - cry_reverse Cry_Tatsugiri +.endif @ P_FAMILY_DONDOZO +.if P_FAMILY_TATSUGIRI == TRUE + cry_reverse Cry_TatsugiriCurly cry_reverse Cry_TatsugiriDroopy cry_reverse Cry_TatsugiriStretchy - cry_reverse Cry_Annihilape - cry_reverse Cry_Clodsire - cry_reverse Cry_Farigiraf - cry_reverse Cry_Dudunsparce - cry_reverse Cry_Dudunsparce - cry_reverse Cry_Kingambit +.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 - cry_reverse Cry_Gimmighoul +.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 -.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 -.endif -@ Paldean Forms - cry_reverse Cry_Tauros - cry_reverse Cry_Tauros - cry_reverse Cry_Tauros - cry_reverse Cry_Wooper -.if P_GEN_9_POKEMON == TRUE +.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 - cry_reverse Cry_Dipplin - cry_reverse Cry_Poltchageist +.endif @ P_FAMILY_IRON_LEAVES +.if P_FAMILY_POLTCHAGEIST == TRUE cry_reverse Cry_Poltchageist cry_reverse Cry_Sinistcha - 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 - cry_reverse Cry_Ogerpon - cry_reverse Cry_Ogerpon - cry_reverse Cry_Ogerpon - cry_reverse Cry_Ogerpon - cry_reverse Cry_Ogerpon - cry_reverse Cry_Ogerpon - cry_reverse Cry_Ogerpon -.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 -.endif -.if P_GEN_8_POKEMON == TRUE - cry_reverse Cry_Ursaluna -.else - 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 - cry_reverse Cry_Melmetal -.else - cry_reverse Cry_Unown -.endif -.if P_GEN_8_POKEMON == TRUE - cry_reverse Cry_Rillaboom - cry_reverse Cry_Cinderace - cry_reverse Cry_Inteleon - cry_reverse Cry_Corviknight - cry_reverse Cry_Orbeetle - cry_reverse Cry_Drednaw - cry_reverse Cry_Coalossal - cry_reverse Cry_Flapple - cry_reverse Cry_Appletun - cry_reverse Cry_Sandaconda - cry_reverse Cry_Toxtricity - cry_reverse Cry_Centiskorch - cry_reverse Cry_Hatterene - cry_reverse Cry_Grimmsnarl - cry_reverse Cry_Alcremie - cry_reverse Cry_Copperajah - 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_OGERPON diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index 80182fbb65..8a915b6de1 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,7 +1581,9 @@ Cry_Natu:: .align 2 Cry_Xatu:: .incbin "sound/direct_sound_samples/cries/xatu.bin" +.endif @ P_FAMILY_NATU +.if P_FAMILY_MAREEP == TRUE .align 2 Cry_Mareep:: .incbin "sound/direct_sound_samples/cries/mareep.bin" @@ -1110,9 +1596,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 +1617,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_Bonsly:: + .incbin "sound/direct_sound_samples/cries/bonsly.bin" .align 2 Cry_Sudowoodo:: .incbin "sound/direct_sound_samples/cries/sudowoodo.bin" +.endif @ P_FAMILY_SUDOWOODO - .align 2 -Cry_Politoed:: - .incbin "sound/direct_sound_samples/cries/politoed.bin" - +.if P_FAMILY_HOPPIP == TRUE .align 2 Cry_Hoppip:: .incbin "sound/direct_sound_samples/cries/hoppip.bin" @@ -1141,11 +1641,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 +1661,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 +1684,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_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 +1750,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 +1784,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 +1844,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 +1859,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 +1870,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,19 +1898,33 @@ 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 +.if P_FAMILY_HOUNDOUR == TRUE .align 2 Cry_Houndour:: .incbin "sound/direct_sound_samples/cries/houndour.bin" @@ -1302,10 +1933,14 @@ Cry_Houndour:: 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 +1948,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_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_Smeargle:: .incbin "sound/direct_sound_samples/cries/smeargle.bin" +.endif @ P_FAMILY_SMEARGLE - .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" - - .align 2 -Cry_Magby:: - .incbin "sound/direct_sound_samples/cries/magby.bin" - +.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 +2005,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 +2043,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 +2063,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 +2083,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 +2098,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 +2109,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 +2137,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 +2151,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 +2165,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 +2175,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 +2185,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 +2200,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 +2226,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 +2236,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 +2250,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 +2264,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 +2278,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 +2288,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 +2310,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 +2349,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 +2365,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 +2381,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 +2408,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 +2436,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 +2447,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 +2462,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 +2473,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 +2494,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 +2514,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 +2524,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 +2535,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 +2574,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 +2584,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 +2594,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 +2604,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 +2614,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 +2624,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 +2647,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 +2663,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 +2709,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 +2733,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 +2747,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 +2774,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 +2794,106 @@ 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 .align 2 Cry_Turtwig:: .incbin "sound/direct_sound_samples/cries/turtwig.bin" @@ -1942,7 +2905,9 @@ Cry_Grotle:: .align 2 Cry_Torterra:: .incbin "sound/direct_sound_samples/cries/torterra.bin" +.endif @ P_FAMILY_TURTWIG +.if P_FAMILY_CHIMCHAR == TRUE .align 2 Cry_Chimchar:: .incbin "sound/direct_sound_samples/cries/chimchar.bin" @@ -1954,7 +2919,9 @@ Cry_Monferno:: .align 2 Cry_Infernape:: .incbin "sound/direct_sound_samples/cries/infernape.bin" +.endif @ P_FAMILY_CHIMCHAR +.if P_FAMILY_PIPLUP == TRUE .align 2 Cry_Piplup:: .incbin "sound/direct_sound_samples/cries/piplup.bin" @@ -1966,7 +2933,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 +2947,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 +2957,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 +2967,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 +2981,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 +2991,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 +3001,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 +3015,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 +3025,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 +3041,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 +3051,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 +3061,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 +3071,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 +3082,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 +3097,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 +3107,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 +3117,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 +3144,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 +3160,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 +3175,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 +3185,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 +3195,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 +3211,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 +3222,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" - - .align 2 -Cry_Magnezone:: - .incbin "sound/direct_sound_samples/cries/magnezone.bin" - - .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" +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_Rotom:: .incbin "sound/direct_sound_samples/cries/rotom.bin" +.endif @ P_FAMILY_ROTOM +.if P_FAMILY_UXIE == TRUE .align 2 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 +3297,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_ShayminLand:: + .incbin "sound/direct_sound_samples/cries/shaymin_land.bin" .align 2 -Cry_Shaymin:: - .incbin "sound/direct_sound_samples/cries/shaymin.bin" +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 +3339,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 +3353,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 +3367,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 +3377,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 +3391,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 +3401,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 +3411,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 +3421,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 +3431,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 +3441,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 +3455,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 +3465,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 +3479,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 +3489,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 +3499,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 +3525,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 +3539,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 +3565,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 +3579,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 +3589,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 +3599,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 +3626,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 +3636,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 +3652,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 +3662,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 +3679,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 +3695,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 +3705,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 +3715,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 +3725,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 +3735,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 +3749,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 +3763,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 +3773,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 +3787,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 +3797,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 +3813,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 +3823,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 +3833,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 +3849,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 +3859,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 +3873,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 +3887,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 +3897,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 +3911,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 +3925,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 +3935,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 +3951,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 +3967,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 +3983,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 +3994,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 +4015,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 +4025,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 +4051,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 +4061,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_TornadusIncarnate:: + .incbin "sound/direct_sound_samples/cries/tornadus_incarnate.bin" .align 2 -Cry_Tornadus:: - .incbin "sound/direct_sound_samples/cries/tornadus.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_Thundurus:: - .incbin "sound/direct_sound_samples/cries/thundurus.bin" +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 +4170,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 +4184,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 +4198,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 +4208,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 +4222,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 +4236,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 +4246,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 +4257,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 +4274,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 +4284,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 +4300,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 +4314,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 +4324,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 +4334,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 +4344,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 +4354,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 +4364,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 +4374,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 +4384,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 +4394,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 +4404,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 +4436,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 +4452,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 +4480,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 +4490,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 +4558,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 +4572,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 +4586,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 +4600,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 +4610,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 +4624,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 +4634,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_Oricorio:: - .incbin "sound/direct_sound_samples/cries/oricorio.bin" +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_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 +4662,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_Wishiwashi:: - .incbin "sound/direct_sound_samples/cries/wishiwashi.bin" +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_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 +4700,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 +4710,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 +4720,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 +4730,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 +4740,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 +4750,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 +4760,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 +4774,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 +4802,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 +4812,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 +4828,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 +4890,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 +4932,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 +5019,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 +5047,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 +5061,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 +5075,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 +5089,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 +5099,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 +5113,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 +5127,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 +5137,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 +5147,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 +5157,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 +5167,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 +5177,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 +5191,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 +5206,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 +5221,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 +5237,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 +5261,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 +5271,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 +5281,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 +5295,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 +5309,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 +5319,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 +5341,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_Eiscue:: - .incbin "sound/direct_sound_samples/cries/eiscue.bin" +Cry_EiscueNoiceFace:: + .incbin "sound/direct_sound_samples/cries/eiscue_noice_face.bin" +.endif @ P_FAMILY_EISCUE + +.if P_FAMILY_INDEEDEE == TRUE + .align 2 +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_MorpekoFullBelly:: + .incbin "sound/direct_sound_samples/cries/morpeko_full_belly.bin" .align 2 -Cry_Morpeko:: - .incbin "sound/direct_sound_samples/cries/morpeko.bin" +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 +5387,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,420 +5431,88 @@ 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_Zacian:: - .incbin "sound/direct_sound_samples/cries/zacian.bin" +Cry_ZacianCrownedSword:: + .incbin "sound/direct_sound_samples/cries/zacian_crowned_sword.bin" +.endif @ P_FAMILY_ZACIAN + +.if P_FAMILY_ZAMAZENTA == TRUE + .align 2 +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" - - .align 2 -Cry_Zarude:: - .incbin "sound/direct_sound_samples/cries/zarude.bin" - - .align 2 -Cry_Regieleki:: - .incbin "sound/direct_sound_samples/cries/regieleki.bin" - - .align 2 -Cry_Regidrago:: - .incbin "sound/direct_sound_samples/cries/regidrago.bin" - - .align 2 -Cry_Glastrier:: - .incbin "sound/direct_sound_samples/cries/glastrier.bin" - - .align 2 -Cry_Spectrier:: - .incbin "sound/direct_sound_samples/cries/spectrier.bin" - - .align 2 -Cry_Calyrex:: - .incbin "sound/direct_sound_samples/cries/calyrex.bin" - - .align 2 -Cry_Wyrdeer:: - .incbin "sound/direct_sound_samples/cries/wyrdeer.bin" - - .align 2 -Cry_Kleavor:: - .incbin "sound/direct_sound_samples/cries/kleavor.bin" - - .align 2 -Cry_Ursaluna:: - .incbin "sound/direct_sound_samples/cries/ursaluna.bin" - - .align 2 -Cry_Basculegion:: - .incbin "sound/direct_sound_samples/cries/basculegion.bin" - - .align 2 -Cry_Sneasler:: - .incbin "sound/direct_sound_samples/cries/sneasler.bin" - - .align 2 -Cry_Overqwil:: - .incbin "sound/direct_sound_samples/cries/overqwil.bin" - - .align 2 -Cry_Enamorus:: - .incbin "sound/direct_sound_samples/cries/enamorus.bin" - -.endif - - .align 2 -Cry_VenusaurMega:: - .incbin "sound/direct_sound_samples/cries/mega_venusaur.bin" - - .align 2 -Cry_CharizardMegaX:: - .incbin "sound/direct_sound_samples/cries/mega_charizard_x.bin" - - .align 2 -Cry_CharizardMegaY:: - .incbin "sound/direct_sound_samples/cries/mega_charizard_y.bin" - - .align 2 -Cry_BlastoiseMega:: - .incbin "sound/direct_sound_samples/cries/mega_blastoise.bin" - - .align 2 -Cry_BeedrillMega:: - .incbin "sound/direct_sound_samples/cries/mega_beedrill.bin" - - .align 2 -Cry_PidgeotMega:: - .incbin "sound/direct_sound_samples/cries/mega_pidgeot.bin" - - .align 2 -Cry_AlakazamMega:: - .incbin "sound/direct_sound_samples/cries/mega_alakazam.bin" - - .align 2 -Cry_SlowbroMega:: - .incbin "sound/direct_sound_samples/cries/mega_slowbro.bin" - - .align 2 -Cry_GengarMega:: - .incbin "sound/direct_sound_samples/cries/mega_gengar.bin" - - .align 2 -Cry_KangaskhanMega:: - .incbin "sound/direct_sound_samples/cries/mega_kangaskhan.bin" - - .align 2 -Cry_PinsirMega:: - .incbin "sound/direct_sound_samples/cries/mega_pinsir.bin" - - .align 2 -Cry_GyaradosMega:: - .incbin "sound/direct_sound_samples/cries/mega_gyarados.bin" - - .align 2 -Cry_AerodactylMega:: - .incbin "sound/direct_sound_samples/cries/mega_aerodactyl.bin" - - .align 2 -Cry_MewtwoMegaX:: - .incbin "sound/direct_sound_samples/cries/mega_mewtwo_x.bin" - - .align 2 -Cry_MewtwoMegaY:: - .incbin "sound/direct_sound_samples/cries/mega_mewtwo_y.bin" - - .align 2 -Cry_AmpharosMega:: - .incbin "sound/direct_sound_samples/cries/mega_ampharos.bin" - - .align 2 -Cry_SteelixMega:: - .incbin "sound/direct_sound_samples/cries/mega_steelix.bin" - - .align 2 -Cry_ScizorMega:: - .incbin "sound/direct_sound_samples/cries/mega_scizor.bin" - - .align 2 -Cry_HeracrossMega:: - .incbin "sound/direct_sound_samples/cries/mega_heracross.bin" - - .align 2 -Cry_HoundoomMega:: - .incbin "sound/direct_sound_samples/cries/mega_houndoom.bin" - - .align 2 -Cry_TyranitarMega:: - .incbin "sound/direct_sound_samples/cries/mega_tyranitar.bin" - - .align 2 -Cry_SceptileMega:: - .incbin "sound/direct_sound_samples/cries/mega_sceptile.bin" - - .align 2 -Cry_BlazikenMega:: - .incbin "sound/direct_sound_samples/cries/mega_blaziken.bin" - - .align 2 -Cry_SwampertMega:: - .incbin "sound/direct_sound_samples/cries/mega_swampert.bin" - - .align 2 -Cry_GardevoirMega:: - .incbin "sound/direct_sound_samples/cries/mega_gardevoir.bin" - - .align 2 -Cry_SableyeMega:: - .incbin "sound/direct_sound_samples/cries/mega_sableye.bin" - - .align 2 -Cry_MawileMega:: - .incbin "sound/direct_sound_samples/cries/mega_mawile.bin" - - .align 2 -Cry_AggronMega:: - .incbin "sound/direct_sound_samples/cries/mega_aggron.bin" - - .align 2 -Cry_MedichamMega:: - .incbin "sound/direct_sound_samples/cries/mega_medicham.bin" - - .align 2 -Cry_ManectricMega:: - .incbin "sound/direct_sound_samples/cries/mega_manectric.bin" - - .align 2 -Cry_SharpedoMega:: - .incbin "sound/direct_sound_samples/cries/mega_sharpedo.bin" - - .align 2 -Cry_CameruptMega:: - .incbin "sound/direct_sound_samples/cries/mega_camerupt.bin" - - .align 2 -Cry_AltariaMega:: - .incbin "sound/direct_sound_samples/cries/mega_altaria.bin" - - .align 2 -Cry_BanetteMega:: - .incbin "sound/direct_sound_samples/cries/mega_banette.bin" - - .align 2 -Cry_AbsolMega:: - .incbin "sound/direct_sound_samples/cries/mega_absol.bin" - - .align 2 -Cry_GlalieMega:: - .incbin "sound/direct_sound_samples/cries/mega_glalie.bin" - - .align 2 -Cry_SalamenceMega:: - .incbin "sound/direct_sound_samples/cries/mega_salamence.bin" - - .align 2 -Cry_MetagrossMega:: - .incbin "sound/direct_sound_samples/cries/mega_metagross.bin" - - .align 2 -Cry_LatiasMega:: - .incbin "sound/direct_sound_samples/cries/mega_latias.bin" - - .align 2 -Cry_LatiosMega:: - .incbin "sound/direct_sound_samples/cries/mega_latios.bin" - -.if P_GEN_4_POKEMON == TRUE - .align 2 -Cry_LopunnyMega:: - .incbin "sound/direct_sound_samples/cries/mega_lopunny.bin" - - .align 2 -Cry_GarchompMega:: - .incbin "sound/direct_sound_samples/cries/mega_garchomp.bin" - - .align 2 -Cry_LucarioMega:: - .incbin "sound/direct_sound_samples/cries/mega_lucario.bin" - - .align 2 -Cry_AbomasnowMega:: - .incbin "sound/direct_sound_samples/cries/mega_abomasnow.bin" - - .align 2 -Cry_GalladeMega:: - .incbin "sound/direct_sound_samples/cries/mega_gallade.bin" -.endif - -.if P_GEN_5_POKEMON == TRUE - .align 2 -Cry_AudinoMega:: - .incbin "sound/direct_sound_samples/cries/mega_audino.bin" -.endif - -.if P_GEN_6_POKEMON == TRUE - .align 2 -Cry_DiancieMega:: - .incbin "sound/direct_sound_samples/cries/mega_diancie.bin" -.endif - - .align 2 -Cry_RayquazaMega:: - .incbin "sound/direct_sound_samples/cries/mega_rayquaza.bin" - - .align 2 -Cry_KyogrePrimal:: - .incbin "sound/direct_sound_samples/cries/primal_kyogre.bin" - - .align 2 -Cry_GroudonPrimal:: - .incbin "sound/direct_sound_samples/cries/primal_groudon.bin" - - .align 2 -Cry_SlowpokeGalarian:: - .incbin "sound/direct_sound_samples/cries/slowpoke_galarian.bin" - -.if P_GEN_4_POKEMON == TRUE - .align 2 -Cry_ShayminSky:: - .incbin "sound/direct_sound_samples/cries/shaymin_sky.bin" -.endif - -.if P_GEN_5_POKEMON == TRUE - .align 2 -Cry_TornadusTherian:: - .incbin "sound/direct_sound_samples/cries/tornadus_therian.bin" - - .align 2 -Cry_ThundurusTherian:: - .incbin "sound/direct_sound_samples/cries/thundurus_therian.bin" - - .align 2 -Cry_LandorusTherian:: - .incbin "sound/direct_sound_samples/cries/landorus_therian.bin" - - .align 2 -Cry_EnamorusTherian:: - .incbin "sound/direct_sound_samples/cries/enamorus_therian.bin" - - .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 - -.if P_GEN_6_POKEMON == TRUE - .align 2 -Cry_FloetteEternalFlower:: - .incbin "sound/direct_sound_samples/cries/floette_eternal_flower.bin" - - .align 2 -Cry_PumpkabooSuper:: - .incbin "sound/direct_sound_samples/cries/pumpkaboo_super.bin" - - .align 2 -Cry_GourgeistSuper:: - .incbin "sound/direct_sound_samples/cries/gourgeist_super.bin" - - .align 2 -Cry_Zygarde10:: - .incbin "sound/direct_sound_samples/cries/zygarde_10.bin" - - .align 2 -Cry_ZygardeComplete:: - .incbin "sound/direct_sound_samples/cries/zygarde_complete.bin" - - .align 2 -Cry_HoopaUnbound:: - .incbin "sound/direct_sound_samples/cries/hoopa_unbound.bin" -.endif - -.if P_GEN_7_POKEMON == TRUE - .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_OricorioSensu:: - .incbin "sound/direct_sound_samples/cries/oricorio_sensu.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" - - .align 2 -Cry_WishiwashiSchool:: - .incbin "sound/direct_sound_samples/cries/wishiwashi_school.bin" - - .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" - - .align 2 -Cry_NecrozmaUltra:: - .incbin "sound/direct_sound_samples/cries/necrozma_ultra.bin" -.endif - -.if P_GEN_8_POKEMON == TRUE - .align 2 -Cry_ToxtricityLowKey:: - .incbin "sound/direct_sound_samples/cries/toxtricity_low_key.bin" - - .align 2 -Cry_EiscueNoiceFace:: - .incbin "sound/direct_sound_samples/cries/eiscue_noice_face.bin" - - .align 2 -Cry_IndeedeeFemale:: - .incbin "sound/direct_sound_samples/cries/indeedee_female.bin" - - .align 2 -Cry_MorpekoHangry:: - .incbin "sound/direct_sound_samples/cries/morpeko_hangry.bin" - - .align 2 -Cry_ZacianCrownedSword:: - .incbin "sound/direct_sound_samples/cries/zacian_crowned_sword.bin" - - .align 2 -Cry_ZamazentaCrownedShield:: - .incbin "sound/direct_sound_samples/cries/zamazenta_crowned_shield.bin" - - .align 2 -Cry_EternatusEternamax:: - .incbin "sound/direct_sound_samples/cries/eternatus_eternamax.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_CalyrexIceRider:: .incbin "sound/direct_sound_samples/cries/calyrex_ice_rider.bin" @@ -4364,477 +5521,594 @@ Cry_CalyrexIceRider:: Cry_CalyrexShadowRider:: .incbin "sound/direct_sound_samples/cries/calyrex_shadow_rider.bin" -.endif -.if P_GEN_9_POKEMON == TRUE - .align 2 +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_CALYREX + +.if P_FAMILY_ENAMORUS == TRUE + .align 2 +Cry_EnamorusIncarnate:: + .incbin "sound/direct_sound_samples/cries/enamorus_incarnate.bin" + + .align 2 +Cry_EnamorusTherian:: + .incbin "sound/direct_sound_samples/cries/enamorus_therian.bin" +.endif @ P_FAMILY_ENAMORUS + +.if P_FAMILY_SPRIGATITO == TRUE + .align 2 Cry_Sprigatito:: - .incbin "sound/direct_sound_samples/cries/sprigatito.bin" + .incbin "sound/direct_sound_samples/cries/sprigatito.bin" - .align 2 + .align 2 Cry_Floragato:: - .incbin "sound/direct_sound_samples/cries/floragato.bin" + .incbin "sound/direct_sound_samples/cries/floragato.bin" - .align 2 + .align 2 Cry_Meowscarada:: - .incbin "sound/direct_sound_samples/cries/meowscarada.bin" + .incbin "sound/direct_sound_samples/cries/meowscarada.bin" +.endif @ P_FAMILY_SPRIGATITO - .align 2 +.if P_FAMILY_FUECOCO == TRUE + .align 2 Cry_Fuecoco:: - .incbin "sound/direct_sound_samples/cries/fuecoco.bin" + .incbin "sound/direct_sound_samples/cries/fuecoco.bin" - .align 2 + .align 2 Cry_Crocalor:: - .incbin "sound/direct_sound_samples/cries/crocalor.bin" + .incbin "sound/direct_sound_samples/cries/crocalor.bin" - .align 2 + .align 2 Cry_Skeledirge:: - .incbin "sound/direct_sound_samples/cries/skeledirge.bin" + .incbin "sound/direct_sound_samples/cries/skeledirge.bin" +.endif @ P_FAMILY_FUECOCO - .align 2 +.if P_FAMILY_QUAXLY == TRUE + .align 2 Cry_Quaxly:: - .incbin "sound/direct_sound_samples/cries/quaxly.bin" + .incbin "sound/direct_sound_samples/cries/quaxly.bin" - .align 2 + .align 2 Cry_Quaxwell:: - .incbin "sound/direct_sound_samples/cries/quaxwell.bin" + .incbin "sound/direct_sound_samples/cries/quaxwell.bin" - .align 2 + .align 2 Cry_Quaquaval:: - .incbin "sound/direct_sound_samples/cries/quaquaval.bin" + .incbin "sound/direct_sound_samples/cries/quaquaval.bin" +.endif @ P_FAMILY_QUAXLY - .align 2 +.if P_FAMILY_LECHONK == TRUE + .align 2 Cry_Lechonk:: - .incbin "sound/direct_sound_samples/cries/lechonk.bin" + .incbin "sound/direct_sound_samples/cries/lechonk.bin" - .align 2 -Cry_Oinkologne:: - .incbin "sound/direct_sound_samples/cries/oinkologne.bin" + .align 2 +Cry_OinkologneMale:: + .incbin "sound/direct_sound_samples/cries/oinkologne_male.bin" - .align 2 + .align 2 Cry_OinkologneFemale:: - .incbin "sound/direct_sound_samples/cries/oinkologne_female.bin" + .incbin "sound/direct_sound_samples/cries/oinkologne_female.bin" +.endif @ P_FAMILY_LECHONK - .align 2 +.if P_FAMILY_TAROUNTULA == TRUE + .align 2 Cry_Tarountula:: - .incbin "sound/direct_sound_samples/cries/tarountula.bin" + .incbin "sound/direct_sound_samples/cries/tarountula.bin" - .align 2 + .align 2 Cry_Spidops:: - .incbin "sound/direct_sound_samples/cries/spidops.bin" + .incbin "sound/direct_sound_samples/cries/spidops.bin" +.endif @ P_FAMILY_TAROUNTULA - .align 2 +.if P_FAMILY_NYMBLE == TRUE + .align 2 Cry_Nymble:: - .incbin "sound/direct_sound_samples/cries/nymble.bin" + .incbin "sound/direct_sound_samples/cries/nymble.bin" - .align 2 + .align 2 Cry_Lokix:: - .incbin "sound/direct_sound_samples/cries/lokix.bin" + .incbin "sound/direct_sound_samples/cries/lokix.bin" +.endif @ P_FAMILY_NYMBLE - .align 2 +.if P_FAMILY_PAWMI == TRUE + .align 2 Cry_Pawmi:: - .incbin "sound/direct_sound_samples/cries/pawmi.bin" + .incbin "sound/direct_sound_samples/cries/pawmi.bin" - .align 2 + .align 2 Cry_Pawmo:: - .incbin "sound/direct_sound_samples/cries/pawmo.bin" + .incbin "sound/direct_sound_samples/cries/pawmo.bin" - .align 2 + .align 2 Cry_Pawmot:: - .incbin "sound/direct_sound_samples/cries/pawmot.bin" + .incbin "sound/direct_sound_samples/cries/pawmot.bin" +.endif @ P_FAMILY_PAWMI - .align 2 +.if P_FAMILY_TANDEMAUS == TRUE + .align 2 Cry_Tandemaus:: - .incbin "sound/direct_sound_samples/cries/tandemaus.bin" + .incbin "sound/direct_sound_samples/cries/tandemaus.bin" - .align 2 -Cry_Maushold:: - .incbin "sound/direct_sound_samples/cries/maushold.bin" + .align 2 +Cry_MausholdFamilyOfThree:: + .incbin "sound/direct_sound_samples/cries/maushold_family_of_three.bin" - .align 2 + .align 2 Cry_MausholdFamilyOfFour:: - .incbin "sound/direct_sound_samples/cries/maushold_family_of_four.bin" + .incbin "sound/direct_sound_samples/cries/maushold_family_of_four.bin" +.endif @ P_FAMILY_TANDEMAUS - .align 2 +.if P_FAMILY_FIDOUGH == TRUE + .align 2 Cry_Fidough:: - .incbin "sound/direct_sound_samples/cries/fidough.bin" + .incbin "sound/direct_sound_samples/cries/fidough.bin" - .align 2 + .align 2 Cry_Dachsbun:: - .incbin "sound/direct_sound_samples/cries/dachsbun.bin" + .incbin "sound/direct_sound_samples/cries/dachsbun.bin" +.endif @ P_FAMILY_FIDOUGH - .align 2 +.if P_FAMILY_SMOLIV == TRUE + .align 2 Cry_Smoliv:: - .incbin "sound/direct_sound_samples/cries/smoliv.bin" + .incbin "sound/direct_sound_samples/cries/smoliv.bin" - .align 2 + .align 2 Cry_Dolliv:: - .incbin "sound/direct_sound_samples/cries/dolliv.bin" + .incbin "sound/direct_sound_samples/cries/dolliv.bin" - .align 2 + .align 2 Cry_Arboliva:: - .incbin "sound/direct_sound_samples/cries/arboliva.bin" + .incbin "sound/direct_sound_samples/cries/arboliva.bin" +.endif @ P_FAMILY_SMOLIV - .align 2 +.if P_FAMILY_SQUAWKABILLY == TRUE + .align 2 Cry_Squawkabilly:: - .incbin "sound/direct_sound_samples/cries/squawkabilly.bin" + .incbin "sound/direct_sound_samples/cries/squawkabilly.bin" +.endif @ P_FAMILY_SQUAWKABILLY - .align 2 +.if P_FAMILY_NACLI == TRUE + .align 2 Cry_Nacli:: - .incbin "sound/direct_sound_samples/cries/nacli.bin" + .incbin "sound/direct_sound_samples/cries/nacli.bin" - .align 2 + .align 2 Cry_Naclstack:: - .incbin "sound/direct_sound_samples/cries/naclstack.bin" + .incbin "sound/direct_sound_samples/cries/naclstack.bin" - .align 2 + .align 2 Cry_Garganacl:: - .incbin "sound/direct_sound_samples/cries/garganacl.bin" + .incbin "sound/direct_sound_samples/cries/garganacl.bin" +.endif @ P_FAMILY_NACLI - .align 2 +.if P_FAMILY_CHARCADET == TRUE + .align 2 Cry_Charcadet:: - .incbin "sound/direct_sound_samples/cries/charcadet.bin" + .incbin "sound/direct_sound_samples/cries/charcadet.bin" - .align 2 + .align 2 Cry_Armarouge:: - .incbin "sound/direct_sound_samples/cries/armarouge.bin" + .incbin "sound/direct_sound_samples/cries/armarouge.bin" - .align 2 + .align 2 Cry_Ceruledge:: - .incbin "sound/direct_sound_samples/cries/ceruledge.bin" + .incbin "sound/direct_sound_samples/cries/ceruledge.bin" +.endif @ P_FAMILY_CHARCADET - .align 2 +.if P_FAMILY_TADBULB == TRUE + .align 2 Cry_Tadbulb:: - .incbin "sound/direct_sound_samples/cries/tadbulb.bin" + .incbin "sound/direct_sound_samples/cries/tadbulb.bin" - .align 2 + .align 2 Cry_Bellibolt:: - .incbin "sound/direct_sound_samples/cries/bellibolt.bin" + .incbin "sound/direct_sound_samples/cries/bellibolt.bin" +.endif @ P_FAMILY_TADBULB - .align 2 +.if P_FAMILY_WATTREL == TRUE + .align 2 Cry_Wattrel:: - .incbin "sound/direct_sound_samples/cries/wattrel.bin" + .incbin "sound/direct_sound_samples/cries/wattrel.bin" - .align 2 + .align 2 Cry_Kilowattrel:: - .incbin "sound/direct_sound_samples/cries/kilowattrel.bin" + .incbin "sound/direct_sound_samples/cries/kilowattrel.bin" +.endif @ P_FAMILY_WATTREL - .align 2 +.if P_FAMILY_MASCHIFF == TRUE + .align 2 Cry_Maschiff:: - .incbin "sound/direct_sound_samples/cries/maschiff.bin" + .incbin "sound/direct_sound_samples/cries/maschiff.bin" - .align 2 + .align 2 Cry_Mabosstiff:: - .incbin "sound/direct_sound_samples/cries/mabosstiff.bin" + .incbin "sound/direct_sound_samples/cries/mabosstiff.bin" +.endif @ P_FAMILY_MASCHIFF - .align 2 +.if P_FAMILY_SHROODLE == TRUE + .align 2 Cry_Shroodle:: - .incbin "sound/direct_sound_samples/cries/shroodle.bin" + .incbin "sound/direct_sound_samples/cries/shroodle.bin" - .align 2 + .align 2 Cry_Grafaiai:: - .incbin "sound/direct_sound_samples/cries/grafaiai.bin" + .incbin "sound/direct_sound_samples/cries/grafaiai.bin" +.endif @ P_FAMILY_SHROODLE - .align 2 +.if P_FAMILY_BRAMBLIN == TRUE + .align 2 Cry_Bramblin:: - .incbin "sound/direct_sound_samples/cries/bramblin.bin" + .incbin "sound/direct_sound_samples/cries/bramblin.bin" - .align 2 + .align 2 Cry_Brambleghast:: - .incbin "sound/direct_sound_samples/cries/brambleghast.bin" + .incbin "sound/direct_sound_samples/cries/brambleghast.bin" +.endif @ P_FAMILY_BRAMBLIN - .align 2 +.if P_FAMILY_TOEDSCOOL == TRUE + .align 2 Cry_Toedscool:: - .incbin "sound/direct_sound_samples/cries/toedscool.bin" + .incbin "sound/direct_sound_samples/cries/toedscool.bin" - .align 2 + .align 2 Cry_Toedscruel:: - .incbin "sound/direct_sound_samples/cries/toedscruel.bin" + .incbin "sound/direct_sound_samples/cries/toedscruel.bin" +.endif @ P_FAMILY_TOEDSCOOL - .align 2 +.if P_FAMILY_KLAWF == TRUE + .align 2 Cry_Klawf:: - .incbin "sound/direct_sound_samples/cries/klawf.bin" + .incbin "sound/direct_sound_samples/cries/klawf.bin" +.endif @ P_FAMILY_KLAWF - .align 2 +.if P_FAMILY_CAPSAKID == TRUE + .align 2 Cry_Capsakid:: - .incbin "sound/direct_sound_samples/cries/capsakid.bin" + .incbin "sound/direct_sound_samples/cries/capsakid.bin" - .align 2 + .align 2 Cry_Scovillain:: - .incbin "sound/direct_sound_samples/cries/scovillain.bin" + .incbin "sound/direct_sound_samples/cries/scovillain.bin" +.endif @ P_FAMILY_CAPSAKID - .align 2 +.if P_FAMILY_RELLOR == TRUE + .align 2 Cry_Rellor:: - .incbin "sound/direct_sound_samples/cries/rellor.bin" + .incbin "sound/direct_sound_samples/cries/rellor.bin" - .align 2 + .align 2 Cry_Rabsca:: - .incbin "sound/direct_sound_samples/cries/rabsca.bin" + .incbin "sound/direct_sound_samples/cries/rabsca.bin" +.endif @ P_FAMILY_RELLOR - .align 2 +.if P_FAMILY_FLITTLE == TRUE + .align 2 Cry_Flittle:: - .incbin "sound/direct_sound_samples/cries/flittle.bin" + .incbin "sound/direct_sound_samples/cries/flittle.bin" - .align 2 + .align 2 Cry_Espathra:: - .incbin "sound/direct_sound_samples/cries/espathra.bin" + .incbin "sound/direct_sound_samples/cries/espathra.bin" +.endif @ P_FAMILY_FLITTLE - .align 2 +.if P_FAMILY_TINKATINK == TRUE + .align 2 Cry_Tinkatink:: - .incbin "sound/direct_sound_samples/cries/tinkatink.bin" + .incbin "sound/direct_sound_samples/cries/tinkatink.bin" - .align 2 + .align 2 Cry_Tinkatuff:: - .incbin "sound/direct_sound_samples/cries/tinkatuff.bin" + .incbin "sound/direct_sound_samples/cries/tinkatuff.bin" - .align 2 + .align 2 Cry_Tinkaton:: - .incbin "sound/direct_sound_samples/cries/tinkaton.bin" + .incbin "sound/direct_sound_samples/cries/tinkaton.bin" +.endif @ P_FAMILY_TINKATINK - .align 2 +.if P_FAMILY_WIGLETT == TRUE + .align 2 Cry_Wiglett:: - .incbin "sound/direct_sound_samples/cries/wiglett.bin" + .incbin "sound/direct_sound_samples/cries/wiglett.bin" - .align 2 + .align 2 Cry_Wugtrio:: - .incbin "sound/direct_sound_samples/cries/wugtrio.bin" + .incbin "sound/direct_sound_samples/cries/wugtrio.bin" +.endif @ P_FAMILY_WIGLETT - .align 2 +.if P_FAMILY_BOMBIRDIER == TRUE + .align 2 Cry_Bombirdier:: - .incbin "sound/direct_sound_samples/cries/bombirdier.bin" + .incbin "sound/direct_sound_samples/cries/bombirdier.bin" +.endif @ P_FAMILY_BOMBIRDIER - .align 2 +.if P_FAMILY_FINIZEN == TRUE + .align 2 Cry_Finizen:: - .incbin "sound/direct_sound_samples/cries/finizen.bin" + .incbin "sound/direct_sound_samples/cries/finizen.bin" - .align 2 -Cry_Palafin:: - .incbin "sound/direct_sound_samples/cries/palafin.bin" + .align 2 +Cry_PalafinZero:: + .incbin "sound/direct_sound_samples/cries/palafin_zero.bin" - .align 2 + .align 2 Cry_PalafinHero:: - .incbin "sound/direct_sound_samples/cries/palafin_hero.bin" + .incbin "sound/direct_sound_samples/cries/palafin_hero.bin" +.endif @ P_FAMILY_FINIZEN - .align 2 +.if P_FAMILY_VAROOM == TRUE + .align 2 Cry_Varoom:: - .incbin "sound/direct_sound_samples/cries/varoom.bin" + .incbin "sound/direct_sound_samples/cries/varoom.bin" - .align 2 + .align 2 Cry_Revavroom:: - .incbin "sound/direct_sound_samples/cries/revavroom.bin" + .incbin "sound/direct_sound_samples/cries/revavroom.bin" +.endif @ P_FAMILY_VAROOM - .align 2 +.if P_FAMILY_CYCLIZAR == TRUE + .align 2 Cry_Cyclizar:: - .incbin "sound/direct_sound_samples/cries/cyclizar.bin" + .incbin "sound/direct_sound_samples/cries/cyclizar.bin" +.endif @ P_FAMILY_CYCLIZAR - .align 2 +.if P_FAMILY_ORTHWORM == TRUE + .align 2 Cry_Orthworm:: - .incbin "sound/direct_sound_samples/cries/orthworm.bin" + .incbin "sound/direct_sound_samples/cries/orthworm.bin" +.endif @ P_FAMILY_ORTHWORM - .align 2 +.if P_FAMILY_GLIMMET == TRUE + .align 2 Cry_Glimmet:: - .incbin "sound/direct_sound_samples/cries/glimmet.bin" + .incbin "sound/direct_sound_samples/cries/glimmet.bin" - .align 2 + .align 2 Cry_Glimmora:: - .incbin "sound/direct_sound_samples/cries/glimmora.bin" + .incbin "sound/direct_sound_samples/cries/glimmora.bin" +.endif @ P_FAMILY_GLIMMET - .align 2 +.if P_FAMILY_GREAVARD == TRUE + .align 2 Cry_Greavard:: - .incbin "sound/direct_sound_samples/cries/greavard.bin" + .incbin "sound/direct_sound_samples/cries/greavard.bin" - .align 2 + .align 2 Cry_Houndstone:: - .incbin "sound/direct_sound_samples/cries/houndstone.bin" + .incbin "sound/direct_sound_samples/cries/houndstone.bin" +.endif @ P_FAMILY_GREAVARD - .align 2 +.if P_FAMILY_FLAMIGO == TRUE + .align 2 Cry_Flamigo:: - .incbin "sound/direct_sound_samples/cries/flamigo.bin" + .incbin "sound/direct_sound_samples/cries/flamigo.bin" +.endif @ P_FAMILY_FLAMIGO - .align 2 +.if P_FAMILY_CETODDLE == TRUE + .align 2 Cry_Cetoddle:: - .incbin "sound/direct_sound_samples/cries/cetoddle.bin" + .incbin "sound/direct_sound_samples/cries/cetoddle.bin" - .align 2 + .align 2 Cry_Cetitan:: - .incbin "sound/direct_sound_samples/cries/cetitan.bin" + .incbin "sound/direct_sound_samples/cries/cetitan.bin" +.endif @ P_FAMILY_CETODDLE - .align 2 +.if P_FAMILY_VELUZA == TRUE + .align 2 Cry_Veluza:: - .incbin "sound/direct_sound_samples/cries/veluza.bin" + .incbin "sound/direct_sound_samples/cries/veluza.bin" +.endif @ P_FAMILY_VELUZA - .align 2 +.if P_FAMILY_DONDOZO == TRUE + .align 2 Cry_Dondozo:: - .incbin "sound/direct_sound_samples/cries/dondozo.bin" + .incbin "sound/direct_sound_samples/cries/dondozo.bin" +.endif @ P_FAMILY_DONDOZO - .align 2 -Cry_Tatsugiri:: - .incbin "sound/direct_sound_samples/cries/tatsugiri.bin" +.if P_FAMILY_TATSUGIRI == TRUE + .align 2 +Cry_TatsugiriCurly:: + .incbin "sound/direct_sound_samples/cries/tatsugiri_curly.bin" - .align 2 + .align 2 Cry_TatsugiriDroopy:: - .incbin "sound/direct_sound_samples/cries/tatsugiri_droopy.bin" + .incbin "sound/direct_sound_samples/cries/tatsugiri_droopy.bin" - .align 2 + .align 2 Cry_TatsugiriStretchy:: - .incbin "sound/direct_sound_samples/cries/tatsugiri_stretchy.bin" + .incbin "sound/direct_sound_samples/cries/tatsugiri_stretchy.bin" +.endif @ P_FAMILY_TATSUGIRI - .align 2 -Cry_Annihilape:: - .incbin "sound/direct_sound_samples/cries/annihilape.bin" - - .align 2 -Cry_Clodsire:: - .incbin "sound/direct_sound_samples/cries/clodsire.bin" - - .align 2 -Cry_Farigiraf:: - .incbin "sound/direct_sound_samples/cries/farigiraf.bin" - - .align 2 -Cry_Dudunsparce:: - .incbin "sound/direct_sound_samples/cries/dudunsparce.bin" - - .align 2 -Cry_Kingambit:: - .incbin "sound/direct_sound_samples/cries/kingambit.bin" - - .align 2 +.if P_FAMILY_GREAT_TUSK == TRUE + .align 2 Cry_GreatTusk:: - .incbin "sound/direct_sound_samples/cries/greattusk.bin" + .incbin "sound/direct_sound_samples/cries/great_tusk.bin" +.endif @ P_FAMILY_GREAT_TUSK - .align 2 +.if P_FAMILY_SCREAM_TAIL == TRUE + .align 2 Cry_ScreamTail:: - .incbin "sound/direct_sound_samples/cries/screamtail.bin" + .incbin "sound/direct_sound_samples/cries/scream_tail.bin" +.endif @ P_FAMILY_SCREAM_TAIL - .align 2 +.if P_FAMILY_BRUTE_BONNET == TRUE + .align 2 Cry_BruteBonnet:: - .incbin "sound/direct_sound_samples/cries/brutebonnet.bin" + .incbin "sound/direct_sound_samples/cries/brute_bonnet.bin" +.endif @ P_FAMILY_BRUTE_BONNET - .align 2 +.if P_FAMILY_FLUTTER_MANE == TRUE + .align 2 Cry_FlutterMane:: - .incbin "sound/direct_sound_samples/cries/fluttermane.bin" + .incbin "sound/direct_sound_samples/cries/flutter_mane.bin" +.endif @ P_FAMILY_FLUTTER_MANE - .align 2 +.if P_FAMILY_SLITHER_WING == TRUE + .align 2 Cry_SlitherWing:: - .incbin "sound/direct_sound_samples/cries/slitherwing.bin" + .incbin "sound/direct_sound_samples/cries/slither_wing.bin" +.endif @ P_FAMILY_SLITHER_WING - .align 2 +.if P_FAMILY_SANDY_SHOCKS == TRUE + .align 2 Cry_SandyShocks:: - .incbin "sound/direct_sound_samples/cries/sandyshocks.bin" + .incbin "sound/direct_sound_samples/cries/sandy_shocks.bin" +.endif @ P_FAMILY_SANDY_SHOCKS - .align 2 +.if P_FAMILY_IRON_TREADS == TRUE + .align 2 Cry_IronTreads:: - .incbin "sound/direct_sound_samples/cries/irontreads.bin" + .incbin "sound/direct_sound_samples/cries/iron_treads.bin" +.endif @ P_FAMILY_IRON_TREADS - .align 2 +.if P_FAMILY_IRON_BUNDLE == TRUE + .align 2 Cry_IronBundle:: - .incbin "sound/direct_sound_samples/cries/ironbundle.bin" + .incbin "sound/direct_sound_samples/cries/iron_bundle.bin" +.endif @ P_FAMILY_IRON_BUNDLE - .align 2 +.if P_FAMILY_IRON_HANDS == TRUE + .align 2 Cry_IronHands:: - .incbin "sound/direct_sound_samples/cries/ironhands.bin" + .incbin "sound/direct_sound_samples/cries/iron_hands.bin" +.endif @ P_FAMILY_IRON_HANDS - .align 2 +.if P_FAMILY_IRON_JUGULIS == TRUE + .align 2 Cry_IronJugulis:: - .incbin "sound/direct_sound_samples/cries/ironjugulis.bin" + .incbin "sound/direct_sound_samples/cries/iron_jugulis.bin" +.endif @ P_FAMILY_IRON_JUGULIS - .align 2 +.if P_FAMILY_IRON_MOTH == TRUE + .align 2 Cry_IronMoth:: - .incbin "sound/direct_sound_samples/cries/ironmoth.bin" + .incbin "sound/direct_sound_samples/cries/iron_moth.bin" +.endif @ P_FAMILY_IRON_MOTH - .align 2 +.if P_FAMILY_IRON_THORNS == TRUE + .align 2 Cry_IronThorns:: - .incbin "sound/direct_sound_samples/cries/ironthorns.bin" + .incbin "sound/direct_sound_samples/cries/iron_thorns.bin" +.endif @ P_FAMILY_IRON_THORNS - .align 2 +.if P_FAMILY_FRIGIBAX == TRUE + .align 2 Cry_Frigibax:: - .incbin "sound/direct_sound_samples/cries/frigibax.bin" + .incbin "sound/direct_sound_samples/cries/frigibax.bin" - .align 2 + .align 2 Cry_Arctibax:: - .incbin "sound/direct_sound_samples/cries/arctibax.bin" + .incbin "sound/direct_sound_samples/cries/arctibax.bin" - .align 2 + .align 2 Cry_Baxcalibur:: - .incbin "sound/direct_sound_samples/cries/baxcalibur.bin" + .incbin "sound/direct_sound_samples/cries/baxcalibur.bin" +.endif @ P_FAMILY_FRIGIBAX - .align 2 +.if P_FAMILY_GIMMIGHOUL == TRUE + .align 2 Cry_Gimmighoul:: - .incbin "sound/direct_sound_samples/cries/gimmighoul.bin" + .incbin "sound/direct_sound_samples/cries/gimmighoul.bin" - .align 2 + .align 2 Cry_Gholdengo:: - .incbin "sound/direct_sound_samples/cries/gholdengo.bin" + .incbin "sound/direct_sound_samples/cries/gholdengo.bin" +.endif @ P_FAMILY_GIMMIGHOUL - .align 2 +.if P_FAMILY_WO_CHIEN == TRUE + .align 2 Cry_WoChien:: - .incbin "sound/direct_sound_samples/cries/wochien.bin" + .incbin "sound/direct_sound_samples/cries/wo_chien.bin" +.endif @ P_FAMILY_WO_CHIEN - .align 2 +.if P_FAMILY_CHIEN_PAO == TRUE + .align 2 Cry_ChienPao:: - .incbin "sound/direct_sound_samples/cries/chienpao.bin" + .incbin "sound/direct_sound_samples/cries/chien_pao.bin" +.endif @ P_FAMILY_CHIEN_PAO - .align 2 +.if P_FAMILY_TING_LU == TRUE + .align 2 Cry_TingLu:: - .incbin "sound/direct_sound_samples/cries/tinglu.bin" + .incbin "sound/direct_sound_samples/cries/ting_lu.bin" +.endif @ P_FAMILY_TING_LU - .align 2 +.if P_FAMILY_CHI_YU == TRUE + .align 2 Cry_ChiYu:: - .incbin "sound/direct_sound_samples/cries/chiyu.bin" + .incbin "sound/direct_sound_samples/cries/chi_yu.bin" +.endif @ P_FAMILY_CHI_YU - .align 2 +.if P_FAMILY_ROARING_MOON == TRUE + .align 2 Cry_RoaringMoon:: - .incbin "sound/direct_sound_samples/cries/roaringmoon.bin" + .incbin "sound/direct_sound_samples/cries/roaring_moon.bin" +.endif @ P_FAMILY_ROARING_MOON - .align 2 +.if P_FAMILY_IRON_VALIANT == TRUE + .align 2 Cry_IronValiant:: - .incbin "sound/direct_sound_samples/cries/ironvaliant.bin" + .incbin "sound/direct_sound_samples/cries/iron_valiant.bin" +.endif @ P_FAMILY_IRON_VALIANT - .align 2 +.if P_FAMILY_KORAIDON == TRUE + .align 2 Cry_Koraidon:: - .incbin "sound/direct_sound_samples/cries/koraidon.bin" + .incbin "sound/direct_sound_samples/cries/koraidon.bin" +.endif @ P_FAMILY_KORAIDON - .align 2 +.if P_FAMILY_MIRAIDON == TRUE + .align 2 Cry_Miraidon:: - .incbin "sound/direct_sound_samples/cries/miraidon.bin" + .incbin "sound/direct_sound_samples/cries/miraidon.bin" +.endif @ P_FAMILY_MIRAIDON - .align 2 +.if P_FAMILY_WALKING_WAKE == TRUE + .align 2 Cry_WalkingWake:: - .incbin "sound/direct_sound_samples/cries/walkingwake.bin" + .incbin "sound/direct_sound_samples/cries/walking_wake.bin" +.endif @ P_FAMILY_WALKING_WAKE - .align 2 +.if P_FAMILY_IRON_LEAVES == TRUE + .align 2 Cry_IronLeaves:: - .incbin "sound/direct_sound_samples/cries/ironleaves.bin" + .incbin "sound/direct_sound_samples/cries/iron_leaves.bin" +.endif @ P_FAMILY_IRON_LEAVES - .align 2 -Cry_Dipplin:: - .incbin "sound/direct_sound_samples/cries/dipplin.bin" - - .align 2 +.if P_FAMILY_POLTCHAGEIST == TRUE + .align 2 Cry_Poltchageist:: - .incbin "sound/direct_sound_samples/cries/poltchageist.bin" + .incbin "sound/direct_sound_samples/cries/poltchageist.bin" - .align 2 + .align 2 Cry_Sinistcha:: - .incbin "sound/direct_sound_samples/cries/sinistcha.bin" + .incbin "sound/direct_sound_samples/cries/sinistcha.bin" +.endif @ P_FAMILY_POLTCHAGEIST - .align 2 +.if P_FAMILY_OKIDOGI == TRUE + .align 2 Cry_Okidogi:: - .incbin "sound/direct_sound_samples/cries/okidogi.bin" + .incbin "sound/direct_sound_samples/cries/okidogi.bin" +.endif @ P_FAMILY_OKIDOGI - .align 2 +.if P_FAMILY_MUNKIDORI == TRUE + .align 2 Cry_Munkidori:: - .incbin "sound/direct_sound_samples/cries/munkidori.bin" + .incbin "sound/direct_sound_samples/cries/munkidori.bin" +.endif @ P_FAMILY_MUNKIDORI - .align 2 +.if P_FAMILY_FEZANDIPITI == TRUE + .align 2 Cry_Fezandipiti:: - .incbin "sound/direct_sound_samples/cries/fezandipiti.bin" + .incbin "sound/direct_sound_samples/cries/fezandipiti.bin" +.endif @ P_FAMILY_FEZANDIPITI - .align 2 +.if P_FAMILY_OGERPON == TRUE + .align 2 Cry_Ogerpon:: - .incbin "sound/direct_sound_samples/cries/ogerpon.bin" - -.endif + .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/mega_abomasnow.aif b/sound/direct_sound_samples/cries/abomasnow_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_abomasnow.aif rename to sound/direct_sound_samples/cries/abomasnow_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_absol.aif b/sound/direct_sound_samples/cries/absol_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_absol.aif rename to sound/direct_sound_samples/cries/absol_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_aerodactyl.aif b/sound/direct_sound_samples/cries/aerodactyl_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_aerodactyl.aif rename to sound/direct_sound_samples/cries/aerodactyl_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_aggron.aif b/sound/direct_sound_samples/cries/aggron_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_aggron.aif rename to sound/direct_sound_samples/cries/aggron_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_alakazam.aif b/sound/direct_sound_samples/cries/alakazam_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_alakazam.aif rename to sound/direct_sound_samples/cries/alakazam_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_altaria.aif b/sound/direct_sound_samples/cries/altaria_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_altaria.aif rename to sound/direct_sound_samples/cries/altaria_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_ampharos.aif b/sound/direct_sound_samples/cries/ampharos_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_ampharos.aif rename to sound/direct_sound_samples/cries/ampharos_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_audino.aif b/sound/direct_sound_samples/cries/audino_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_audino.aif rename to sound/direct_sound_samples/cries/audino_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_banette.aif b/sound/direct_sound_samples/cries/banette_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_banette.aif rename to sound/direct_sound_samples/cries/banette_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_beedrill.aif b/sound/direct_sound_samples/cries/beedrill_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_beedrill.aif rename to sound/direct_sound_samples/cries/beedrill_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_blastoise.aif b/sound/direct_sound_samples/cries/blastoise_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_blastoise.aif rename to sound/direct_sound_samples/cries/blastoise_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_blaziken.aif b/sound/direct_sound_samples/cries/blaziken_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_blaziken.aif rename to sound/direct_sound_samples/cries/blaziken_mega.aif diff --git a/sound/direct_sound_samples/cries/brutebonnet.aif b/sound/direct_sound_samples/cries/brute_bonnet.aif similarity index 100% rename from sound/direct_sound_samples/cries/brutebonnet.aif rename to sound/direct_sound_samples/cries/brute_bonnet.aif diff --git a/sound/direct_sound_samples/cries/mega_camerupt.aif b/sound/direct_sound_samples/cries/camerupt_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_camerupt.aif rename to sound/direct_sound_samples/cries/camerupt_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_charizard_x.aif b/sound/direct_sound_samples/cries/charizard_mega_x.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_charizard_x.aif rename to sound/direct_sound_samples/cries/charizard_mega_x.aif diff --git a/sound/direct_sound_samples/cries/mega_charizard_y.aif b/sound/direct_sound_samples/cries/charizard_mega_y.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_charizard_y.aif rename to sound/direct_sound_samples/cries/charizard_mega_y.aif diff --git a/sound/direct_sound_samples/cries/chiyu.aif b/sound/direct_sound_samples/cries/chi_yu.aif similarity index 100% rename from sound/direct_sound_samples/cries/chiyu.aif rename to sound/direct_sound_samples/cries/chi_yu.aif diff --git a/sound/direct_sound_samples/cries/chienpao.aif b/sound/direct_sound_samples/cries/chien_pao.aif similarity index 100% rename from sound/direct_sound_samples/cries/chienpao.aif rename to sound/direct_sound_samples/cries/chien_pao.aif diff --git a/sound/direct_sound_samples/cries/mega_diancie.aif b/sound/direct_sound_samples/cries/diancie_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_diancie.aif rename to sound/direct_sound_samples/cries/diancie_mega.aif 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/enamorus.aif b/sound/direct_sound_samples/cries/enamorus_incarnate.aif similarity index 100% rename from sound/direct_sound_samples/cries/enamorus.aif rename to sound/direct_sound_samples/cries/enamorus_incarnate.aif diff --git a/sound/direct_sound_samples/cries/fluttermane.aif b/sound/direct_sound_samples/cries/flutter_mane.aif similarity index 100% rename from sound/direct_sound_samples/cries/fluttermane.aif rename to sound/direct_sound_samples/cries/flutter_mane.aif diff --git a/sound/direct_sound_samples/cries/mega_gallade.aif b/sound/direct_sound_samples/cries/gallade_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_gallade.aif rename to sound/direct_sound_samples/cries/gallade_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_garchomp.aif b/sound/direct_sound_samples/cries/garchomp_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_garchomp.aif rename to sound/direct_sound_samples/cries/garchomp_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_gardevoir.aif b/sound/direct_sound_samples/cries/gardevoir_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_gardevoir.aif rename to sound/direct_sound_samples/cries/gardevoir_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_gengar.aif b/sound/direct_sound_samples/cries/gengar_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_gengar.aif rename to sound/direct_sound_samples/cries/gengar_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_glalie.aif b/sound/direct_sound_samples/cries/glalie_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_glalie.aif rename to sound/direct_sound_samples/cries/glalie_mega.aif diff --git a/sound/direct_sound_samples/cries/greattusk.aif b/sound/direct_sound_samples/cries/great_tusk.aif similarity index 100% rename from sound/direct_sound_samples/cries/greattusk.aif rename to sound/direct_sound_samples/cries/great_tusk.aif diff --git a/sound/direct_sound_samples/cries/primal_groudon.aif b/sound/direct_sound_samples/cries/groudon_primal.aif similarity index 100% rename from sound/direct_sound_samples/cries/primal_groudon.aif rename to sound/direct_sound_samples/cries/groudon_primal.aif diff --git a/sound/direct_sound_samples/cries/mega_gyarados.aif b/sound/direct_sound_samples/cries/gyarados_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_gyarados.aif rename to sound/direct_sound_samples/cries/gyarados_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_heracross.aif b/sound/direct_sound_samples/cries/heracross_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_heracross.aif rename to sound/direct_sound_samples/cries/heracross_mega.aif 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/mega_houndoom.aif b/sound/direct_sound_samples/cries/houndoom_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_houndoom.aif rename to sound/direct_sound_samples/cries/houndoom_mega.aif 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/ironbundle.aif b/sound/direct_sound_samples/cries/iron_bundle.aif similarity index 100% rename from sound/direct_sound_samples/cries/ironbundle.aif rename to sound/direct_sound_samples/cries/iron_bundle.aif diff --git a/sound/direct_sound_samples/cries/ironhands.aif b/sound/direct_sound_samples/cries/iron_hands.aif similarity index 100% rename from sound/direct_sound_samples/cries/ironhands.aif rename to sound/direct_sound_samples/cries/iron_hands.aif diff --git a/sound/direct_sound_samples/cries/ironjugulis.aif b/sound/direct_sound_samples/cries/iron_jugulis.aif similarity index 100% rename from sound/direct_sound_samples/cries/ironjugulis.aif rename to sound/direct_sound_samples/cries/iron_jugulis.aif diff --git a/sound/direct_sound_samples/cries/ironleaves.aif b/sound/direct_sound_samples/cries/iron_leaves.aif similarity index 100% rename from sound/direct_sound_samples/cries/ironleaves.aif rename to sound/direct_sound_samples/cries/iron_leaves.aif diff --git a/sound/direct_sound_samples/cries/ironmoth.aif b/sound/direct_sound_samples/cries/iron_moth.aif similarity index 100% rename from sound/direct_sound_samples/cries/ironmoth.aif rename to sound/direct_sound_samples/cries/iron_moth.aif diff --git a/sound/direct_sound_samples/cries/ironthorns.aif b/sound/direct_sound_samples/cries/iron_thorns.aif similarity index 100% rename from sound/direct_sound_samples/cries/ironthorns.aif rename to sound/direct_sound_samples/cries/iron_thorns.aif diff --git a/sound/direct_sound_samples/cries/irontreads.aif b/sound/direct_sound_samples/cries/iron_treads.aif similarity index 100% rename from sound/direct_sound_samples/cries/irontreads.aif rename to sound/direct_sound_samples/cries/iron_treads.aif diff --git a/sound/direct_sound_samples/cries/ironvaliant.aif b/sound/direct_sound_samples/cries/iron_valiant.aif similarity index 100% rename from sound/direct_sound_samples/cries/ironvaliant.aif rename to sound/direct_sound_samples/cries/iron_valiant.aif diff --git a/sound/direct_sound_samples/cries/mega_kangaskhan.aif b/sound/direct_sound_samples/cries/kangaskhan_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_kangaskhan.aif rename to sound/direct_sound_samples/cries/kangaskhan_mega.aif diff --git a/sound/direct_sound_samples/cries/primal_kyogre.aif b/sound/direct_sound_samples/cries/kyogre_primal.aif similarity index 100% rename from sound/direct_sound_samples/cries/primal_kyogre.aif rename to sound/direct_sound_samples/cries/kyogre_primal.aif diff --git a/sound/direct_sound_samples/cries/landorus.aif b/sound/direct_sound_samples/cries/landorus_incarnate.aif similarity index 100% rename from sound/direct_sound_samples/cries/landorus.aif rename to sound/direct_sound_samples/cries/landorus_incarnate.aif diff --git a/sound/direct_sound_samples/cries/mega_latias.aif b/sound/direct_sound_samples/cries/latias_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_latias.aif rename to sound/direct_sound_samples/cries/latias_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_latios.aif b/sound/direct_sound_samples/cries/latios_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_latios.aif rename to sound/direct_sound_samples/cries/latios_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_lopunny.aif b/sound/direct_sound_samples/cries/lopunny_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_lopunny.aif rename to sound/direct_sound_samples/cries/lopunny_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_lucario.aif b/sound/direct_sound_samples/cries/lucario_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_lucario.aif rename to sound/direct_sound_samples/cries/lucario_mega.aif 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/mega_manectric.aif b/sound/direct_sound_samples/cries/manectric_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_manectric.aif rename to sound/direct_sound_samples/cries/manectric_mega.aif diff --git a/sound/direct_sound_samples/cries/maushold.aif b/sound/direct_sound_samples/cries/maushold_family_of_three.aif similarity index 100% rename from sound/direct_sound_samples/cries/maushold.aif rename to sound/direct_sound_samples/cries/maushold_family_of_three.aif diff --git a/sound/direct_sound_samples/cries/mega_mawile.aif b/sound/direct_sound_samples/cries/mawile_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_mawile.aif rename to sound/direct_sound_samples/cries/mawile_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_medicham.aif b/sound/direct_sound_samples/cries/medicham_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_medicham.aif rename to sound/direct_sound_samples/cries/medicham_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_metagross.aif b/sound/direct_sound_samples/cries/metagross_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_metagross.aif rename to sound/direct_sound_samples/cries/metagross_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_mewtwo_x.aif b/sound/direct_sound_samples/cries/mewtwo_mega_x.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_mewtwo_x.aif rename to sound/direct_sound_samples/cries/mewtwo_mega_x.aif diff --git a/sound/direct_sound_samples/cries/mega_mewtwo_y.aif b/sound/direct_sound_samples/cries/mewtwo_mega_y.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_mewtwo_y.aif rename to sound/direct_sound_samples/cries/mewtwo_mega_y.aif diff --git a/sound/direct_sound_samples/cries/morpeko.aif b/sound/direct_sound_samples/cries/morpeko_full_belly.aif similarity index 100% rename from sound/direct_sound_samples/cries/morpeko.aif rename to sound/direct_sound_samples/cries/morpeko_full_belly.aif diff --git a/sound/direct_sound_samples/cries/oinkologne.aif b/sound/direct_sound_samples/cries/oinkologne_male.aif similarity index 100% rename from sound/direct_sound_samples/cries/oinkologne.aif rename to sound/direct_sound_samples/cries/oinkologne_male.aif 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/palafin.aif b/sound/direct_sound_samples/cries/palafin_zero.aif similarity index 100% rename from sound/direct_sound_samples/cries/palafin.aif rename to sound/direct_sound_samples/cries/palafin_zero.aif diff --git a/sound/direct_sound_samples/cries/mega_pidgeot.aif b/sound/direct_sound_samples/cries/pidgeot_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_pidgeot.aif rename to sound/direct_sound_samples/cries/pidgeot_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_pinsir.aif b/sound/direct_sound_samples/cries/pinsir_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_pinsir.aif rename to sound/direct_sound_samples/cries/pinsir_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_rayquaza.aif b/sound/direct_sound_samples/cries/rayquaza_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_rayquaza.aif rename to sound/direct_sound_samples/cries/rayquaza_mega.aif diff --git a/sound/direct_sound_samples/cries/roaringmoon.aif b/sound/direct_sound_samples/cries/roaring_moon.aif similarity index 100% rename from sound/direct_sound_samples/cries/roaringmoon.aif rename to sound/direct_sound_samples/cries/roaring_moon.aif diff --git a/sound/direct_sound_samples/cries/mega_sableye.aif b/sound/direct_sound_samples/cries/sableye_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_sableye.aif rename to sound/direct_sound_samples/cries/sableye_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_salamence.aif b/sound/direct_sound_samples/cries/salamence_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_salamence.aif rename to sound/direct_sound_samples/cries/salamence_mega.aif diff --git a/sound/direct_sound_samples/cries/sandyshocks.aif b/sound/direct_sound_samples/cries/sandy_shocks.aif similarity index 100% rename from sound/direct_sound_samples/cries/sandyshocks.aif rename to sound/direct_sound_samples/cries/sandy_shocks.aif diff --git a/sound/direct_sound_samples/cries/mega_sceptile.aif b/sound/direct_sound_samples/cries/sceptile_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_sceptile.aif rename to sound/direct_sound_samples/cries/sceptile_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_scizor.aif b/sound/direct_sound_samples/cries/scizor_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_scizor.aif rename to sound/direct_sound_samples/cries/scizor_mega.aif diff --git a/sound/direct_sound_samples/cries/screamtail.aif b/sound/direct_sound_samples/cries/scream_tail.aif similarity index 100% rename from sound/direct_sound_samples/cries/screamtail.aif rename to sound/direct_sound_samples/cries/scream_tail.aif diff --git a/sound/direct_sound_samples/cries/mega_sharpedo.aif b/sound/direct_sound_samples/cries/sharpedo_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_sharpedo.aif rename to sound/direct_sound_samples/cries/sharpedo_mega.aif 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/slitherwing.aif b/sound/direct_sound_samples/cries/slither_wing.aif similarity index 100% rename from sound/direct_sound_samples/cries/slitherwing.aif rename to sound/direct_sound_samples/cries/slither_wing.aif diff --git a/sound/direct_sound_samples/cries/mega_slowbro.aif b/sound/direct_sound_samples/cries/slowbro_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_slowbro.aif rename to sound/direct_sound_samples/cries/slowbro_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_steelix.aif b/sound/direct_sound_samples/cries/steelix_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_steelix.aif rename to sound/direct_sound_samples/cries/steelix_mega.aif diff --git a/sound/direct_sound_samples/cries/mega_swampert.aif b/sound/direct_sound_samples/cries/swampert_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_swampert.aif rename to sound/direct_sound_samples/cries/swampert_mega.aif diff --git a/sound/direct_sound_samples/cries/tatsugiri.aif b/sound/direct_sound_samples/cries/tatsugiri_curly.aif similarity index 100% rename from sound/direct_sound_samples/cries/tatsugiri.aif rename to sound/direct_sound_samples/cries/tatsugiri_curly.aif 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/tinglu.aif b/sound/direct_sound_samples/cries/ting_lu.aif similarity index 100% rename from sound/direct_sound_samples/cries/tinglu.aif rename to sound/direct_sound_samples/cries/ting_lu.aif diff --git a/sound/direct_sound_samples/cries/tornadus.aif b/sound/direct_sound_samples/cries/tornadus_incarnate.aif similarity index 100% rename from sound/direct_sound_samples/cries/tornadus.aif rename to sound/direct_sound_samples/cries/tornadus_incarnate.aif 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/mega_tyranitar.aif b/sound/direct_sound_samples/cries/tyranitar_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_tyranitar.aif rename to sound/direct_sound_samples/cries/tyranitar_mega.aif 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/mega_venusaur.aif b/sound/direct_sound_samples/cries/venusaur_mega.aif similarity index 100% rename from sound/direct_sound_samples/cries/mega_venusaur.aif rename to sound/direct_sound_samples/cries/venusaur_mega.aif diff --git a/sound/direct_sound_samples/cries/walkingwake.aif b/sound/direct_sound_samples/cries/walking_wake.aif similarity index 100% rename from sound/direct_sound_samples/cries/walkingwake.aif rename to sound/direct_sound_samples/cries/walking_wake.aif 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/wochien.aif b/sound/direct_sound_samples/cries/wo_chien.aif similarity index 100% rename from sound/direct_sound_samples/cries/wochien.aif rename to sound/direct_sound_samples/cries/wo_chien.aif 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.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/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 e7d67a43e2..dc7ac92a86 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 969deb5f23..fdfb2bd9b8 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -578,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) @@ -849,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: @@ -857,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: @@ -876,6 +877,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; // fallthrough case ABILITY_KEEN_EYE: + case ABILITY_MINDS_EYE: if (moveEffect == EFFECT_ACCURACY_DOWN || moveEffect == EFFECT_ACCURACY_DOWN_2) RETURN_SCORE_MINUS(10); break; @@ -885,7 +887,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: @@ -926,7 +928,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: @@ -1044,7 +1046,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_ATTACK_UP: case EFFECT_ATTACK_UP_2: case EFFECT_ATTACK_UP_USER_ALLY: - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); break; case EFFECT_STUFF_CHEEKS: @@ -1061,7 +1063,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_SPECIAL_ATTACK_UP: case EFFECT_SPECIAL_ATTACK_UP_2: case EFFECT_SPECIAL_ATTACK_UP_3: - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL)) ADJUST_SCORE(-10); break; case EFFECT_SPECIAL_DEFENSE_UP: @@ -1087,7 +1089,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-8); break; case EFFECT_BULK_UP: - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_DEF)) ADJUST_SCORE(-8); @@ -1099,7 +1101,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-8); break; case EFFECT_DRAGON_DANCE: - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPEED)) ADJUST_SCORE(-8); @@ -1107,7 +1109,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_COIL: if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ACC)) ADJUST_SCORE(-10); - else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-8); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_DEF)) ADJUST_SCORE(-6); @@ -1116,7 +1118,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (aiData->abilities[battlerAtk] != ABILITY_CONTRARY) { if (gBattleMons[battlerAtk].statStages[STAT_ATK] >= MAX_STAT_STAGE - && (gBattleMons[battlerAtk].statStages[STAT_ACC] >= MAX_STAT_STAGE || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL))) + && (gBattleMons[battlerAtk].statStages[STAT_ACC] >= MAX_STAT_STAGE || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL))) ADJUST_SCORE(-10); break; } @@ -1136,7 +1138,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case EFFECT_QUIVER_DANCE: case EFFECT_GEOMANCY: - if (gBattleMons[battlerAtk].statStages[STAT_SPATK] >= MAX_STAT_STAGE || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + if (gBattleMons[battlerAtk].statStages[STAT_SPATK] >= MAX_STAT_STAGE || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL)) ADJUST_SCORE(-10); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPEED)) ADJUST_SCORE(-8); @@ -1144,7 +1146,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-6); break; case EFFECT_VICTORY_DANCE: - if (gBattleMons[battlerAtk].statStages[STAT_ATK] >= MAX_STAT_STAGE || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (gBattleMons[battlerAtk].statStages[STAT_ATK] >= MAX_STAT_STAGE || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPEED)) ADJUST_SCORE(-8); @@ -1152,7 +1154,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-6); break; case EFFECT_SHIFT_GEAR: - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPEED)) ADJUST_SCORE(-8); @@ -1167,9 +1169,9 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) } else { - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); - else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL)) ADJUST_SCORE(-8); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPEED)) ADJUST_SCORE(-6); @@ -1207,9 +1209,9 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (aiData->abilities[battlerAtk] == ABILITY_PLUS || aiData->abilities[battlerAtk] == ABILITY_MINUS) { // same as growth, work up - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); - else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL)) ADJUST_SCORE(-8); break; } @@ -1222,8 +1224,8 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) { if (aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_PLUS || aiData->abilities[BATTLE_PARTNER(battlerAtk)] == ABILITY_MINUS) { - if ((!BattlerStatCanRise(BATTLE_PARTNER(battlerAtk), aiData->abilities[BATTLE_PARTNER(battlerAtk)], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) - && (!BattlerStatCanRise(BATTLE_PARTNER(battlerAtk), aiData->abilities[BATTLE_PARTNER(battlerAtk)], STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL))) + if ((!BattlerStatCanRise(BATTLE_PARTNER(battlerAtk), aiData->abilities[BATTLE_PARTNER(battlerAtk)], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) + && (!BattlerStatCanRise(BATTLE_PARTNER(battlerAtk), aiData->abilities[BATTLE_PARTNER(battlerAtk)], STAT_SPATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL))) ADJUST_SCORE(-10); } else if (aiData->abilities[battlerAtk] != ABILITY_PLUS && aiData->abilities[battlerAtk] != ABILITY_MINUS) @@ -1267,7 +1269,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) // stat lowering effects case EFFECT_ATTACK_DOWN: case EFFECT_ATTACK_DOWN_2: - if (!ShouldLowerStat(battlerDef, aiData->abilities[battlerDef], STAT_ATK)) //|| !HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + if (!ShouldLowerStat(battlerDef, aiData->abilities[battlerDef], STAT_ATK)) //|| !HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); else if (aiData->abilities[battlerDef] == ABILITY_HYPER_CUTTER) ADJUST_SCORE(-10); @@ -1286,7 +1288,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case EFFECT_SPECIAL_ATTACK_DOWN: case EFFECT_SPECIAL_ATTACK_DOWN_2: - if (!ShouldLowerStat(battlerDef, aiData->abilities[battlerDef], STAT_SPATK)) //|| !HasMoveWithSplit(battlerDef, SPLIT_SPECIAL)) + if (!ShouldLowerStat(battlerDef, aiData->abilities[battlerDef], STAT_SPATK)) //|| !HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL)) ADJUST_SCORE(-10); break; case EFFECT_SPECIAL_DEFENSE_DOWN: @@ -1298,7 +1300,8 @@ 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 || (B_ILLUMINATE_EFFECT >= GEN_9 && aiData->abilities[battlerDef] == ABILITY_ILLUMINATE)) + else if (aiData->abilities[battlerDef] == ABILITY_KEEN_EYE || aiData->abilities[battlerDef] == ABILITY_MINDS_EYE + || (B_ILLUMINATE_EFFECT >= GEN_9 && aiData->abilities[battlerDef] == ABILITY_ILLUMINATE)) ADJUST_SCORE(-8); break; case EFFECT_EVASION_DOWN: @@ -1373,7 +1376,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_MIRROR_COAT: if (IsBattlerIncapacitated(battlerDef, aiData->abilities[battlerDef]) || gBattleMons[battlerDef].status2 & (STATUS2_INFATUATION | STATUS2_CONFUSION)) ADJUST_SCORE(-1); - if (predictedMove == MOVE_NONE || GetBattleMoveSplit(predictedMove) == SPLIT_STATUS + if (predictedMove == MOVE_NONE || GetBattleMoveCategory(predictedMove) == BATTLE_CATEGORY_STATUS || DoesSubstituteBlockMove(battlerAtk, BATTLE_PARTNER(battlerDef), predictedMove)) ADJUST_SCORE(-10); break; @@ -1518,7 +1521,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) } else // regular curse { - if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); else if (!BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_DEF)) ADJUST_SCORE(-8); @@ -1853,29 +1856,10 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (aiData->abilities[battlerAtk] != ABILITY_MAGIC_GUARD && AI_DATA->moveAccuracy[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] < 75) ADJUST_SCORE(-6); break; - case EFFECT_RECOIL_25: + case EFFECT_RECOIL: if (AI_IsDamagedByRecoil(battlerAtk)) { - u32 recoilDmg = max(1, aiData->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] / 4); - if (!ShouldUseRecoilMove(battlerAtk, battlerDef, recoilDmg, AI_THINKING_STRUCT->movesetIndex)) - ADJUST_SCORE(-10); - break; - } - break; - case EFFECT_RECOIL_33: - case EFFECT_RECOIL_33_STATUS: - if (AI_IsDamagedByRecoil(battlerAtk)) - { - u32 recoilDmg = max(1, aiData->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] / 3); - if (!ShouldUseRecoilMove(battlerAtk, battlerDef, recoilDmg, AI_THINKING_STRUCT->movesetIndex)) - ADJUST_SCORE(-10); - break; - } - break; - case EFFECT_RECOIL_50: - if (AI_IsDamagedByRecoil(battlerAtk)) - { - u32 recoilDmg = max(1, aiData->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] / 2); + u32 recoilDmg = max(1, aiData->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex] * max(1, gBattleMoves[move].recoil) / 100); if (!ShouldUseRecoilMove(battlerAtk, battlerDef, recoilDmg, AI_THINKING_STRUCT->movesetIndex)) ADJUST_SCORE(-10); break; @@ -2122,8 +2106,8 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_ROLE_PLAY: if (aiData->abilities[battlerAtk] == aiData->abilities[battlerDef] || aiData->abilities[battlerDef] == ABILITY_NONE - || IsRolePlayBannedAbilityAtk(aiData->abilities[battlerAtk]) - || IsRolePlayBannedAbility(aiData->abilities[battlerDef])) + || IsRolePlayDoodleBannedAbilityAttacker(aiData->abilities[battlerAtk]) + || IsRolePlayDoodleBannedAbility(aiData->abilities[battlerDef])) ADJUST_SCORE(-10); else if (IsAbilityOfRating(aiData->abilities[battlerAtk], 5)) ADJUST_SCORE(-4); @@ -2170,13 +2154,13 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_ENTRAINMENT: if (aiData->abilities[battlerAtk] == ABILITY_NONE || IsEntrainmentBannedAbilityAttacker(aiData->abilities[battlerAtk]) - || IsEntrainmentTargetOrSimpleBeamBannedAbility(aiData->abilities[battlerDef]) + || IsEntrainmentBannedAbility(aiData->abilities[battlerDef]) || aiData->holdEffects[battlerAtk] == HOLD_EFFECT_ABILITY_SHIELD) ADJUST_SCORE(-10); break; case EFFECT_SIMPLE_BEAM: if (aiData->abilities[battlerDef] == ABILITY_SIMPLE - || IsEntrainmentTargetOrSimpleBeamBannedAbility(aiData->abilities[battlerDef]) + || IsSimpleBeamBannedAbility(aiData->abilities[battlerDef]) || aiData->holdEffects[battlerDef] == HOLD_EFFECT_ABILITY_SHIELD) ADJUST_SCORE(-10); break; @@ -2188,7 +2172,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_POWER_TRICK: if (IS_TARGETING_PARTNER(battlerAtk, battlerDef)) ADJUST_SCORE(-10); - else if (gBattleMons[battlerAtk].defense >= gBattleMons[battlerAtk].attack && !HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + else if (gBattleMons[battlerAtk].defense >= gBattleMons[battlerAtk].attack && !HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-10); break; case EFFECT_POWER_SWAP: // Don't use if attacker's stat stages are higher than opponents @@ -2720,21 +2704,6 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(1); } break; - case EFFECT_ALWAYS_CRIT: - // Ally decided to use Frost Breath on us. we must have Anger Point as our ability - if (aiData->abilities[battlerAtk] == ABILITY_ANGER_POINT) - { - if (AI_WhoStrikesFirst(battlerAtk, battlerAtkPartner, move) == AI_IS_SLOWER) // Partner moving first - { - // discourage raising our attack since it's about to be maxed out - if (IsAttackBoostMoveEffect(effect)) - ADJUST_SCORE(-3); - // encourage moves hitting multiple opponents - if (!IS_MOVE_STATUS(move) && (moveTarget & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY))) - ADJUST_SCORE(3); - } - } - break; // Don't change weather if ally already decided to do so. case EFFECT_SUNNY_DAY: case EFFECT_HAIL: @@ -2747,6 +2716,20 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) } } // check partner move effect + // Adjust for always crit moves + if (gBattleMoves[aiData->partnerMove].alwaysCriticalHit && aiData->abilities[battlerAtk] == ABILITY_ANGER_POINT) + { + if (AI_WhoStrikesFirst(battlerAtk, battlerAtkPartner, move) == AI_IS_SLOWER) // Partner moving first + { + // discourage raising our attack since it's about to be maxed out + if (IsAttackBoostMoveEffect(effect)) + ADJUST_SCORE(-3); + // encourage moves hitting multiple opponents + if (!IS_MOVE_STATUS(move) && (moveTarget & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY))) + ADJUST_SCORE(3); + } + } + // consider our move effect relative to partner state switch (effect) { @@ -2827,7 +2810,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case ABILITY_LIGHTNING_ROD: if (moveType == TYPE_ELECTRIC - && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && HasMoveWithCategory(battlerAtkPartner, BATTLE_CATEGORY_SPECIAL) && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) { RETURN_SCORE_PLUS(1); @@ -2842,7 +2825,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; // handled in AI_HPAware case ABILITY_STORM_DRAIN: if (moveType == TYPE_WATER - && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && HasMoveWithCategory(battlerAtkPartner, BATTLE_CATEGORY_SPECIAL) && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) { RETURN_SCORE_PLUS(1); @@ -2865,7 +2848,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case ABILITY_SAP_SIPPER: if (moveType == TYPE_GRASS - && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && HasMoveWithCategory(battlerAtkPartner, BATTLE_CATEGORY_PHYSICAL) && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK)) { RETURN_SCORE_PLUS(1); @@ -2874,7 +2857,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case ABILITY_JUSTIFIED: if (moveType == TYPE_DARK && !IS_MOVE_STATUS(move) - && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && HasMoveWithCategory(battlerAtkPartner, BATTLE_CATEGORY_PHYSICAL) && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK) && !CanIndexMoveFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 1)) { @@ -2926,7 +2909,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case EFFECT_SWAGGER: if (gBattleMons[battlerAtkPartner].statStages[STAT_ATK] < MAX_STAT_STAGE - && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && HasMoveWithCategory(battlerAtkPartner, BATTLE_CATEGORY_PHYSICAL) && (!AI_CanBeConfused(battlerAtkPartner, TRUE) || atkPartnerHoldEffect == HOLD_EFFECT_CURE_CONFUSION || atkPartnerHoldEffect == HOLD_EFFECT_CURE_STATUS)) @@ -2936,7 +2919,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case EFFECT_FLATTER: if (gBattleMons[battlerAtkPartner].statStages[STAT_SPATK] < MAX_STAT_STAGE - && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && HasMoveWithCategory(battlerAtkPartner, BATTLE_CATEGORY_SPECIAL) && (!AI_CanBeConfused(battlerAtkPartner, TRUE) || atkPartnerHoldEffect == HOLD_EFFECT_CURE_CONFUSION || atkPartnerHoldEffect == HOLD_EFFECT_CURE_STATUS)) @@ -2948,7 +2931,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (atkPartnerAbility == ABILITY_JUSTIFIED && moveType == TYPE_DARK && !IS_MOVE_STATUS(move) - && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && HasMoveWithCategory(battlerAtkPartner, BATTLE_CATEGORY_PHYSICAL) && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK) && !CanIndexMoveFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 0)) { @@ -3088,16 +3071,16 @@ static bool32 IsPinchBerryItemEffect(u32 holdEffect) return FALSE; } -static u32 CompareMoveAccuracies(u32 battlerAtk, u32 battlerDef, u32 moveSlot1, u32 moveSlot2) +static s32 CompareMoveAccuracies(u32 battlerAtk, u32 battlerDef, u32 moveSlot1, u32 moveSlot2) { u32 acc1 = AI_DATA->moveAccuracy[battlerAtk][battlerDef][moveSlot1]; u32 acc2 = AI_DATA->moveAccuracy[battlerAtk][battlerDef][moveSlot2]; if (acc1 > acc2) - return 0; - else if (acc2 > acc1) return 1; - return 2; + else if (acc2 > acc1) + return -1; + return 0; } static s32 AI_CompareDamagingMoves(u32 battlerAtk, u32 battlerDef, u32 currId) @@ -3159,19 +3142,19 @@ static s32 AI_CompareDamagingMoves(u32 battlerAtk, u32 battlerDef, u32 currId) switch (CompareMoveAccuracies(battlerAtk, battlerDef, currId, i)) { - case 0: + case 1: viableMoveScores[i] -= 2; break; - case 1: + case -1: viableMoveScores[currId] -= 2; break; } switch (AI_WhichMoveBetter(moves[currId], moves[i], battlerAtk, battlerDef, noOfHits[currId])) { - case 0: + case 1: viableMoveScores[i] -= 1; break; - case 1: + case -1: viableMoveScores[currId] -= 1; break; } @@ -3205,16 +3188,15 @@ 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 = 0; - // 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)); + u32 i; // The AI should understand that while Dynamaxed, status moves function like Protect. - if (IsDynamaxed(battlerAtk) && gBattleMoves[move].split == SPLIT_STATUS) + if (IsDynamaxed(battlerAtk) && gBattleMoves[move].category == BATTLE_CATEGORY_STATUS) moveEffect = EFFECT_PROTECT; // Targeting partner, check benefits of doing that instead @@ -3255,8 +3237,8 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score // check burn / frostbite if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING && AI_DATA->abilities[battlerAtk] == ABILITY_NATURAL_CURE) { - if ((gBattleMons[battlerAtk].status1 & STATUS1_BURN && HasOnlyMovesWithSplit(battlerAtk, SPLIT_PHYSICAL, TRUE)) - || (gBattleMons[battlerAtk].status1 & STATUS1_FROSTBITE && HasOnlyMovesWithSplit(battlerAtk, SPLIT_SPECIAL, TRUE))) + if ((gBattleMons[battlerAtk].status1 & STATUS1_BURN && HasOnlyMovesWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL, TRUE)) + || (gBattleMons[battlerAtk].status1 & STATUS1_FROSTBITE && HasOnlyMovesWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL, TRUE))) ADJUST_SCORE(-20); // Force switch if all your attacking moves are physical and you have Natural Cure. } @@ -3289,7 +3271,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score case EFFECT_ATTACK_UP: case EFFECT_ATTACK_UP_2: case EFFECT_ATTACK_UP_USER_ALLY: - if (MovesWithSplitUnusable(battlerAtk, battlerDef, SPLIT_PHYSICAL)) + if (MovesWithCategoryUnusable(battlerAtk, battlerDef, BATTLE_CATEGORY_PHYSICAL)) { ADJUST_SCORE(-8); break; @@ -3311,7 +3293,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score case EFFECT_DEFENSE_UP: case EFFECT_DEFENSE_UP_2: case EFFECT_DEFENSE_UP_3: - if (!HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + if (!HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(-2); if (aiData->hpPercents[battlerAtk] > 90 && AI_RandLessThan(128)) ADJUST_SCORE(2); @@ -3335,7 +3317,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score case EFFECT_SPECIAL_ATTACK_UP: case EFFECT_SPECIAL_ATTACK_UP_2: case EFFECT_SPECIAL_ATTACK_UP_3: - if (MovesWithSplitUnusable(battlerAtk, battlerDef, SPLIT_SPECIAL)) + if (MovesWithCategoryUnusable(battlerAtk, battlerDef, BATTLE_CATEGORY_SPECIAL)) { ADJUST_SCORE(-8); break; @@ -3356,7 +3338,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score break; case EFFECT_SPECIAL_DEFENSE_UP: case EFFECT_SPECIAL_DEFENSE_UP_2: - if (!HasMoveWithSplit(battlerDef, SPLIT_SPECIAL)) + if (!HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL)) ADJUST_SCORE(-2); if (aiData->hpPercents[battlerAtk] > 90 && AI_RandLessThan(128)) ADJUST_SCORE(2); @@ -3497,22 +3479,18 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score if (aiData->hpPercents[battlerAtk] <= 40 || aiData->abilities[battlerAtk] == ABILITY_CONTRARY) break; - if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); - else if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) + else if (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL)) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); break; case EFFECT_HAZE: if (AnyStatIsRaised(BATTLE_PARTNER(battlerAtk)) || PartnerHasSameMoveEffectWithoutTarget(BATTLE_PARTNER(battlerAtk), move, aiData->partnerMove)) - { + { ADJUST_SCORE(-3); break; - } - if (isDoubleBattle) - score += min(CountPositiveStatStages(battlerDef) + CountPositiveStatStages(BATTLE_PARTNER(battlerDef)), 7); - else - score += min(CountPositiveStatStages(battlerDef), 4); + } break; case EFFECT_ROAR: if (aiData->abilities[battlerDef] == ABILITY_SOUNDPROOF || aiData->abilities[battlerDef] == ABILITY_SUCTION_CUPS) @@ -3520,10 +3498,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(-3); break; } - if (isDoubleBattle) - score += min(CountPositiveStatStages(battlerDef) + CountPositiveStatStages(BATTLE_PARTNER(battlerDef)), 7); - else - score += min(CountPositiveStatStages(battlerDef), 4); break; case EFFECT_MULTI_HIT: case EFFECT_TRIPLE_KICK: @@ -3708,12 +3682,12 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score if (CountUsablePartyMons(battlerAtk) == 0) break; // Can't switch - //if (switchAbility == ABILITY_INTIMIDATE && PartyHasMoveSplit(battlerDef, SPLIT_PHYSICAL)) + //if (switchAbility == ABILITY_INTIMIDATE && PartyHasMoveCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL)) //ADJUST_SCORE(7); } break; case EFFECT_BATON_PASS: - if (ShouldSwitch(battlerAtk) && (gBattleMons[battlerAtk].status2 & STATUS2_SUBSTITUTE + if (ShouldSwitch(battlerAtk, FALSE) && (gBattleMons[battlerAtk].status2 & STATUS2_SUBSTITUTE || (gStatuses3[battlerAtk] & (STATUS3_ROOTED | STATUS3_AQUA_RING | STATUS3_MAGNET_RISE | STATUS3_POWER_TRICK)) || AnyStatIsRaised(battlerAtk))) ADJUST_SCORE(5); @@ -3937,7 +3911,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score //TODO - track entire opponent party data to determine hazard effectiveness break; case EFFECT_FORESIGHT: - if (aiData->abilities[battlerAtk] == ABILITY_SCRAPPY) + if (aiData->abilities[battlerAtk] == ABILITY_SCRAPPY || aiData->abilities[battlerAtk] == ABILITY_MINDS_EYE) break; else if (gBattleMons[battlerDef].statStages[STAT_EVASION] > DEFAULT_STAT_STAGE || (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST) @@ -4037,38 +4011,11 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score } break; case EFFECT_BELLY_DRUM: - if (!CanTargetFaintAi(battlerDef, battlerAtk) && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) && aiData->abilities[battlerAtk] != ABILITY_CONTRARY) + if (!CanTargetFaintAi(battlerDef, battlerAtk) && HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL) && aiData->abilities[battlerAtk] != ABILITY_CONTRARY) score += (MAX_STAT_STAGE - gBattleMons[battlerAtk].statStages[STAT_ATK]); break; case EFFECT_PSYCH_UP: - // Want to copy positive stat changes - for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) - { - if (gBattleMons[battlerDef].statStages[i] > gBattleMons[battlerAtk].statStages[i]) - { - switch (i) - { - case STAT_ATK: - if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) - ADJUST_SCORE(1); - break; - case STAT_SPATK: - if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) - ADJUST_SCORE(1); - break; - case STAT_ACC: - case STAT_EVASION: - case STAT_SPEED: - ADJUST_SCORE(1); - break; - case STAT_DEF: - case STAT_SPDEF: - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_STALL) - ADJUST_SCORE(1); - break; - } - } - } + score += AI_ShouldCopyStatChanges(battlerAtk, battlerDef); break; case EFFECT_SEMI_INVULNERABLE: ADJUST_SCORE(1); @@ -4232,7 +4179,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score case EFFECT_TAUNT: if (IS_MOVE_STATUS(predictedMove)) ADJUST_SCORE(3); - else if (HasMoveWithSplit(battlerDef, SPLIT_STATUS)) + else if (HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_STATUS)) ADJUST_SCORE(2); break; case EFFECT_TRICK: @@ -4243,11 +4190,11 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(2); // assume its beneficial break; case HOLD_EFFECT_CHOICE_BAND: - if (!HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + if (!HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(2); break; case HOLD_EFFECT_CHOICE_SPECS: - if (!HasMoveWithSplit(battlerDef, SPLIT_SPECIAL)) + if (!HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL)) ADJUST_SCORE(2); break; case HOLD_EFFECT_TOXIC_ORB: @@ -4327,8 +4274,8 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score } break; case EFFECT_ROLE_PLAY: - if (!IsRolePlayBannedAbilityAtk(aiData->abilities[battlerAtk]) - && !IsRolePlayBannedAbility(aiData->abilities[battlerDef]) + if (!IsRolePlayDoodleBannedAbilityAttacker(aiData->abilities[battlerAtk]) + && !IsRolePlayDoodleBannedAbility(aiData->abilities[battlerDef]) && !IsAbilityOfRating(aiData->abilities[battlerAtk], 5) && IsAbilityOfRating(aiData->abilities[battlerDef], 5)) ADJUST_SCORE(2); @@ -4360,7 +4307,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score if (IsStatBoostingBerry(item) && aiData->hpPercents[battlerAtk] > 60) ADJUST_SCORE(1); else if (ShouldRestoreHpBerry(battlerAtk, item) && !CanAIFaintTarget(battlerAtk, battlerDef, 0) - && ((GetWhichBattlerFaster(battlerAtk, battlerDef, TRUE) == 0 && CanTargetFaintAiWithMod(battlerDef, battlerAtk, 0, 0)) + && ((GetWhichBattlerFaster(battlerAtk, battlerDef, TRUE) == 1 && CanTargetFaintAiWithMod(battlerDef, battlerAtk, 0, 0)) || !CanTargetFaintAiWithMod(battlerDef, battlerAtk, toHeal, 0))) ADJUST_SCORE(1); // Recycle healing berry if we can't otherwise faint the target and the target wont kill us after we activate the berry } @@ -4451,7 +4398,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(1); break; case EFFECT_TICKLE: - if (gBattleMons[battlerDef].statStages[STAT_DEF] > 4 && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) + if (gBattleMons[battlerDef].statStages[STAT_DEF] > 4 && HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL) && aiData->abilities[battlerDef] != ABILITY_CONTRARY && ShouldLowerDefense(battlerAtk, battlerDef, aiData->abilities[battlerDef])) { ADJUST_SCORE(2); @@ -4519,7 +4466,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score case EFFECT_POWER_TRICK: if (!(gStatuses3[battlerAtk] & STATUS3_POWER_TRICK)) { - if (gBattleMons[battlerAtk].defense > gBattleMons[battlerAtk].attack && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) + if (gBattleMons[battlerAtk].defense > gBattleMons[battlerAtk].attack && HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL)) ADJUST_SCORE(2); break; } @@ -4619,8 +4566,8 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(1); break; case EFFECT_WONDER_ROOM: - if ((HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL) && gBattleMons[battlerAtk].defense < gBattleMons[battlerAtk].spDefense) - || (HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) && gBattleMons[battlerAtk].spDefense < gBattleMons[battlerAtk].defense)) + if ((HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL) && gBattleMons[battlerAtk].defense < gBattleMons[battlerAtk].spDefense) + || (HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL) && gBattleMons[battlerAtk].spDefense < gBattleMons[battlerAtk].defense)) ADJUST_SCORE(2); break; case EFFECT_GRAVITY: @@ -4784,7 +4731,7 @@ 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 (GetNoOfHitsToKOBattler(battlerDef, battlerAtk, predictedMoveSlot) >= 2 && GetBattleMoveSplit(predictedMove) == SPLIT_PHYSICAL) + if (GetNoOfHitsToKOBattler(battlerDef, battlerAtk, predictedMoveSlot) >= 2 && GetBattleMoveCategory(predictedMove) == BATTLE_CATEGORY_PHYSICAL) ADJUST_SCORE(3); } break; @@ -4793,7 +4740,7 @@ 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 (GetNoOfHitsToKOBattler(battlerDef, battlerAtk, predictedMoveSlot) >= 2 && GetBattleMoveSplit(predictedMove) == SPLIT_SPECIAL) + if (GetNoOfHitsToKOBattler(battlerDef, battlerAtk, predictedMoveSlot) >= 2 && GetBattleMoveCategory(predictedMove) == BATTLE_CATEGORY_SPECIAL) ADJUST_SCORE(3); } break; @@ -4852,22 +4799,30 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score // check move additional effects that are likely to happen for (i = 0; i < gBattleMoves[move].numAdditionalEffects; i++) { + // Only consider effects with a guaranteed chance to happen + if (!MoveEffectIsGuaranteed(AI_CalcSecondaryEffectChance(battlerAtk, gBattleMoves[move].additionalEffects[i].chance))) + continue; + if (gBattleMoves[move].additionalEffects[i].self) { // Consider move effects that target self switch (gBattleMoves[move].additionalEffects[i].moveEffect) { + case MOVE_EFFECT_SPD_PLUS_2: case MOVE_EFFECT_SPD_PLUS_1: - if (sereneGraceBoost && aiData->abilities[battlerAtk] != ABILITY_CONTRARY && !AI_STRIKES_FIRST(battlerAtk, battlerDef, move)) + if (aiData->abilities[battlerAtk] != ABILITY_CONTRARY && !AI_STRIKES_FIRST(battlerAtk, battlerDef, move)) ADJUST_SCORE(3); break; case MOVE_EFFECT_ATK_PLUS_1: - if (sereneGraceBoost) - IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); - break; + case MOVE_EFFECT_DEF_PLUS_1: case MOVE_EFFECT_SP_ATK_PLUS_1: - if (sereneGraceBoost) - IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); + case MOVE_EFFECT_SP_DEF_PLUS_1: + IncreaseStatUpScore( + battlerAtk, + battlerDef, + STAT_ATK + gBattleMoves[move].additionalEffects[i].moveEffect - MOVE_EFFECT_ATK_PLUS_1, + &score + ); break; // Effects that lower stat(s) - only need to consider Contrary case MOVE_EFFECT_V_CREATE: @@ -4881,80 +4836,36 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score } else // consider move effects that hinder the target { + // Only consider the below if they're certain to happen switch (gBattleMoves[move].additionalEffects[i].moveEffect) { case MOVE_EFFECT_FLINCH: score += ShouldTryToFlinch(battlerAtk, battlerDef, aiData->abilities[battlerAtk], aiData->abilities[battlerDef], move); break; + case MOVE_EFFECT_SPD_MINUS_1: + if (!ShouldLowerSpeed(battlerAtk, battlerDef, aiData->abilities[battlerDef])) + break; case MOVE_EFFECT_ATK_MINUS_1: case MOVE_EFFECT_DEF_MINUS_1: case MOVE_EFFECT_SP_ATK_MINUS_1: case MOVE_EFFECT_SP_DEF_MINUS_1: case MOVE_EFFECT_ACC_MINUS_1: case MOVE_EFFECT_EVS_MINUS_1: - if (sereneGraceBoost && aiData->abilities[battlerDef] != ABILITY_CONTRARY) + if (aiData->abilities[battlerDef] != ABILITY_CONTRARY) ADJUST_SCORE(2); break; - case MOVE_EFFECT_SPD_MINUS_1: - if (ShouldLowerSpeed(battlerAtk, battlerDef, aiData->abilities[battlerDef])) - { - if (sereneGraceBoost && aiData->abilities[battlerDef] != ABILITY_CONTRARY) - ADJUST_SCORE(5); - else - ADJUST_SCORE(2); - } + case MOVE_EFFECT_POISON: + IncreasePoisonScore(battlerAtk, battlerDef, move, &score); + break; + case MOVE_EFFECT_CLEAR_SMOG: + score += min(CountPositiveStatStages(battlerDef), 4); + break; + case MOVE_EFFECT_SPECTRAL_THIEF: + score += AI_ShouldCopyStatChanges(battlerAtk, battlerDef); break; } } - - // Only consider the below if they're certain to happen - if (gBattleMoves[move].additionalEffects[i].chance % 100) - continue; - - switch (gBattleMoves[move].additionalEffects[i].moveEffect) - { - case MOVE_EFFECT_POISON: - IncreasePoisonScore(battlerAtk, battlerDef, move, &score); - break; - case MOVE_EFFECT_CLEAR_SMOG: - if (isDoubleBattle) - score += min(CountPositiveStatStages(battlerDef) + CountPositiveStatStages(BATTLE_PARTNER(battlerDef)), 7); - else - score += min(CountPositiveStatStages(battlerDef), 4); - break; - case MOVE_EFFECT_SPECTRAL_THIEF: - // Want to copy positive stat changes - for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) - { - if (gBattleMons[battlerDef].statStages[i] > gBattleMons[battlerAtk].statStages[i]) - { - switch (i) - { - case STAT_ATK: - if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) - ADJUST_SCORE(1); - break; - case STAT_SPATK: - if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) - ADJUST_SCORE(1); - break; - case STAT_ACC: - case STAT_EVASION: - case STAT_SPEED: - ADJUST_SCORE(1); - break; - case STAT_DEF: - case STAT_SPDEF: - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_STALL) - ADJUST_SCORE(1); - break; - } - } - } - break; - } } - DebugPrintf("%S score: %d", gMoveNames[move], score); return score; } @@ -5076,7 +4987,7 @@ static s32 AI_Risky(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (IS_TARGETING_PARTNER(battlerAtk, battlerDef)) return score; - if (gBattleMoves[move].highCritRatio) + if (gBattleMoves[move].criticalHitStage > 0) ADJUST_SCORE(2); switch (gBattleMoves[move].effect) diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 4a35e824c0..7436f7af6d 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -22,12 +22,13 @@ #include "constants/moves.h" // this file's functions -static bool8 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool8 noRng); -static bool8 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u8 moduloPercent); -static bool8 ShouldUseItem(u32 battler); +static bool32 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool32 noRng); +static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 moduloPercent, bool32 emitResult); +static bool32 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 u32 GetSwitchinHazardsDamage(u32 battler, struct BattlePokemon *battleMon); static void InitializeSwitchinCandidate(struct Pokemon *mon) { @@ -64,16 +65,15 @@ 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 +// 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) - +static bool32 HasBadOdds(u32 battler, bool32 emitResult) { //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; + bool32 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 @@ -81,12 +81,12 @@ static bool8 HasBadOdds(u32 battler) return FALSE; // Won't bother configuring this for double battles - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + 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; @@ -101,7 +101,7 @@ static bool8 HasBadOdds(u32 battler) if (aiMove != MOVE_NONE) { // Check if mon has an "important" status move - if (aiMoveEffect == EFFECT_REFLECT || aiMoveEffect == EFFECT_LIGHT_SCREEN + 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 @@ -173,18 +173,19 @@ static bool8 HasBadOdds(u32 battler) // 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)) + || (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))) + || (aiAbility == ABILITY_REGENERATOR + && gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 4))) { // 50% chance to stay in regardless - if (Random() % 2 == 0) + if (Random() % 2 == 0) return FALSE; // Switch mon out - *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; + if (emitResult) + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); return TRUE; } @@ -193,33 +194,35 @@ static bool8 HasBadOdds(u32 battler) { 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))) + || (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) + if (hasStatusMove) return FALSE; // 50% chance to stay in regardless - if (Random() % 2 == 0) + if (Random() % 2 == 0) return FALSE; // Switch mon out - *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; + if (emitResult) + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); return TRUE; } } return FALSE; } -static bool8 ShouldSwitchIfAllBadMoves(u32 battler) +static bool32 ShouldSwitchIfAllBadMoves(u32 battler, bool32 emitResult) { if (AI_DATA->shouldSwitchMon & gBitTable[battler]) { AI_DATA->shouldSwitchMon &= ~(gBitTable[battler]); gBattleStruct->AI_monToSwitchIntoId[battler] = AI_DATA->monToSwitchId[battler]; - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); + if (emitResult) + BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); return TRUE; } else @@ -228,7 +231,7 @@ static bool8 ShouldSwitchIfAllBadMoves(u32 battler) } } -static bool8 ShouldSwitchIfWonderGuard(u32 battler) +static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult) { u8 opposingPosition; u8 opposingBattler; @@ -283,8 +286,9 @@ static bool8 ShouldSwitchIfWonderGuard(u32 battler) if (AI_GetTypeEffectiveness(move, battler, opposingBattler) >= UQ_4_12(2.0) && Random() % 3 < 2) { // We found a mon. - *(gBattleStruct->AI_monToSwitchIntoId + battler) = i; - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); + gBattleStruct->AI_monToSwitchIntoId[battler] = i; + if (emitResult) + BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); return TRUE; } } @@ -294,7 +298,7 @@ static bool8 ShouldSwitchIfWonderGuard(u32 battler) return FALSE; // There is not a single Pokemon in the party that has a super effective move against a mon with Wonder Guard. } -static bool8 FindMonThatAbsorbsOpponentsMove(u32 battler) +static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler, bool32 emitResult) { u8 battlerIn1, battlerIn2; u8 numAbsorbingAbilities = 0; @@ -381,9 +385,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(u32 battler) continue; if (i == gBattlerPartyIndexes[battlerIn2]) continue; - if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn1)) + if (i == gBattleStruct->monToSwitchIntoId[battlerIn1]) continue; - if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) + if (i == gBattleStruct->monToSwitchIntoId[battlerIn2]) continue; if (IsAceMon(battler, i)) continue; @@ -395,8 +399,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(u32 battler) if (absorbingTypeAbilities[j] == monAbility && Random() & 1) { // we found a mon. - *(gBattleStruct->AI_monToSwitchIntoId + battler) = i; - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + gBattleStruct->AI_monToSwitchIntoId[battler] = i; + if (emitResult) + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); return TRUE; } } @@ -404,9 +409,10 @@ static bool8 FindMonThatAbsorbsOpponentsMove(u32 battler) return FALSE; } -static bool8 ShouldSwitchIfGameStatePrompt(u32 battler) +static bool32 ShouldSwitchIfGameStatePrompt(u32 battler, bool32 emitResult) { - bool8 switchMon = FALSE; + bool32 switchMon = FALSE; + bool32 monIdChosen = FALSE; // Id of the mon to switch into. u16 monAbility = AI_DATA->abilities[battler]; u16 holdEffect = AI_DATA->holdEffects[battler]; u8 opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(battler)); @@ -473,7 +479,8 @@ static bool8 ShouldSwitchIfGameStatePrompt(u32 battler) || GetMonAbility(&party[i]) == ABILITY_ELECTRIC_SURGE)) //Ally has Misty or Electric Surge { *(gBattleStruct->AI_monToSwitchIntoId + BATTLE_PARTNER(battler)) = i; - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); + if (emitResult) + BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); switchMon = FALSE; break; } @@ -502,6 +509,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 + && AI_DATA->abilities[opposingBattler] != ABILITY_MINDS_EYE && (B_ILLUMINATE_EFFECT >= GEN_9 && AI_DATA->abilities[opposingBattler] != ABILITY_ILLUMINATE) && !(gBattleMons[battler].status2 & STATUS2_FORESIGHT) && !(gStatuses3[battler] & STATUS3_MIRACLE_EYED)) @@ -550,8 +558,8 @@ static bool8 ShouldSwitchIfGameStatePrompt(u32 battler) //Semi-Invulnerable if (gStatuses3[opposingBattler] & STATUS3_SEMI_INVULNERABLE) { - if (FindMonThatAbsorbsOpponentsMove(battler)) //If find absorber default to switch - switchMon = TRUE; + if (FindMonThatAbsorbsOpponentsMove(battler, FALSE)) // Switch if absorber found. Note: FindMonThatAbsorbsOpponentsMove already provides id of the mon to switch into to gBattleStruct->AI_monToSwitchIntoId. + switchMon = TRUE, monIdChosen = TRUE; if (!AI_OpponentCanFaintAiWithMod(battler, 0) && AnyStatIsRaised(battler)) switchMon = FALSE; @@ -564,8 +572,10 @@ static bool8 ShouldSwitchIfGameStatePrompt(u32 battler) if (switchMon) { - *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); + if (!monIdChosen) + gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; + if (emitResult) + BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); return TRUE; } else @@ -574,7 +584,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(u32 battler) } } -static bool8 ShouldSwitchIfAbilityBenefit(u32 battler) +static bool32 ShouldSwitchIfAbilityBenefit(u32 battler, bool32 emitResult) { s32 moduloChance = 4; //25% Chance Default s32 chanceReducer = 1; //No Reduce default. Increase to reduce @@ -619,21 +629,20 @@ static bool8 ShouldSwitchIfAbilityBenefit(u32 battler) return FALSE; } - *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); + gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; + if (emitResult) + BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); return TRUE; } -static bool8 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool8 noRng) +static bool32 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool32 noRng) { - u8 opposingPosition; - u8 opposingBattler; s32 i; u16 move; - opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(battler)); - opposingBattler = GetBattlerAtPosition(opposingPosition); + u32 opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(battler)); + u32 opposingBattler = GetBattlerAtPosition(opposingPosition); if (!(gAbsentBattlerFlags & gBitTable[opposingBattler])) { @@ -678,7 +687,7 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool8 noRng) return FALSE; } -static bool8 AreStatsRaised(u32 battler) +static bool32 AreStatsRaised(u32 battler) { u8 buffedStatsValue = 0; s32 i; @@ -692,9 +701,9 @@ static bool8 AreStatsRaised(u32 battler) return (buffedStatsValue > 3); } -static bool8 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u8 moduloPercent) +static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 moduloPercent, bool32 emitResult) { - u8 battlerIn1, battlerIn2; + u32 battlerIn1, battlerIn2; s32 firstId; s32 lastId; // + 1 struct Pokemon *party; @@ -741,9 +750,9 @@ static bool8 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u8 modulo continue; if (i == gBattlerPartyIndexes[battlerIn2]) continue; - if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn1)) + if (i == gBattleStruct->monToSwitchIntoId[battlerIn1]) continue; - if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) + if (i == gBattleStruct->monToSwitchIntoId[battlerIn2]) continue; if (IsAceMon(battler, i)) continue; @@ -763,8 +772,9 @@ static bool8 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u8 modulo if (AI_GetTypeEffectiveness(move, battler, battlerIn1) >= UQ_4_12(2.0) && Random() % moduloPercent == 0) { - *(gBattleStruct->AI_monToSwitchIntoId + battler) = i; - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); + gBattleStruct->AI_monToSwitchIntoId[battler] = i; + if (emitResult) + BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); return TRUE; } } @@ -774,9 +784,157 @@ static bool8 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u8 modulo return FALSE; } -bool32 ShouldSwitch(u32 battler) +static bool32 CanMonSurviveHazardSwitchin(u32 battler) { - u8 battlerIn1, battlerIn2; + 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, bool32 emitResult) +{ + // 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; + if (emitResult) + 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 bool32 AreAttackingStatsLowered(u32 battler, bool32 emitResult) +{ + 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, bool32 emitResult) +{ + u32 battlerIn1, battlerIn2; s32 firstId; s32 lastId; // + 1 struct Pokemon *party; @@ -824,9 +982,9 @@ bool32 ShouldSwitch(u32 battler) continue; if (i == gBattlerPartyIndexes[battlerIn2]) continue; - if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn1)) + if (i == gBattleStruct->monToSwitchIntoId[battlerIn1]) continue; - if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) + if (i == gBattleStruct->monToSwitchIntoId[battlerIn2]) continue; if (IsAceMon(battler, i)) { @@ -849,23 +1007,29 @@ bool32 ShouldSwitch(u32 battler) //Since the order is sequencial, and some of these functions prompt switch to specific party members. //These Functions can prompt switch to specific party members - if (ShouldSwitchIfWonderGuard(battler)) + if (ShouldSwitchIfWonderGuard(battler, emitResult)) return TRUE; - if (ShouldSwitchIfGameStatePrompt(battler)) + if (ShouldSwitchIfGameStatePrompt(battler, emitResult)) return TRUE; - if (FindMonThatAbsorbsOpponentsMove(battler)) + if (FindMonThatAbsorbsOpponentsMove(battler, emitResult)) return TRUE; //These Functions can prompt switch to generic pary members - if (ShouldSwitchIfAllBadMoves(battler)) + if ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING) && (CanMonSurviveHazardSwitchin(battler) == FALSE)) + return FALSE; + if (ShouldSwitchIfAllBadMoves(battler, emitResult)) return TRUE; - if (ShouldSwitchIfAbilityBenefit(battler)) + if (ShouldSwitchIfAbilityBenefit(battler, emitResult)) return TRUE; - if (HasBadOdds(battler)) + if (HasBadOdds(battler, emitResult)) + return TRUE; + if (ShouldSwitchIfEncored(battler, emitResult)) + return TRUE; + if (AreAttackingStatsLowered(battler, emitResult)) return TRUE; - //Removing switch capabilites under specific conditions - //These Functions prevent the "FindMonWithFlagsAndSuperEffective" from getting out of hand. + // Removing switch capabilites under specific conditions + // These Functions prevent the "FindMonWithFlagsAndSuperEffective" from getting out of hand. if (HasSuperEffectiveMoveAgainstOpponents(battler, FALSE)) return FALSE; if (AreStatsRaised(battler)) @@ -873,8 +1037,8 @@ bool32 ShouldSwitch(u32 battler) //Default Function //Can prompt switch if AI has a pokemon in party that resists current opponent & has super effective move - if (FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_DOESNT_AFFECT_FOE, 2) - || FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_NOT_VERY_EFFECTIVE, 3)) + if (FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_DOESNT_AFFECT_FOE, 2, emitResult) + || FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_NOT_VERY_EFFECTIVE, 3, emitResult)) return TRUE; return FALSE; @@ -895,9 +1059,9 @@ void AI_TrySwitchOrUseItem(u32 battler) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (ShouldSwitch(battler)) + if (ShouldSwitch(battler, TRUE)) { - if (*(gBattleStruct->AI_monToSwitchIntoId + battler) == PARTY_SIZE) + if (gBattleStruct->AI_monToSwitchIntoId[battler] == PARTY_SIZE) { s32 monToSwitchId = AI_DATA->mostSuitableMonId; if (monToSwitchId == PARTY_SIZE) @@ -923,9 +1087,9 @@ void AI_TrySwitchOrUseItem(u32 battler) continue; if (monToSwitchId == gBattlerPartyIndexes[battlerIn2]) continue; - if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + battlerIn1)) + if (monToSwitchId == gBattleStruct->monToSwitchIntoId[battlerIn1]) continue; - if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) + if (monToSwitchId == gBattleStruct->monToSwitchIntoId[battlerIn2]) continue; if (IsAceMon(battler, monToSwitchId)) continue; @@ -934,10 +1098,10 @@ void AI_TrySwitchOrUseItem(u32 battler) } } - *(gBattleStruct->AI_monToSwitchIntoId + battler) = monToSwitchId; + gBattleStruct->AI_monToSwitchIntoId[battler] = monToSwitchId; } - *(gBattleStruct->monToSwitchIntoId + battler) = *(gBattleStruct->AI_monToSwitchIntoId + battler); + *(gBattleStruct->monToSwitchIntoId + battler) = gBattleStruct->AI_monToSwitchIntoId[battler]; return; } else if (ShouldUseItem(battler)) @@ -1108,7 +1272,7 @@ static u32 GetSwitchinHazardsDamage(u32 battler, struct BattlePokemon *battleMon { // Stealth Rock if ((hazardFlags & SIDE_STATUS_STEALTH_ROCK) && heldItemEffect != HOLD_EFFECT_HEAVY_DUTY_BOOTS) - hazardDamage += GetStealthHazardDamageByTypesAndHP(gBattleMoves[MOVE_STEALTH_ROCK].type, defType1, defType2, battleMon->hp); + hazardDamage += GetStealthHazardDamageByTypesAndHP(gBattleMoves[MOVE_STEALTH_ROCK].type, defType1, defType2, battleMon->maxHP); // Spikes if ((hazardFlags & SIDE_STATUS_SPIKES) && IsMonGrounded(heldItemEffect, ability, defType1, defType2)) { @@ -1213,7 +1377,7 @@ static s32 GetSwitchinWeatherImpact(void) // 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; @@ -1285,9 +1449,9 @@ static u32 GetSwitchinStatusDamage(u32 battler) u32 statusDamage = 0; // Status condition damage - if ((status != 0) && AI_DATA->switchinCandidate.battleMon.ability != ABILITY_MAGIC_GUARD) + if ((status != 0) && AI_DATA->switchinCandidate.battleMon.ability != ABILITY_MAGIC_GUARD) { - if (status & STATUS1_BURN) + if (status & STATUS1_BURN) { #if B_BURN_DAMAGE >= GEN_7 statusDamage = maxHP / 16; @@ -1330,7 +1494,7 @@ static u32 GetSwitchinStatusDamage(u32 battler) if (tSpikesLayers != 0 && (defType1 != TYPE_POISON && defType2 != TYPE_POISON && ability != ABILITY_IMMUNITY && ability != ABILITY_POISON_HEAL && status == 0 - && !(heldItemEffect == HOLD_EFFECT_HEAVY_DUTY_BOOTS + && !(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))) @@ -1363,7 +1527,7 @@ static u32 GetSwitchinHitsToKO(s32 damageTaken, u32 battler) 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; + bool32 usedSingleUseHealingItem = FALSE; s32 currentHP = startingHP; // No damage being dealt @@ -1405,7 +1569,7 @@ static u32 GetSwitchinHitsToKO(s32 damageTaken, u32 battler) singleUseItemHeal = 1; } } - else if (currentHP < maxHP / CONFUSE_BERRY_HP_FRACTION + 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)) { @@ -1454,7 +1618,7 @@ static u16 GetSwitchinTypeMatchup(u32 opposingBattler, struct BattlePokemon batt // 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], + 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 @@ -1515,11 +1679,11 @@ static s32 GetMaxDamagePlayerCouldDealToSwitchin(u32 battler, u32 opposingBattle // 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 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) +static u32 GetBestMonIntegrated(struct Pokemon *party, int firstId, int lastId, u32 battler, u32 opposingBattler, u8 battlerIn1, u8 battlerIn2, bool32 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; @@ -1541,8 +1705,8 @@ static u32 GetBestMonIntegrated(struct Pokemon *party, int firstId, int lastId, if (!IsValidForBattle(&party[i]) || gBattlerPartyIndexes[battlerIn1] == i || gBattlerPartyIndexes[battlerIn2] == i - || i == *(gBattleStruct->monToSwitchIntoId + battlerIn1) - || i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) + || i == gBattleStruct->monToSwitchIntoId[battlerIn1] + || i == gBattleStruct->monToSwitchIntoId[battlerIn2]) { continue; } @@ -1558,7 +1722,7 @@ static u32 GetBestMonIntegrated(struct Pokemon *party, int firstId, int lastId, 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)) + if (AI_DATA->switchinCandidate.battleMon.ability == ABILITY_TRUANT && IsTruantMonVulnerable(battler, opposingBattler)) continue; // Get max number of hits for player to KO AI mon @@ -1594,7 +1758,7 @@ static u32 GetBestMonIntegrated(struct Pokemon *party, int firstId, int lastId, // 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]; @@ -1703,7 +1867,7 @@ static u32 GetBestMonIntegrated(struct Pokemon *party, int firstId, int lastId, else if (typeMatchupId != PARTY_SIZE) return typeMatchupId; - + else if (batonPassId != PARTY_SIZE) return batonPassId; @@ -1778,7 +1942,7 @@ u8 GetMostSuitableMonToSwitchInto(u32 battler, bool32 switchAfterMonKOd) if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_MON_CHOICES) { bestMonId = GetBestMonIntegrated(party, firstId, lastId, battler, opposingBattler, battlerIn1, battlerIn2, switchAfterMonKOd); - return bestMonId; + return bestMonId; } // This all handled by the GetBestMonIntegrated function if the AI_FLAG_SMART_MON_CHOICES flag is set @@ -1792,8 +1956,8 @@ u8 GetMostSuitableMonToSwitchInto(u32 battler, bool32 switchAfterMonKOd) if (!IsValidForBattle(&party[i]) || gBattlerPartyIndexes[battlerIn1] == i || gBattlerPartyIndexes[battlerIn2] == i - || i == *(gBattleStruct->monToSwitchIntoId + battlerIn1) - || i == *(gBattleStruct->monToSwitchIntoId + battlerIn2) + || 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]; @@ -1845,12 +2009,12 @@ static bool32 AiExpectsToFaintPlayer(u32 battler) return FALSE; } -static bool8 ShouldUseItem(u32 battler) +static bool32 ShouldUseItem(u32 battler) { struct Pokemon *party; s32 i; u8 validMons = 0; - bool8 shouldUse = FALSE; + bool32 shouldUse = FALSE; if (IsAiVsAiBattle()) return FALSE; @@ -1984,4 +2148,4 @@ static bool32 AI_OpponentCanFaintAiWithMod(u32 battler, u32 healAmount) } } return FALSE; -} \ No newline at end of file +} diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 5ee70f9456..9fdfbf3e70 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -489,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; @@ -500,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. @@ -653,7 +655,7 @@ bool32 IsAffectedByPowder(u32 battler, u32 ability, u32 holdEffect) // This function checks if all physical/special moves are either unusable or unreasonable to use. // Consider a pokemon boosting their attack against a ghost pokemon having only normal-type physical attacks. -bool32 MovesWithSplitUnusable(u32 attacker, u32 target, u32 split) +bool32 MovesWithCategoryUnusable(u32 attacker, u32 target, u32 category) { s32 i, moveType; u32 usable = 0; @@ -664,7 +666,7 @@ bool32 MovesWithSplitUnusable(u32 attacker, u32 target, u32 split) { if (moves[i] != MOVE_NONE && moves[i] != MOVE_UNAVAILABLE - && GetBattleMoveSplit(moves[i]) == split + && GetBattleMoveCategory(moves[i]) == category && !(unusable & gBitTable[i])) { SetTypeBeforeUsingMove(moves[i], attacker); @@ -773,7 +775,9 @@ s32 AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u8 *typeEffectivenes dmg = 20 * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1); break; case EFFECT_MULTI_HIT: - dmg *= (aiData->abilities[battlerAtk] == ABILITY_SKILL_LINK ? 5 : 3); + dmg *= (aiData->abilities[battlerAtk] == ABILITY_SKILL_LINK + && !(move == MOVE_WATER_SHURIKEN && gBattleMons[battlerAtk].species == SPECIES_GRENINJA_ASH) + ? 5 : 3); break; case EFFECT_ENDEAVOR: // If target has less HP than user, Endeavor does no damage @@ -805,8 +809,6 @@ s32 AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u8 *typeEffectivenes // Handle other multi-strike moves if (gBattleMoves[move].strikeCount > 1 && gBattleMoves[move].effect != EFFECT_TRIPLE_KICK) dmg *= gBattleMoves[move].strikeCount; - else if (move == MOVE_WATER_SHURIKEN && gBattleMons[battlerAtk].species == SPECIES_GRENINJA_ASH) - dmg *= 3; if (dmg == 0) dmg = 1; @@ -959,11 +961,8 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s case EFFECT_MIND_BLOWN: case EFFECT_STEEL_BEAM: return TRUE; - case EFFECT_RECOIL_25: case EFFECT_RECOIL_IF_MISS: - case EFFECT_RECOIL_50: - case EFFECT_RECOIL_33: - case EFFECT_RECOIL_33_STATUS: + case EFFECT_RECOIL: if (AI_IsDamagedByRecoil(battlerAtk)) return TRUE; break; @@ -994,7 +993,7 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s } // Checks if one of the moves has side effects or perks, assuming equal dmg or equal no of hits to KO -u32 AI_WhichMoveBetter(u32 move1, u32 move2, u32 battlerAtk, u32 battlerDef, s32 noOfHitsToKo) +s32 AI_WhichMoveBetter(u32 move1, u32 move2, u32 battlerAtk, u32 battlerDef, s32 noOfHitsToKo) { bool32 effect1, effect2; s32 defAbility = AI_DATA->abilities[battlerDef]; @@ -1014,18 +1013,18 @@ u32 AI_WhichMoveBetter(u32 move1, u32 move2, u32 battlerAtk, u32 battlerDef, s32 effect1 = AI_IsMoveEffectInMinus(battlerAtk, battlerDef, move1, noOfHitsToKo); effect2 = AI_IsMoveEffectInMinus(battlerAtk, battlerDef, move2, noOfHitsToKo); if (effect2 && !effect1) - return 0; - if (effect1 && !effect2) return 1; + if (effect1 && !effect2) + return -1; effect1 = AI_IsMoveEffectInPlus(battlerAtk, battlerDef, move1, noOfHitsToKo); effect2 = AI_IsMoveEffectInPlus(battlerAtk, battlerDef, move2, noOfHitsToKo); if (effect2 && !effect1) - return 1; + return -1; if (effect1 && !effect2) - return 0; + return 1; - return 2; + return 0; } u32 GetNoOfHitsToKO(u32 dmg, s32 hp) @@ -1109,7 +1108,7 @@ static u32 AI_GetEffectiveness(uq4_12_t multiplier) * AI_IS_FASTER: is user(ai) faster * AI_IS_SLOWER: is target faster */ -u32 AI_WhoStrikesFirst(u32 battlerAI, u32 battler2, u32 moveConsidered) +s32 AI_WhoStrikesFirst(u32 battlerAI, u32 battler2, u32 moveConsidered) { u32 fasterAI = 0, fasterPlayer = 0, i; s8 prioAI = 0; @@ -1148,7 +1147,7 @@ u32 AI_WhoStrikesFirst(u32 battlerAI, u32 battler2, u32 moveConsidered) AI_DATA->abilities[battlerAI], AI_DATA->abilities[battler2], AI_DATA->holdEffects[battlerAI], AI_DATA->holdEffects[battler2], AI_DATA->speedStats[battlerAI], AI_DATA->speedStats[battler2], - prioAI, prioBattler2) == 0) + prioAI, prioBattler2) == 1) return AI_IS_FASTER; else return AI_IS_SLOWER; @@ -1427,30 +1426,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) @@ -1806,7 +1781,7 @@ bool32 ShouldLowerAttack(u32 battlerAtk, u32 battlerDef, u32 defAbility) return FALSE; // Don't bother lowering stats if can kill enemy. if (gBattleMons[battlerDef].statStages[STAT_ATK] > 4 - && HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL) + && HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_WHITE_SMOKE @@ -1823,7 +1798,7 @@ bool32 ShouldLowerDefense(u32 battlerAtk, u32 battlerDef, u32 defAbility) return FALSE; // Don't bother lowering stats if can kill enemy. if (gBattleMons[battlerDef].statStages[STAT_DEF] > 4 - && HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) + && HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_WHITE_SMOKE @@ -1855,7 +1830,7 @@ bool32 ShouldLowerSpAtk(u32 battlerAtk, u32 battlerDef, u32 defAbility) return FALSE; // Don't bother lowering stats if can kill enemy. if (gBattleMons[battlerDef].statStages[STAT_SPATK] > 4 - && HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) + && HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_FULL_METAL_BODY @@ -1871,7 +1846,7 @@ bool32 ShouldLowerSpDef(u32 battlerAtk, u32 battlerDef, u32 defAbility) return FALSE; // Don't bother lowering stats if can kill enemy. if (gBattleMons[battlerDef].statStages[STAT_SPDEF] > 4 - && HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL) + && HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL) && defAbility != ABILITY_CONTRARY && defAbility != ABILITY_CLEAR_BODY && defAbility != ABILITY_FULL_METAL_BODY @@ -1891,6 +1866,7 @@ bool32 ShouldLowerAccuracy(u32 battlerAtk, u32 battlerDef, u32 defAbility) && defAbility != ABILITY_WHITE_SMOKE && defAbility != ABILITY_FULL_METAL_BODY && defAbility != ABILITY_KEEN_EYE + && defAbility != ABILITY_MINDS_EYE && (B_ILLUMINATE_EFFECT >= GEN_9 && defAbility != ABILITY_ILLUMINATE) && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; @@ -1932,7 +1908,7 @@ u16 *GetMovesArray(u32 battler) return gBattleResources->battleHistory->usedMoves[battler]; } -bool32 HasOnlyMovesWithSplit(u32 battlerId, u32 split, bool32 onlyOffensive) +bool32 HasOnlyMovesWithCategory(u32 battlerId, u32 category, bool32 onlyOffensive) { u32 i; u16 *moves = GetMovesArray(battlerId); @@ -1941,21 +1917,21 @@ bool32 HasOnlyMovesWithSplit(u32 battlerId, u32 split, bool32 onlyOffensive) { if (onlyOffensive && IS_MOVE_STATUS(moves[i])) continue; - if (moves[i] != MOVE_NONE && moves[i] != MOVE_UNAVAILABLE && GetBattleMoveSplit(moves[i]) != split) + if (moves[i] != MOVE_NONE && moves[i] != MOVE_UNAVAILABLE && GetBattleMoveCategory(moves[i]) != category) return FALSE; } return TRUE; } -bool32 HasMoveWithSplit(u32 battler, u32 split) +bool32 HasMoveWithCategory(u32 battler, u32 category) { u32 i; u16 *moves = GetMovesArray(battler); for (i = 0; i < MAX_MON_MOVES; i++) { - if (moves[i] != MOVE_NONE && moves[i] != MOVE_UNAVAILABLE && GetBattleMoveSplit(moves[i]) == split) + if (moves[i] != MOVE_NONE && moves[i] != MOVE_UNAVAILABLE && GetBattleMoveCategory(moves[i]) == category) return TRUE; } return FALSE; @@ -2082,6 +2058,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; @@ -2281,7 +2259,16 @@ bool32 HasSoundMove(u32 battler) bool32 HasHighCritRatioMove(u32 battler) { - CHECK_MOVE_FLAG(highCritRatio); + s32 i; + u16 *moves = GetMovesArray(battler); + + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (moves[i] != MOVE_NONE && moves[i] != MOVE_UNAVAILABLE && gBattleMoves[moves[i]].criticalHitStage > 0) + return TRUE; + } + + return FALSE; } bool32 HasMagicCoatAffectedMove(u32 battler) @@ -2506,11 +2493,11 @@ static bool32 AnyUsefulStatIsRaised(u32 battler) switch (statId) { case STAT_ATK: - if (HasMoveWithSplit(battler, SPLIT_PHYSICAL)) + if (HasMoveWithCategory(battler, BATTLE_CATEGORY_PHYSICAL)) return TRUE; break; case STAT_SPATK: - if (HasMoveWithSplit(battler, SPLIT_SPECIAL)) + if (HasMoveWithCategory(battler, BATTLE_CATEGORY_SPECIAL)) return TRUE; break; case STAT_SPEED: @@ -2585,8 +2572,8 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 bool32 shouldSwitch; u32 battlerToSwitch; - shouldSwitch = ShouldSwitch(battlerAtk); - battlerToSwitch = *(gBattleStruct->AI_monToSwitchIntoId + battlerAtk); + shouldSwitch = ShouldSwitch(battlerAtk, FALSE); + battlerToSwitch = gBattleStruct->AI_monToSwitchIntoId[battlerAtk]; if (PartyBattlerShouldAvoidHazards(battlerAtk, battlerToSwitch)) return DONT_PIVOT; @@ -2813,7 +2800,7 @@ bool32 AI_CanPutToSleep(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move static bool32 AI_CanPoisonType(u32 battlerAttacker, u32 battlerTarget, u32 move) { - return ((AI_DATA->abilities[battlerAttacker] == ABILITY_CORROSION && gBattleMoves[move].split == SPLIT_STATUS) + return ((AI_DATA->abilities[battlerAttacker] == ABILITY_CORROSION && gBattleMoves[move].category == BATTLE_CATEGORY_STATUS) || !(IS_BATTLER_OF_TYPE(battlerTarget, TYPE_POISON) || IS_BATTLER_OF_TYPE(battlerTarget, TYPE_STEEL))); } @@ -2841,8 +2828,8 @@ bool32 ShouldPoisonSelf(u32 battler, u32 ability) || ability == ABILITY_POISON_HEAL || ability == ABILITY_QUICK_FEET || ability == ABILITY_MAGIC_GUARD - || (ability == ABILITY_TOXIC_BOOST && HasMoveWithSplit(battler, SPLIT_PHYSICAL)) - || (ability == ABILITY_GUTS && HasMoveWithSplit(battler, SPLIT_PHYSICAL)) + || (ability == ABILITY_TOXIC_BOOST && HasMoveWithCategory(battler, BATTLE_CATEGORY_PHYSICAL)) + || (ability == ABILITY_GUTS && HasMoveWithCategory(battler, BATTLE_CATEGORY_PHYSICAL)) || HasMoveEffect(battler, EFFECT_FACADE) || HasMoveEffect(battler, EFFECT_PSYCHO_SHIFT))) return TRUE; // battler can be poisoned and has move/ability that synergizes with being poisoned @@ -2940,8 +2927,8 @@ bool32 ShouldBurnSelf(u32 battler, u32 ability) ability == ABILITY_QUICK_FEET || ability == ABILITY_HEATPROOF || ability == ABILITY_MAGIC_GUARD - || (ability == ABILITY_FLARE_BOOST && HasMoveWithSplit(battler, SPLIT_SPECIAL)) - || (ability == ABILITY_GUTS && HasMoveWithSplit(battler, SPLIT_PHYSICAL)) + || (ability == ABILITY_FLARE_BOOST && HasMoveWithCategory(battler, BATTLE_CATEGORY_SPECIAL)) + || (ability == ABILITY_GUTS && HasMoveWithCategory(battler, BATTLE_CATEGORY_PHYSICAL)) || HasMoveEffect(battler, EFFECT_FACADE) || HasMoveEffect(battler, EFFECT_PSYCHO_SHIFT))) return TRUE; @@ -3168,13 +3155,13 @@ bool32 ShouldSetScreen(u32 battlerAtk, u32 battlerDef, u32 moveEffect) break; case EFFECT_REFLECT: // Use only if the player has a physical move and AI doesn't already have Reflect itself active. - if (HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL) + if (HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL) && !(gSideStatuses[atkSide] & SIDE_STATUS_REFLECT)) return TRUE; break; case EFFECT_LIGHT_SCREEN: // Use only if the player has a special move and AI doesn't already have Light Screen itself active. - if (HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) + if (HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL) && !(gSideStatuses[atkSide] & SIDE_STATUS_LIGHTSCREEN)) return TRUE; break; @@ -3465,7 +3452,7 @@ bool32 IsPartyFullyHealedExceptBattler(u32 battlerId) return TRUE; } -bool32 PartyHasMoveSplit(u32 battlerId, u32 split) +bool32 PartyHasMoveCategory(u32 battlerId, u32 category) { struct Pokemon *party = GetBattlerParty(battlerId); u32 i, j; @@ -3483,7 +3470,7 @@ bool32 PartyHasMoveSplit(u32 battlerId, u32 split) if (pp > 0 && move != MOVE_NONE) { //TODO - handle photon geyser, light that burns the sky - if (gBattleMoves[move].split == split) + if (gBattleMoves[move].category == category) return TRUE; } } @@ -3492,16 +3479,16 @@ bool32 PartyHasMoveSplit(u32 battlerId, u32 split) return FALSE; } -bool32 SideHasMoveSplit(u32 battlerId, u32 split) +bool32 SideHasMoveCategory(u32 battlerId, u32 category) { if (IsDoubleBattle()) { - if (HasMoveWithSplit(battlerId, split) || HasMoveWithSplit(BATTLE_PARTNER(battlerId), split)) + if (HasMoveWithCategory(battlerId, category) || HasMoveWithCategory(BATTLE_PARTNER(battlerId), category)) return TRUE; } else { - if (HasMoveWithSplit(battlerId, split)) + if (HasMoveWithCategory(battlerId, category)) return TRUE; } return FALSE; @@ -3599,7 +3586,7 @@ void IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, u32 statId, s32 *score) switch (statId) { case STAT_ATK: - if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL) && AI_DATA->hpPercents[battlerAtk] > 40) + if (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_PHYSICAL) && AI_DATA->hpPercents[battlerAtk] > 40) { if (gBattleMons[battlerAtk].statStages[STAT_ATK] < STAT_UP_2_STAGE) ADJUST_SCORE_PTR(2); @@ -3610,7 +3597,7 @@ void IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, u32 statId, s32 *score) ADJUST_SCORE_PTR(1); break; case STAT_DEF: - if ((HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)|| IS_MOVE_PHYSICAL(gLastMoves[battlerDef])) + if ((HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL)|| IS_MOVE_PHYSICAL(gLastMoves[battlerDef])) && AI_DATA->hpPercents[battlerAtk] > 70) { if (gBattleMons[battlerAtk].statStages[STAT_DEF] < STAT_UP_2_STAGE) @@ -3629,7 +3616,7 @@ void IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, u32 statId, s32 *score) } break; case STAT_SPATK: - if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL) && AI_DATA->hpPercents[battlerAtk] > 40) + if (HasMoveWithCategory(battlerAtk, BATTLE_CATEGORY_SPECIAL) && AI_DATA->hpPercents[battlerAtk] > 40) { if (gBattleMons[battlerAtk].statStages[STAT_SPATK] < STAT_UP_2_STAGE) ADJUST_SCORE_PTR(2); @@ -3638,7 +3625,7 @@ void IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, u32 statId, s32 *score) } break; case STAT_SPDEF: - if ((HasMoveWithSplit(battlerDef, SPLIT_SPECIAL) || IS_MOVE_SPECIAL(gLastMoves[battlerDef])) + if ((HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL) || IS_MOVE_SPECIAL(gLastMoves[battlerDef])) && AI_DATA->hpPercents[battlerAtk] > 70) { if (gBattleMons[battlerAtk].statStages[STAT_SPDEF] < STAT_UP_2_STAGE) @@ -3698,7 +3685,7 @@ void IncreaseBurnScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score) if (AI_CanBurn(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef], BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove)) { ADJUST_SCORE_PTR(1); // burning is good - if (HasMoveWithSplit(battlerDef, SPLIT_PHYSICAL)) + if (HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_PHYSICAL)) { if (CanTargetFaintAi(battlerDef, battlerAtk)) ADJUST_SCORE_PTR(2); // burning the target to stay alive is cool @@ -3777,7 +3764,7 @@ void IncreaseFrostbiteScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score if (AI_CanGiveFrostbite(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef], BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove)) { ADJUST_SCORE_PTR(1); // frostbite is good - if (HasMoveWithSplit(battlerDef, SPLIT_SPECIAL)) + if (HasMoveWithCategory(battlerDef, BATTLE_CATEGORY_SPECIAL)) { if (CanTargetFaintAi(battlerDef, battlerAtk)) ADJUST_SCORE_PTR(2); // frostbiting the target to stay alive is cool @@ -3833,3 +3820,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 c46c5cee4c..a80cc3d1f7 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -237,7 +237,9 @@ void LaunchBattleAnimation(u32 animType, u32 animId) if (gTestRunnerEnabled) { TestRunner_Battle_RecordAnimation(animType, animId); - if (gTestRunnerHeadless) + // Play Transform and Ally Switch even in Headless as these move animations also change mon data. + if (gTestRunnerHeadless + && !(animType == ANIM_TYPE_MOVE && (animId == MOVE_TRANSFORM || animId == MOVE_ALLY_SWITCH))) { gAnimScriptCallback = Nop; gAnimScriptActive = FALSE; @@ -278,6 +280,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 b79c94a6a3..188ec915d6 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -9,21 +9,16 @@ #include "math_util.h" #include "palette.h" #include "random.h" +#include "reshow_battle_screen.h" #include "scanline_effect.h" #include "sound.h" #include "trig.h" #include "util.h" +#include "constants/abilities.h" #include "constants/rgb.h" #include "constants/songs.h" #include "constants/moves.h" -struct { - s16 startX; - s16 startY; - s16 targetX; - s16 targetY; -} static EWRAM_DATA sFrenzyPlantRootData = {0}; // Debug? Written to but never read. - static void AnimMovePowderParticle_Step(struct Sprite *); static void AnimSolarBeamSmallOrb(struct Sprite *); static void AnimSolarBeamSmallOrb_Step(struct Sprite *); @@ -4256,10 +4251,6 @@ static void AnimFrenzyPlantRoot(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->data[2] = gBattleAnimArgs[5]; sprite->callback = AnimRootFlickerOut; - sFrenzyPlantRootData.startX = sprite->x; - sFrenzyPlantRootData.startY = sprite->y; - sFrenzyPlantRootData.targetX = targetX; - sFrenzyPlantRootData.targetY = targetY; } static void AnimRootFlickerOut(struct Sprite *sprite) @@ -6486,78 +6477,238 @@ static void AnimHornHit_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTask_DoubleTeam(u8 taskId) -{ - u16 i; - int obj; - u16 r3; - u16 r4; - struct Task *task = &gTasks[taskId]; - task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->data[1] = AllocSpritePalette(ANIM_TAG_BENT_SPOON); - r3 = OBJ_PLTT_ID(task->data[1]); - r4 = OBJ_PLTT_ID2(gSprites[task->data[0]].oam.paletteNum); - for (i = 1; i < 16; i++) - gPlttBufferUnfaded[r3 + i] = gPlttBufferUnfaded[r4 + i]; +// Double Team and Ally Switch. +#define tBattlerSpriteId data[0] +#define tSpoonPal data[1] +#define tBlendSpritesCount data[3] +#define tBattlerId data[4] +#define tIsAllySwitch data[5] - BlendPalette(r3, 16, 11, RGB_BLACK); - task->data[3] = 0; - i = 0; - while (i < 2 && (obj = CloneBattlerSpriteWithBlend(0)) >= 0) +#define sCounter data[0] +#define sSinIndex data[1] +#define sTaskId data[2] +#define sCounter2 data[3] +#define sSinAmplitude data[4] +#define sSinIndexMod data[5] +#define sBattlerFlank data[6] + +void PrepareDoubleTeamAnim(u32 taskId, u32 animBattler, bool32 forAllySwitch) +{ + s32 i, spriteId; + u16 palOffsetBattler, palOffsetSpoon; + struct Task *task = &gTasks[taskId]; + + task->tBattlerSpriteId = GetAnimBattlerSpriteId(animBattler); + task->tSpoonPal = AllocSpritePalette(ANIM_TAG_BENT_SPOON); + task->tBattlerId = GetAnimBattlerId(animBattler); + task->tIsAllySwitch = forAllySwitch; + palOffsetSpoon = OBJ_PLTT_ID(task->tSpoonPal); + palOffsetBattler = OBJ_PLTT_ID2(gSprites[task->tBattlerSpriteId].oam.paletteNum); + for (i = 1; i < 16; i++) + gPlttBufferUnfaded[palOffsetSpoon + i] = gPlttBufferUnfaded[palOffsetBattler + i]; + + BlendPalette(palOffsetSpoon, 16, 11, RGB_BLACK); + task->tBlendSpritesCount = 0; + for (i = 0; i < ((forAllySwitch == TRUE) ? 1 : 2); i++) { - gSprites[obj].oam.paletteNum = task->data[1]; - gSprites[obj].data[0] = 0; - gSprites[obj].data[1] = i << 7; - gSprites[obj].data[2] = taskId; - gSprites[obj].callback = AnimDoubleTeam; - task->data[3]++; - i++; + spriteId = CloneBattlerSpriteWithBlend(animBattler); + if (spriteId < 0) + break; + gSprites[spriteId].oam.paletteNum = task->tSpoonPal; + gSprites[spriteId].sCounter = 0; + gSprites[spriteId].sSinIndex = i << 7; + gSprites[spriteId].sTaskId = taskId; + // Which direction + if (gBattleAnimAttacker & BIT_FLANK) + gSprites[spriteId].sBattlerFlank = (animBattler != ANIM_ATTACKER); + else + gSprites[spriteId].sBattlerFlank = (animBattler == ANIM_ATTACKER); + gSprites[spriteId].callback = AnimDoubleTeam; + task->tBlendSpritesCount++; } task->func = AnimTask_DoubleTeam_Step; - if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) + if (GetBattlerSpriteBGPriorityRank(task->tBattlerId) == 1) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); } +void AnimTask_DoubleTeam(u8 taskId) +{ + PrepareDoubleTeamAnim(taskId, ANIM_ATTACKER, FALSE); +} + +static inline void SwapStructData(void *s1, void *s2, void *data, u32 size) +{ + memcpy(data, s1, size); + memcpy(s1, s2, size); + memcpy(s2, data, size); +} + +static void ReloadBattlerSprites(u32 battler, struct Pokemon *party) +{ + BattleLoadMonSpriteGfx(&party[gBattlerPartyIndexes[battler]], battler); + CreateBattlerSprite(battler); + UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &party[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL); + // If battler is mega evolved / primal reversed, hide the sprite until the move animation finishes. + MegaIndicator_SetVisibilities(gHealthboxSpriteIds[battler], TRUE); +} + +static void AnimTask_AllySwitchDataSwap(u8 taskId) +{ + s32 i, j; + struct Pokemon *party; + u32 temp; + u32 battlerAtk = gBattlerAttacker; + u32 battlerPartner = BATTLE_PARTNER(battlerAtk); + + void *data = Alloc(0x200); + if (data == NULL) + { + SoftReset(1); + } + + SwapStructData(&gBattleMons[battlerAtk], &gBattleMons[battlerPartner], data, sizeof(struct BattlePokemon)); + SwapStructData(&gDisableStructs[battlerAtk], &gDisableStructs[battlerPartner], data, sizeof(struct DisableStruct)); + SwapStructData(&gSpecialStatuses[battlerAtk], &gSpecialStatuses[battlerPartner], data, sizeof(struct SpecialStatus)); + SwapStructData(&gProtectStructs[battlerAtk], &gProtectStructs[battlerPartner], data, sizeof(struct ProtectStruct)); + SwapStructData(&gBattleSpritesDataPtr->battlerData[battlerAtk], &gBattleSpritesDataPtr->battlerData[battlerPartner], data, sizeof(struct BattleSpriteInfo)); + + SWAP(gTransformedPersonalities[battlerAtk], gTransformedPersonalities[battlerPartner], temp); + SWAP(gTransformedOtIds[battlerAtk], gTransformedOtIds[battlerPartner], temp); + SWAP(gStatuses3[battlerAtk], gStatuses3[battlerPartner], temp); + SWAP(gStatuses4[battlerAtk], gStatuses4[battlerPartner], temp); + SWAP(gBattleStruct->chosenMovePositions[battlerAtk], gBattleStruct->chosenMovePositions[battlerPartner], temp); + SWAP(gChosenMoveByBattler[battlerAtk], gChosenMoveByBattler[battlerPartner], temp); + SWAP(gBattleStruct->moveTarget[battlerAtk], gBattleStruct->moveTarget[battlerPartner], temp); + SWAP(gMoveSelectionCursor[battlerAtk], gMoveSelectionCursor[battlerPartner], temp); + // Swap turn order, so that all the battlers take action + SWAP(gChosenActionByBattler[battlerAtk], gChosenActionByBattler[battlerPartner], temp); + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + { + if (gBattlerByTurnOrder[i] == battlerAtk || gBattlerByTurnOrder[i] == battlerPartner) + { + for (j = i + 1; j < MAX_BATTLERS_COUNT; j++) + { + if (gBattlerByTurnOrder[j] == battlerAtk || gBattlerByTurnOrder[j] == battlerPartner) + break; + } + SWAP(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], temp); + break; + } + } + + party = GetBattlerParty(battlerAtk); + SwitchTwoBattlersInParty(battlerAtk, battlerPartner); + SWAP(gBattlerPartyIndexes[battlerAtk], gBattlerPartyIndexes[battlerPartner], temp); + + // For Snipe Shot and abilities Stalwart/Propeller Tail - keep the original target. + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + { + u16 ability = GetBattlerAbility(i); + if (gChosenMoveByBattler[i] == MOVE_SNIPE_SHOT || ability == ABILITY_PROPELLER_TAIL || ability == ABILITY_STALWART) + gBattleStruct->moveTarget[i] ^= BIT_FLANK; + } + + // For some reason the order in which the sprites are created matters. Looks like an issue with the sprite system, potentially with the Sprite Template. + if ((battlerAtk & BIT_FLANK) != 0) + { + ReloadBattlerSprites(battlerAtk, party); + ReloadBattlerSprites(battlerPartner, party); + } + else + { + ReloadBattlerSprites(battlerPartner, party); + ReloadBattlerSprites(battlerAtk, party); + } + + Free(data); + + gBattleScripting.battler = battlerPartner; + DestroyAnimVisualTask(taskId); +} + static void AnimTask_DoubleTeam_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (!task->data[3]) + if (task->tBlendSpritesCount == 0) { - if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) + if (GetBattlerSpriteBGPriorityRank(task->tBattlerId) == 1) SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); - DestroyAnimVisualTask(taskId); + // Swap attacker and partner data-wise and visually + if (task->tIsAllySwitch && task->tBattlerId == BATTLE_PARTNER(gBattlerAttacker)) + gTasks[taskId].func = AnimTask_AllySwitchDataSwap; + else + DestroyAnimVisualTask(taskId); } } static void AnimDoubleTeam(struct Sprite *sprite) { - if (++sprite->data[3] > 1) + if (++sprite->sCounter2 > 1) { - sprite->data[3] = 0; - sprite->data[0]++; + sprite->sCounter2 = 0; + sprite->sCounter++; } - if (sprite->data[0] > 64) + if (sprite->sCounter > 64) { - gTasks[sprite->data[2]].data[3]--; + gTasks[sprite->sTaskId].tBlendSpritesCount--; + // If Ally Switch - destroy the mon sprites, they'll be created again later. + if (gTasks[sprite->sTaskId].tIsAllySwitch && gTasks[sprite->sTaskId].tBattlerId == BATTLE_PARTNER(gBattlerAttacker)) + { + DestroySprite(&gSprites[gBattlerSpriteIds[gBattlerAttacker]]); + DestroySprite(&gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattlerAttacker)]]); + } DestroySpriteWithActiveSheet(sprite); } else { - sprite->data[4] = gSineTable[sprite->data[0]] / 6; - sprite->data[5] = gSineTable[sprite->data[0]] / 13; - sprite->data[1] = (sprite->data[1] + sprite->data[5]) & 0xFF; - sprite->x2 = Sin(sprite->data[1], sprite->data[4]); + sprite->sSinAmplitude = gSineTable[sprite->sCounter] / 6; + sprite->sSinIndexMod = gSineTable[sprite->sCounter] / 13; + sprite->sSinIndex = (sprite->sSinIndex + sprite->sSinIndexMod) & 0xFF; + sprite->x2 = Sin(sprite->sSinIndex, sprite->sSinAmplitude); + if (gTasks[sprite->sTaskId].tIsAllySwitch) + { + if (sprite->sBattlerFlank) + sprite->x2 = abs(sprite->x2); + else + sprite->x2 = -(abs(sprite->x2)); + } } } +void AnimTask_AllySwitchAttacker(u8 taskId) +{ + PrepareDoubleTeamAnim(taskId, ANIM_ATTACKER, TRUE); + gSprites[gBattlerSpriteIds[gBattlerAttacker]].invisible = TRUE; + gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattlerAttacker)]].invisible = TRUE; +} + +void AnimTask_AllySwitchPartner(u8 taskId) +{ + PrepareDoubleTeamAnim(taskId, ANIM_ATK_PARTNER, TRUE); +} + +#undef tBattlerSpriteId +#undef tSpoonPal +#undef tBlendSpritesCount +#undef tBattlerId +#undef tIsAllySwitch + +#undef sCounter +#undef sSinIndex +#undef sTaskId +#undef sCounter2 +#undef sSinAmplitude +#undef sSinIndexMod +#undef sBattlerFlank + static void AnimSuperFang(struct Sprite *sprite) { StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index 9a68f929bb..3a770a7c8c 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 256b2abcba..78e1a0a445 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 99f58d6888..5faa0a696a 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -5680,13 +5680,13 @@ const struct SpriteTemplate gBlackHoleEclipseRedRingInwardsSpriteTemplate = .affineAnims = gThinRingShrinkingAffineAnimTable, .callback = AnimSpriteOnMonPos }; -static const union AffineAnimCmd gGrowingBackHoleTargetAffineCmds[] = { +static const union AffineAnimCmd sGrowingBackHoleTargetAffineCmds[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0, 0, -10, 0x88), AFFINEANIMCMD_END, }; static const union AffineAnimCmd *const gGrowingBlackHoleTargetAffineAnimTable[] = { - gGrowingBackHoleTargetAffineCmds, + sGrowingBackHoleTargetAffineCmds, }; const struct SpriteTemplate gBlackHoleEclipseHoleSpriteTemplate = { @@ -5698,13 +5698,13 @@ const struct SpriteTemplate gBlackHoleEclipseHoleSpriteTemplate = .affineAnims = gGrowingBlackHoleTargetAffineAnimTable, .callback = AnimSpriteOnMonPos }; -static const union AffineAnimCmd gShrinkingBlackHoleAffineCmds[] = { +static const union AffineAnimCmd sShrinkingBlackHoleAffineCmds[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-0x10, -0x10, 0xf6, 8), AFFINEANIMCMD_END_ALT(1), }; static const union AffineAnimCmd *const gShrinkingBlackHoleAffineAnimTable[] = { - gShrinkingBlackHoleAffineCmds, + sShrinkingBlackHoleAffineCmds, }; const struct SpriteTemplate gBlackHoleEclipseHoleShrinkSpriteTemplate = { @@ -5716,13 +5716,13 @@ const struct SpriteTemplate gBlackHoleEclipseHoleShrinkSpriteTemplate = .affineAnims = gShrinkingBlackHoleAffineAnimTable, .callback = AnimSpriteOnMonPos }; -static const union AffineAnimCmd gGrowingBackHoleAffineCmds[] = { +static const union AffineAnimCmd sGrowingBackHoleAffineCmds[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0, 0, -10, 0x48), AFFINEANIMCMD_END, }; static const union AffineAnimCmd *const gGrowingBlackHoleAffineAnimTable[] = { - gGrowingBackHoleAffineCmds, + sGrowingBackHoleAffineCmds, }; const struct SpriteTemplate gBlackHoleEclipseHoleUserSpriteTemplate = { @@ -9152,18 +9152,12 @@ void AnimTask_GetWeatherToSet(u8 taskId) void AnimTask_SyrupBomb(u8 taskId) { struct Pokemon *party = GetBattlerParty(gBattleAnimAttacker); - u32 isShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattleAnimAttacker]]); - - gDisableStructs[gBattleAnimTarget].syrupBombIsShiny = isShiny; - gBattleAnimArgs[0] = isShiny; + gBattleAnimArgs[0] = IsMonShiny(&party[gBattlerPartyIndexes[gBattleAnimAttacker]]); DestroyAnimVisualTask(taskId); } void AnimTask_StickySyrup(u8 taskId) { - if (gDisableStructs[gBattleAnimTarget].syrupBombIsShiny) - gBattleAnimArgs[0] = TRUE; - else - gBattleAnimArgs[0] = FALSE; + gBattleAnimArgs[0] = gAnimDisableStructPtr->syrupBombIsShiny; DestroyAnimVisualTask(taskId); } diff --git a/src/battle_bg.c b/src/battle_bg.c index 2e92658343..496618f315 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -26,6 +26,7 @@ #include "constants/songs.h" #include "constants/trainers.h" #include "constants/battle_anim.h" +#include "constants/battle_partner.h" // .rodata static const u16 sUnrefArray[] = {0x0300, 0x0000}; //OamData? @@ -765,17 +766,17 @@ void DrawMainBattleBackground(void) case SPECIES_GROUDON: LZDecompressVram(gBattleTerrainTiles_Cave, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Cave, (void*)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case SPECIES_KYOGRE: LZDecompressVram(gBattleTerrainTiles_Water, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Water, (void*)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; case SPECIES_RAYQUAZA: LZDecompressVram(gBattleTerrainTiles_Rayquaza, (void*)(BG_CHAR_ADDR(2))); LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); - LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); break; default: LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); @@ -1146,7 +1147,7 @@ void DrawBattleEntryBackground(void) } else if (gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_EREADER_TRAINER)) { - if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId == TRAINER_STEVEN_PARTNER || gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER) + if (!(gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) || gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE)) { LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)(BG_SCREEN_ADDR(28))); @@ -1370,7 +1371,7 @@ bool8 LoadChosenBattleElement(u8 caseId) else if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) { if (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) == SPECIES_GROUDON) - LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60); + LoadCompressedPalette(gBattleTerrainPalette_Groudon, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); else LoadCompressedPalette(gBattleTerrainPalette_Kyogre, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); } diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 3a3cb7e8ce..c9197bc5df 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -28,6 +28,7 @@ #include "constants/songs.h" #include "constants/trainers.h" #include "recorded_battle.h" +#include "random.h" static void LinkOpponentHandleLoadMonSprite(u32 battler); static void LinkOpponentHandleSwitchInAnim(u32 battler); @@ -462,7 +463,7 @@ static void LinkOpponentHandleDrawTrainerPic(u32 battler) } BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, - xPos, 40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicId].size), + xPos, 40 + 4 * (8 - gTrainerSprites[trainerPicId].y_offset), -1); } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 4b8daeb1e1..e5fb49bebf 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -28,6 +28,7 @@ #include "constants/songs.h" #include "constants/trainers.h" #include "recorded_battle.h" +#include "random.h" static void LinkPartnerHandleLoadMonSprite(u32 battler); static void LinkPartnerHandleSwitchInAnim(u32 battler); @@ -234,7 +235,7 @@ static void LinkPartnerHandleDrawTrainerPic(u32 battler) trainerPicId = LinkPlayerGetTrainerPicId(GetBattlerMultiplayerId(battler)); BtlController_HandleDrawTrainerPic(battler, trainerPicId, FALSE, - xPos, 80 + 4 * (8 - gTrainerBackPicCoords[trainerPicId].size), + xPos, 80 + 4 * (8 - gTrainerBacksprites[trainerPicId].coordinates.size), -1); } @@ -261,7 +262,7 @@ static void LinkPartnerHandleHealthBarUpdate(u32 battler) static void LinkPartnerHandleIntroTrainerBallThrow(u32 battler) { u32 trainerPicId = LinkPlayerGetTrainerPicId(GetBattlerMultiplayerId(battler)); - const u32 *trainerPal = gTrainerBackPicPaletteTable[trainerPicId].data; + const u32 *trainerPal = gTrainerBacksprites[trainerPicId].palette.data; // Link partner uses the same intro sequence as the player partner. BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F9, trainerPal, 24, Controller_PlayerPartnerShowIntroHealthbox); } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 6b09f0d41f..649240ce34 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -485,7 +485,7 @@ static void OpponentHandleDrawTrainerPic(u32 battler) } BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, - xPos, 40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicId].size), + xPos, 40 + 4 * (8 - gTrainerSprites[trainerPicId].y_offset), -1); } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 48ab691dfa..10f0951950 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -31,6 +31,8 @@ #include "util.h" #include "window.h" #include "constants/battle_anim.h" +#include "constants/battle_partner.h" +#include "constants/hold_effects.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/party_menu.h" @@ -702,7 +704,7 @@ static void HandleInputChooseMove(u32 battler) QueueZMove(battler, chosenMove); gBattleStruct->zmove.viewing = FALSE; - if (gBattleMoves[moveInfo->moves[gMoveSelectionCursor[battler]]].split != SPLIT_STATUS) + if (gBattleMoves[moveInfo->moves[gMoveSelectionCursor[battler]]].category != BATTLE_CATEGORY_STATUS) moveTarget = MOVE_TARGET_SELECTED; //damaging z moves always have selected target } @@ -1727,6 +1729,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); @@ -1734,7 +1739,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); } @@ -1858,25 +1876,25 @@ static void PlayerHandleDrawTrainerPic(u32 battler) else // First mon, on the left. xPos = 32; - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != TRAINER_STEVEN_PARTNER && gPartnerTrainerId < TRAINER_CUSTOM_PARTNER) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId < TRAINER_PARTNER(PARTNER_NONE)) { xPos = 90; - yPos = (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; } else { - yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80; } } else { xPos = 80; - yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80; } // Use front pic table for any tag battles unless your partner is Steven or a custom partner. - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != TRAINER_STEVEN_PARTNER && gPartnerTrainerId < TRAINER_CUSTOM_PARTNER) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId < TRAINER_PARTNER(PARTNER_NONE)) { trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender); isFrontPic = TRUE; @@ -2215,7 +2233,7 @@ static void PlayerHandleOneReturnValue_Duplicate(u32 battler) static void PlayerHandleIntroTrainerBallThrow(u32 battler) { - const u32 *trainerPal = gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data; + const u32 *trainerPal = gTrainerBacksprites[gSaveBlock2Ptr->playerGender].palette.data; BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F8, trainerPal, 31, Intro_TryShinyAnimShowHealthbox); } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index f56c14a076..62941c92af 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -27,6 +27,7 @@ #include "util.h" #include "window.h" #include "constants/battle_anim.h" +#include "constants/battle_partner.h" #include "constants/songs.h" #include "constants/party_menu.h" #include "constants/trainers.h" @@ -176,6 +177,7 @@ void Controller_PlayerPartnerShowIntroHealthbox(u32 battler) && ++gBattleSpritesDataPtr->healthBoxesData[battler].introEndDelay != 1) { gBattleSpritesDataPtr->healthBoxesData[battler].introEndDelay = 0; + TryShinyAnimation(battler, &gPlayerParty[gBattlerPartyIndexes[battler]]); if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { @@ -295,33 +297,27 @@ static void PlayerPartnerHandleDrawTrainerPic(u32 battler) s16 xPos, yPos; u32 trainerPicId; - if (gPartnerTrainerId == TRAINER_STEVEN_PARTNER) + if (gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE)) { - trainerPicId = TRAINER_BACK_PIC_STEVEN; + trainerPicId = gBattlePartners[gPartnerTrainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerPic; xPos = 90; - yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80; - } - else if (gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER) - { - trainerPicId = gPartnerSpriteId; - xPos = 90; - yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80; } else if (IsAiVsAiBattle()) { trainerPicId = gTrainers[gPartnerTrainerId].trainerPic; xPos = 60; - yPos = (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; } else { trainerPicId = GetFrontierTrainerFrontSpriteId(gPartnerTrainerId); xPos = 32; - yPos = (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; } - // Use back pic only if the partner is Steven or a custom partner. - if (gPartnerTrainerId == TRAINER_STEVEN_PARTNER || gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER) + // Use back pic only if the partner Steven or is custom. + if (gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE)) isFrontPic = FALSE; else isFrontPic = TRUE; @@ -438,14 +434,12 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(u32 battler) { const u32 *trainerPal; - if (gPartnerTrainerId == TRAINER_STEVEN_PARTNER) - trainerPal = gTrainerBackPicPaletteTable[TRAINER_STEVEN_PARTNER].data; - else if (gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER) // Custom multi battle. - trainerPal = gTrainerBackPicPaletteTable[gPartnerSpriteId].data; + if (gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE)) + trainerPal = gTrainerBacksprites[gPartnerSpriteId].palette.data; else if (IsAiVsAiBattle()) - trainerPal = gTrainerFrontPicPaletteTable[gTrainers[gPartnerTrainerId].trainerPic].data; + trainerPal = gTrainerSprites[gTrainers[gPartnerTrainerId].trainerPic].palette.data; else - trainerPal = gTrainerFrontPicPaletteTable[GetFrontierTrainerFrontSpriteId(gPartnerTrainerId)].data; // 2 vs 2 multi battle in Battle Frontier, load front sprite and pal. + trainerPal = gTrainerSprites[GetFrontierTrainerFrontSpriteId(gPartnerTrainerId)].palette.data; // 2 vs 2 multi battle in Battle Frontier, load front sprite and pal. BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F9, trainerPal, 24, Controller_PlayerPartnerShowIntroHealthbox); } diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 58ef101ec9..36caa14c14 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -421,7 +421,7 @@ static void RecordedOpponentHandleDrawTrainerPic(u32 battler) } BtlController_HandleDrawTrainerPic(battler, trainerPicId, TRUE, - xPos, 40 + 4 * (8 - gTrainerFrontPicCoords[trainerPicId].size), + xPos, 40 + 4 * (8 - gTrainerSprites[trainerPicId].y_offset), -1); } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 39e869867e..b8322b3eaf 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -393,18 +393,18 @@ static void RecordedPlayerHandleDrawTrainerPic(u32 battler) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { xPos = 90; - yPos = (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 80; } else { - yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80; } } else { xPos = 80; - yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80; + yPos = (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80; } if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) @@ -517,7 +517,7 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(u32 battler) else trainerPicId = gSaveBlock2Ptr->playerGender + TRAINER_BACK_PIC_BRENDAN; - trainerPal = gTrainerFrontPicPaletteTable[trainerPicId].data; + trainerPal = gTrainerSprites[trainerPicId].palette.data; BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F9, trainerPal, 24, Intro_TryShinyAnimShowHealthbox); } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index b5a64c286b..39fbc63ab6 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -249,7 +249,7 @@ static void SafariHandleDrawTrainerPic(u32 battler) u32 trainerPicId = gSaveBlock2Ptr->playerGender + TRAINER_BACK_PIC_BRENDAN; BtlController_HandleDrawTrainerPic(battler, trainerPicId, FALSE, - 80, 80 + 4 * (8 - gTrainerBackPicCoords[trainerPicId].size), + 80, 80 + 4 * (8 - gTrainerBacksprites[trainerPicId].coordinates.size), 30); } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index a262886f46..7b0bb6f154 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -297,7 +297,7 @@ static void WallyBufferExecCompleted(u32 battler) static void WallyHandleDrawTrainerPic(u32 battler) { BtlController_HandleDrawTrainerPic(battler, TRAINER_BACK_PIC_WALLY, FALSE, - 80, 80 + 4 * (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].size), + 80, 80 + 4 * (8 - gTrainerBacksprites[TRAINER_BACK_PIC_WALLY].coordinates.size), 30); } @@ -420,7 +420,7 @@ static void WallyHandleFaintingCry(u32 battler) static void WallyHandleIntroTrainerBallThrow(u32 battler) { - const u32 *trainerPal = gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_WALLY].data; + const u32 *trainerPal = gTrainerBacksprites[TRAINER_BACK_PIC_WALLY].palette.data; BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F8, trainerPal, 31, Intro_TryShinyAnimShowHealthbox); } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 8479ebb172..632d7e50d8 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1508,13 +1508,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 @@ -2479,7 +2480,7 @@ void BtlController_HandleDrawTrainerPic(u32 battler, u32 trainerPicId, bool32 is yPos, subpriority); - gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerSprites[trainerPicId].palette.tag); gSprites[gBattlerSpriteIds[battler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[battler]].sSpeedX = 2; gSprites[gBattlerSpriteIds[battler]].oam.affineParam = trainerPicId; @@ -2497,7 +2498,7 @@ void BtlController_HandleDrawTrainerPic(u32 battler, u32 trainerPicId, bool32 is yPos, subpriority); - gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerSprites[trainerPicId].palette.tag); gSprites[gBattlerSpriteIds[battler]].oam.affineMode = ST_OAM_AFFINE_OFF; gSprites[gBattlerSpriteIds[battler]].hFlip = 1; gSprites[gBattlerSpriteIds[battler]].y2 = 48; @@ -2531,7 +2532,7 @@ void BtlController_HandleTrainerSlide(u32 battler, u32 trainerPicId) SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(battler)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, + (8 - gTrainerBacksprites[trainerPicId].coordinates.size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].x2 = -96; @@ -2543,10 +2544,10 @@ void BtlController_HandleTrainerSlide(u32 battler, u32 trainerPicId) SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(battler)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 176, - (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, + (8 - gTrainerSprites[trainerPicId].y_offset) * 4 + 40, 30); gSprites[gBattlerSpriteIds[battler]].oam.affineParam = trainerPicId; - gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); + gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerSprites[trainerPicId].palette.tag); gSprites[gBattlerSpriteIds[battler]].x2 = 96; gSprites[gBattlerSpriteIds[battler]].x += 32; gSprites[gBattlerSpriteIds[battler]].sSpeedX = -2; @@ -3035,6 +3036,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_dome.c b/src/battle_dome.c index 24bad30f6b..05b8ebec4a 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 a9370a4ab5..a44bb3aeb9 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++) { @@ -322,19 +322,19 @@ u16 GetMaxMove(u16 battlerId, u16 baseMove) { return MOVE_STRUGGLE; } - else if (gBattleMoves[baseMove].split == SPLIT_STATUS) + else if (gBattleMoves[baseMove].category == BATTLE_CATEGORY_STATUS) { move = MOVE_MAX_GUARD; } else if (gBattleStruct->dynamicMoveType) { move = GetTypeBasedMaxMove(battlerId, gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK); - gBattleStruct->dynamax.splits[battlerId] = gBattleMoves[baseMove].split; + gBattleStruct->dynamax.categories[battlerId] = gBattleMoves[baseMove].category; } else { move = GetTypeBasedMaxMove(battlerId, gBattleMoves[baseMove].type); - gBattleStruct->dynamax.splits[battlerId] = gBattleMoves[baseMove].split; + gBattleStruct->dynamax.categories[battlerId] = gBattleMoves[baseMove].category; } return move; diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 8cba2bceef..66ff6bcb03 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 f321ff75dd..b38ccf495b 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -650,25 +650,23 @@ void BattleGfxSfxDummy2(u16 species) void DecompressTrainerFrontPic(u16 frontPicId, u8 battler) { u8 position = GetBattlerPosition(battler); - DecompressPicFromTable(&gTrainerFrontPicTable[frontPicId], - gMonSpritesGfxPtr->sprites.ptr[position], - SPECIES_NONE); - LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[frontPicId]); + DecompressPicFromTable(&gTrainerSprites[frontPicId].frontPic, + gMonSpritesGfxPtr->sprites.ptr[position]); + LoadCompressedSpritePalette(&gTrainerSprites[frontPicId].palette); } void DecompressTrainerBackPic(u16 backPicId, u8 battler) { u8 position = GetBattlerPosition(battler); - DecompressPicFromTable(&gTrainerBackPicTable[backPicId], - gMonSpritesGfxPtr->sprites.ptr[position], - SPECIES_NONE); - LoadCompressedPalette(gTrainerBackPicPaletteTable[backPicId].data, + DecompressPicFromTable(&gTrainerBacksprites[backPicId].backPic, + gMonSpritesGfxPtr->sprites.ptr[position]); + LoadCompressedPalette(gTrainerBacksprites[backPicId].palette.data, OBJ_PLTT_ID(battler), PLTT_SIZE_4BPP); } void FreeTrainerFrontPicPalette(u16 frontPicId) { - FreeSpritePaletteByTag(gTrainerFrontPicPaletteTable[frontPicId].tag); + FreeSpritePaletteByTag(gTrainerSprites[frontPicId].palette.tag); } // Unused. @@ -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 d3751f702f..b07cb3ee07 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -195,7 +195,6 @@ static void SpriteCB_StatusSummaryBalls_OnSwitchout(struct Sprite *); static void SpriteCb_MegaTrigger(struct Sprite *); static void SpriteCb_BurstTrigger(struct Sprite *); -static void MegaIndicator_SetVisibilities(u32 healthboxId, bool32 invisible); static void MegaIndicator_UpdateLevel(u32 healthboxId, u32 level); static void MegaIndicator_CreateSprite(u32 battlerId, u32 healthboxSpriteId); static void MegaIndicator_UpdateOamPriority(u32 healthboxId, u32 oamPriority); diff --git a/src/battle_intro.c b/src/battle_intro.c index 90ff736f00..463804368f 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -9,6 +9,7 @@ #include "scanline_effect.h" #include "task.h" #include "trig.h" +#include "constants/battle_partner.h" #include "constants/trainers.h" extern const u8 gBattleAnimBgCntSet[]; @@ -104,7 +105,7 @@ void HandleIntroSlide(u8 terrain) { u8 taskId; - if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gPartnerTrainerId != TRAINER_STEVEN_PARTNER && gPartnerTrainerId < TRAINER_CUSTOM_PARTNER) + if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gPartnerTrainerId < TRAINER_PARTNER(PARTNER_NONE)) { taskId = CreateTask(BattleIntroSlidePartner, 0); } diff --git a/src/battle_main.c b/src/battle_main.c index 2823b86bea..6a1d6eb6ab 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -56,6 +56,7 @@ #include "constants/abilities.h" #include "constants/battle_move_effects.h" #include "constants/battle_string_ids.h" +#include "constants/battle_partner.h" #include "constants/hold_effects.h" #include "constants/items.h" #include "constants/moves.h" @@ -65,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[]; @@ -102,7 +101,8 @@ static void SetActionsAndBattlersTurnOrder(void); static void UpdateBattlerPartyOrdersOnSwitch(u32 battler); static bool8 AllAtActionConfirmed(void); static void TryChangeTurnOrder(void); -static void CheckQuickClaw_CustapBerryActivation(void); +static void TryChangingTurnOrderEffects(u32 battler1, u32 battler2); +static void CheckChangingTurnOrderEffects(void); static void FreeResetData_ReturnToOvOrDoEvolutions(void); static void ReturnFromBattleToOverworld(void); static void TryEvolvePokemon(void); @@ -159,7 +159,7 @@ EWRAM_DATA u16 gChosenMove = 0; EWRAM_DATA u16 gCalledMove = 0; EWRAM_DATA s32 gBattleMoveDamage = 0; EWRAM_DATA s32 gHpDealt = 0; -EWRAM_DATA s32 gTakenDmg[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA s32 gBideDmg[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gLastUsedItem = 0; EWRAM_DATA u16 gLastUsedAbility = 0; EWRAM_DATA u8 gBattlerAttacker = 0; @@ -185,7 +185,7 @@ EWRAM_DATA u8 gLastHitBy[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gMoveResultFlags = 0; EWRAM_DATA u32 gHitMarker = 0; -EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA u8 gBideTarget[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gUnusedFirstBattleVar2 = 0; // Never read EWRAM_DATA u32 gSideStatuses[NUM_BATTLE_SIDES] = {0}; EWRAM_DATA struct SideTimer gSideTimers[NUM_BATTLE_SIDES] = {0}; @@ -194,7 +194,6 @@ EWRAM_DATA u32 gStatuses4[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gPauseCounterBattle = 0; EWRAM_DATA u16 gPaydayMoney = 0; -EWRAM_DATA u16 gRandomTurnNumber = 0; EWRAM_DATA u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT] = {0}; EWRAM_DATA u8 gBattleOutcome = 0; EWRAM_DATA struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT] = {0}; @@ -514,7 +513,7 @@ static void CB2_InitBattleInternal(void) gBattle_WIN0H = DISPLAY_WIDTH; - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != TRAINER_STEVEN_PARTNER && gPartnerTrainerId < TRAINER_CUSTOM_PARTNER) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId < TRAINER_PARTNER(PARTNER_NONE)) { gBattle_WIN0V = DISPLAY_HEIGHT - 1; gBattle_WIN1H = DISPLAY_WIDTH; @@ -1714,9 +1713,16 @@ static void CB2_HandleStartMultiBattle(void) case 8: if (IsLinkTaskFinished()) { + #if HQ_RANDOM == TRUE + struct BattleVideo *ptr = &gBattleStruct->multiBuffer.battleVideo; + ptr->battleTypeFlags = gBattleTypeFlags; + ptr->rngSeed = gRecordedBattleRngSeed; + #else u32 *ptr = gBattleStruct->multiBuffer.battleVideo; ptr[0] = gBattleTypeFlags; ptr[1] = gRecordedBattleRngSeed; // UB: overwrites berry data + #endif + SendBlock(BitmaskAllOtherLinkPlayers(), ptr, sizeof(gBattleStruct->multiBuffer.battleVideo)); gBattleCommunication[MULTIUSE_STATE]++; } @@ -2054,7 +2060,7 @@ void VBlankCB_Battle(void) { // Change gRngSeed every vblank unless the battle could be recorded. if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED))) - Random(); + AdvanceRandom(); SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); @@ -2683,8 +2689,6 @@ void SpriteCallbackDummy_2(struct Sprite *sprite) } -extern const struct MonCoords gMonFrontPicCoords[]; - void SpriteCB_FaintOpponentMon(struct Sprite *sprite) { u8 battler = sprite->sBattler; @@ -2697,19 +2701,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; @@ -2974,6 +2969,10 @@ static void BattleStartClearSetData(void) memset(&gSideTimers, 0, sizeof(gSideTimers)); memset(&gWishFutureKnock, 0, sizeof(gWishFutureKnock)); memset(&gBattleResults, 0, sizeof(gBattleResults)); + memset(&gBattleScripting, 0, sizeof(gBattleScripting)); + + gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; + gBattleScripting.expOnCatch = (B_EXP_CATCH >= GEN_6); for (i = 0; i < MAX_BATTLERS_COUNT; i++) { @@ -3010,7 +3009,6 @@ static void BattleStartClearSetData(void) gBattlerAttacker = 0; gBattlerTarget = 0; gEffectBattler = 0; - gBattleScripting.battler = 0; gBattlerAbility = 0; gBattleWeather = 0; gHitMarker = 0; @@ -3025,12 +3023,7 @@ static void BattleStartClearSetData(void) gHitMarker |= HITMARKER_NO_ANIMATIONS; } - gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; - gBattleScripting.expOnCatch = (B_EXP_CATCH >= GEN_6); - gBattleScripting.monCaught = FALSE; - gMultiHitCounter = 0; - gBattleScripting.savedDmg = 0; gBattleOutcome = 0; gBattleControllerExecFlags = 0; gPaydayMoney = 0; @@ -3043,8 +3036,6 @@ static void BattleStartClearSetData(void) gPauseCounterBattle = 0; gBattleMoveDamage = 0; gIntroSlideFlags = 0; - gBattleScripting.animTurn = 0; - gBattleScripting.animTargetsHit = 0; gLeveledUpInBattle = 0; gAbsentBattlerFlags = 0; gBattleStruct->runTries = 0; @@ -3058,8 +3049,6 @@ static void BattleStartClearSetData(void) gBattleStruct->givenExpMons = 0; gBattleStruct->palaceFlags = 0; - gRandomTurnNumber = Random(); - gBattleResults.shinyWildMon = IsMonShiny(&gEnemyParty[0]); gBattleStruct->arenaLostPlayerMons = 0; @@ -3156,6 +3145,7 @@ void SwitchInClearSetData(u32 battler) gDisableStructs[battler].battlerWithSureHit = disableStructCopy.battlerWithSureHit; gDisableStructs[battler].perishSongTimer = disableStructCopy.perishSongTimer; gDisableStructs[battler].battlerPreventingEscape = disableStructCopy.battlerPreventingEscape; + gDisableStructs[battler].embargoTimer = disableStructCopy.embargoTimer; } gMoveResultFlags = 0; @@ -3235,7 +3225,7 @@ const u8* FaintClearSetData(u32 battler) gBattleMons[battler].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[battler].status2 = 0; - gStatuses3[battler] = 0; + gStatuses3[battler] &= STATUS3_GASTRO_ACID; // Edge case: Keep Gastro Acid if pokemon's ability can have effect after fainting, for example Innards Out. gStatuses4[battler] = 0; for (i = 0; i < gBattlersCount; i++) @@ -3740,7 +3730,7 @@ static void TryDoEventsBeforeFirstTurn(void) { for (j = i + 1; j < gBattlersCount; j++) { - if (GetWhichBattlerFaster(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], TRUE) != 0) + if (GetWhichBattlerFaster(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], TRUE) == -1) SwapTurnOrder(i, j); } } @@ -3800,9 +3790,6 @@ static void TryDoEventsBeforeFirstTurn(void) *(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE; gChosenActionByBattler[i] = B_ACTION_NONE; gChosenMoveByBattler[i] = MOVE_NONE; - // Record party slots of player's mons that appeared in battle - if (!BattlerHasAi(i)) - gBattleStruct->appearedInBattle |= gBitTable[gBattlerPartyIndexes[i]]; } TurnValuesCleanUp(FALSE); SpecialStatusesClear(); @@ -3815,7 +3802,12 @@ static void TryDoEventsBeforeFirstTurn(void) gBattleCommunication[i] = 0; for (i = 0; i < gBattlersCount; i++) + { gBattleMons[i].status2 &= ~STATUS2_FLINCHED; + // Record party slots of player's mons that appeared in battle + if (!BattlerHasAi(i)) + gBattleStruct->appearedInBattle |= gBitTable[gBattlerPartyIndexes[i]]; + } *(&gBattleStruct->turnEffectsTracker) = 0; *(&gBattleStruct->turnEffectsBattlerId) = 0; @@ -3826,8 +3818,6 @@ static void TryDoEventsBeforeFirstTurn(void) gBattleStruct->turnCountersTracker = 0; gMoveResultFlags = 0; - gRandomTurnNumber = Random(); - memset(gQueuedStatBoosts, 0, sizeof(gQueuedStatBoosts)); // erase all totem boosts just to be safe SetAiLogicDataForTurn(AI_DATA); // get assumed abilities, hold effects, etc of all battlers @@ -3924,7 +3914,6 @@ void BattleTurnPassed(void) BattlePutTextOnWindow(gText_EmptyString3, B_WIN_MSG); SetAiLogicDataForTurn(AI_DATA); // get assumed abilities, hold effects, etc of all battlers gBattleMainFunc = HandleTurnActionSelectionState; - gRandomTurnNumber = Random(); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) BattleScriptExecute(BattleScript_PalacePrintFlavorText); @@ -3992,6 +3981,25 @@ u8 IsRunningFromBattleImpossible(u32 battler) return BATTLE_RUN_SUCCESS; } +void SwitchTwoBattlersInParty(u32 battler, u32 battler2) +{ + s32 i; + u32 partyId1, partyId2; + + for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++) + gBattlePartyCurrentOrder[i] = *(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)); + + partyId1 = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battler]); + partyId2 = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battler2]); + SwitchPartyMonSlots(partyId1, partyId2); + + for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++) + { + *(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i]; + *(BATTLE_PARTNER(battler) * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i]; + } +} + void SwitchPartyOrder(u32 battler) { s32 i; @@ -4651,6 +4659,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; } @@ -4679,10 +4690,13 @@ s8 GetMovePriority(u32 battler, u16 move) s8 priority; u16 ability = GetBattlerAbility(battler); + if (gBattleStruct->zmove.toBeUsed[battler] && gBattleMoves[move].power != 0) + move = gBattleStruct->zmove.toBeUsed[battler]; + priority = gBattleMoves[move].priority; // Max Guard check - if (gBattleStruct->dynamax.usingMaxMove[battler] && gBattleMoves[move].split == SPLIT_STATUS) + if (gBattleStruct->dynamax.usingMaxMove[battler] && gBattleMoves[move].category == BATTLE_CATEGORY_STATUS) return gBattleMoves[MOVE_MAX_GUARD].priority; if (ability == ABILITY_GALE_WINGS @@ -4700,27 +4714,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; @@ -4729,31 +4724,11 @@ s8 GetMovePriority(u32 battler, u16 move) } // Function for AI with variables provided as arguments to speed the computation time -u32 GetWhichBattlerFasterArgs(u32 battler1, u32 battler2, bool32 ignoreChosenMoves, u32 ability1, u32 ability2, +s32 GetWhichBattlerFasterArgs(u32 battler1, u32 battler2, bool32 ignoreChosenMoves, u32 ability1, u32 ability2, u32 holdEffectBattler1, u32 holdEffectBattler2, u32 speedBattler1, u32 speedBattler2, s32 priority1, s32 priority2) { u32 strikesFirst = 0; - // Battler 1 - // Quick Draw - if (!ignoreChosenMoves && ability1 == ABILITY_QUICK_DRAW && !IS_MOVE_STATUS(gChosenMoveByBattler[battler1]) && RandomPercentage(RNG_QUICK_DRAW, 30)) - gProtectStructs[battler1].quickDraw = TRUE; - // Quick Claw and Custap Berry - if (!gProtectStructs[battler1].quickDraw - && ((holdEffectBattler1 == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * GetBattlerHoldEffectParam(battler1)) / 100) - || (holdEffectBattler1 == HOLD_EFFECT_CUSTAP_BERRY && HasEnoughHpToEatBerry(battler1, 4, gBattleMons[battler1].item)))) - gProtectStructs[battler1].usedCustapBerry = TRUE; - - // Battler 2 - // Quick Draw - if (!ignoreChosenMoves && ability2 == ABILITY_QUICK_DRAW && !IS_MOVE_STATUS(gChosenMoveByBattler[battler2]) && RandomPercentage(RNG_QUICK_DRAW, 30)) - gProtectStructs[battler2].quickDraw = TRUE; - // Quick Claw and Custap Berry - if (!gProtectStructs[battler2].quickDraw - && ((holdEffectBattler2 == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * GetBattlerHoldEffectParam(battler2)) / 100) - || (holdEffectBattler2 == HOLD_EFFECT_CUSTAP_BERRY && HasEnoughHpToEatBerry(battler2, 4, gBattleMons[battler2].item)))) - gProtectStructs[battler2].usedCustapBerry = TRUE; - if (priority1 == priority2) { // QUICK CLAW / CUSTAP - always first @@ -4761,62 +4736,62 @@ u32 GetWhichBattlerFasterArgs(u32 battler1, u32 battler2, bool32 ignoreChosenMov // STALL - always last if (gProtectStructs[battler1].quickDraw && !gProtectStructs[battler2].quickDraw) - strikesFirst = 0; + strikesFirst = 1; else if (!gProtectStructs[battler1].quickDraw && gProtectStructs[battler2].quickDraw) - strikesFirst = 1; + strikesFirst = -1; else if (gProtectStructs[battler1].usedCustapBerry && !gProtectStructs[battler2].usedCustapBerry) - strikesFirst = 0; + strikesFirst = 1; else if (gProtectStructs[battler2].usedCustapBerry && !gProtectStructs[battler1].usedCustapBerry) - strikesFirst = 1; + strikesFirst = -1; else if (holdEffectBattler1 == HOLD_EFFECT_LAGGING_TAIL && holdEffectBattler2 != HOLD_EFFECT_LAGGING_TAIL) - strikesFirst = 1; + strikesFirst = -1; else if (holdEffectBattler2 == HOLD_EFFECT_LAGGING_TAIL && holdEffectBattler1 != HOLD_EFFECT_LAGGING_TAIL) - strikesFirst = 0; + strikesFirst = 1; else if (ability1 == ABILITY_STALL && ability2 != ABILITY_STALL) - strikesFirst = 1; + strikesFirst = -1; else if (ability2 == ABILITY_STALL && ability1 != ABILITY_STALL) - strikesFirst = 0; - else if (ability1 == ABILITY_MYCELIUM_MIGHT && ability2 != ABILITY_MYCELIUM_MIGHT && IS_MOVE_STATUS(gCurrentMove)) strikesFirst = 1; + else if (ability1 == ABILITY_MYCELIUM_MIGHT && ability2 != ABILITY_MYCELIUM_MIGHT && IS_MOVE_STATUS(gCurrentMove)) + strikesFirst = -1; else if (ability2 == ABILITY_MYCELIUM_MIGHT && ability1 != ABILITY_MYCELIUM_MIGHT && IS_MOVE_STATUS(gCurrentMove)) - strikesFirst = 0; + strikesFirst = 1; else { if (speedBattler1 == speedBattler2 && Random() & 1) { - strikesFirst = 2; // same speeds, same priorities + strikesFirst = 0; // same speeds, same priorities } else if (speedBattler1 < speedBattler2) { // battler2 has more speed if (gFieldStatuses & STATUS_FIELD_TRICK_ROOM) - strikesFirst = 0; - else strikesFirst = 1; + else + strikesFirst = -1; } else { // battler1 has more speed if (gFieldStatuses & STATUS_FIELD_TRICK_ROOM) - strikesFirst = 1; + strikesFirst = -1; else - strikesFirst = 0; + strikesFirst = 1; } } } else if (priority1 < priority2) { - strikesFirst = 1; // battler2's move has greater priority + strikesFirst = -1; // battler2's move has greater priority } else { - strikesFirst = 0; // battler1's move has greater priority + strikesFirst = 1; // battler1's move has greater priority } return strikesFirst; } -u32 GetWhichBattlerFaster(u32 battler1, u32 battler2, bool32 ignoreChosenMoves) +s32 GetWhichBattlerFaster(u32 battler1, u32 battler2, bool32 ignoreChosenMoves) { s32 priority1 = 0, priority2 = 0; u32 ability1 = GetBattlerAbility(battler1); @@ -4924,6 +4899,7 @@ static void SetActionsAndBattlersTurnOrder(void) { u8 battler1 = gBattlerByTurnOrder[i]; u8 battler2 = gBattlerByTurnOrder[j]; + TryChangingTurnOrderEffects(battler1, battler2); if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM && gActionsByTurnOrder[i] != B_ACTION_SWITCH @@ -4931,14 +4907,14 @@ static void SetActionsAndBattlersTurnOrder(void) && gActionsByTurnOrder[i] != B_ACTION_THROW_BALL && gActionsByTurnOrder[j] != B_ACTION_THROW_BALL) { - if (GetWhichBattlerFaster(battler1, battler2, FALSE)) + if (GetWhichBattlerFaster(battler1, battler2, FALSE) == -1) SwapTurnOrder(i, j); } } } } } - gBattleMainFunc = CheckQuickClaw_CustapBerryActivation; + gBattleMainFunc = CheckChangingTurnOrderEffects; gBattleStruct->quickClawBattlerId = 0; } @@ -4956,6 +4932,7 @@ static void TurnValuesCleanUp(bool8 var0) gProtectStructs[i].banefulBunkered = FALSE; gProtectStructs[i].quash = FALSE; gProtectStructs[i].usedCustapBerry = FALSE; + gProtectStructs[i].quickDraw = FALSE; } else { @@ -5100,14 +5077,42 @@ static void TryChangeTurnOrder(void) if (gActionsByTurnOrder[i] == B_ACTION_USE_MOVE && gActionsByTurnOrder[j] == B_ACTION_USE_MOVE) { - if (GetWhichBattlerFaster(battler1, battler2, FALSE)) + if (GetWhichBattlerFaster(battler1, battler2, FALSE) == -1) SwapTurnOrder(i, j); } } } } -static void CheckQuickClaw_CustapBerryActivation(void) +static void TryChangingTurnOrderEffects(u32 battler1, u32 battler2) +{ + u32 ability1 = GetBattlerAbility(battler1); + u32 holdEffectBattler1 = GetBattlerHoldEffect(battler1, TRUE); + u32 holdEffectBattler2 = GetBattlerHoldEffect(battler2, TRUE); + u32 ability2 = GetBattlerAbility(battler2); + + // Battler 1 + // Quick Draw + if (ability1 == ABILITY_QUICK_DRAW && !IS_MOVE_STATUS(gChosenMoveByBattler[battler1]) && RandomPercentage(RNG_QUICK_DRAW, 30)) + gProtectStructs[battler1].quickDraw = TRUE; + // Quick Claw and Custap Berry + if (!gProtectStructs[battler1].quickDraw + && ((holdEffectBattler1 == HOLD_EFFECT_QUICK_CLAW && RandomPercentage(RNG_QUICK_CLAW, GetBattlerHoldEffectParam(battler1))) + || (holdEffectBattler1 == HOLD_EFFECT_CUSTAP_BERRY && HasEnoughHpToEatBerry(battler1, 4, gBattleMons[battler1].item)))) + gProtectStructs[battler1].usedCustapBerry = TRUE; + + // Battler 2 + // Quick Draw + if (ability2 == ABILITY_QUICK_DRAW && !IS_MOVE_STATUS(gChosenMoveByBattler[battler2]) && RandomPercentage(RNG_QUICK_DRAW, 30)) + gProtectStructs[battler2].quickDraw = TRUE; + // Quick Claw and Custap Berry + if (!gProtectStructs[battler2].quickDraw + && ((holdEffectBattler2 == HOLD_EFFECT_QUICK_CLAW && RandomPercentage(RNG_QUICK_CLAW, GetBattlerHoldEffectParam(battler2))) + || (holdEffectBattler2 == HOLD_EFFECT_CUSTAP_BERRY && HasEnoughHpToEatBerry(battler2, 4, gBattleMons[battler2].item)))) + gProtectStructs[battler2].usedCustapBerry = TRUE; +} + +static void CheckChangingTurnOrderEffects(void) { u32 i, battler; @@ -5142,7 +5147,6 @@ static void CheckQuickClaw_CustapBerryActivation(void) else if (gProtectStructs[battler].quickDraw) { gBattlerAbility = battler; - gProtectStructs[battler].quickDraw = FALSE; gLastUsedAbility = gBattleMons[battler].ability; PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); RecordAbilityBattle(battler, gLastUsedAbility); @@ -5603,15 +5607,15 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) if (WEATHER_HAS_EFFECT) { if (gBattleWeather & B_WEATHER_RAIN && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA) - gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_SET; else if (gBattleWeather & B_WEATHER_SANDSTORM) - gBattleStruct->dynamicMoveType = TYPE_ROCK | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_ROCK | F_DYNAMIC_TYPE_SET; else if (gBattleWeather & B_WEATHER_SUN && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA) - gBattleStruct->dynamicMoveType = TYPE_FIRE | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_FIRE | F_DYNAMIC_TYPE_SET; else if (gBattleWeather & (B_WEATHER_HAIL |B_WEATHER_SNOW)) - gBattleStruct->dynamicMoveType = TYPE_ICE | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_ICE | F_DYNAMIC_TYPE_SET; else - gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_SET; } } else if (gBattleMoves[move].effect == EFFECT_HIDDEN_POWER) @@ -5628,25 +5632,27 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) gBattleStruct->dynamicMoveType = ((NUMBER_OF_MON_TYPES - 4) * typeBits) / 63 + 1; if (gBattleStruct->dynamicMoveType >= TYPE_MYSTERY) gBattleStruct->dynamicMoveType++; - gBattleStruct->dynamicMoveType |= F_DYNAMIC_TYPE_1 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType |= F_DYNAMIC_TYPE_IGNORE_PHYSICALITY | F_DYNAMIC_TYPE_SET; } - else if (gBattleMoves[move].effect == EFFECT_CHANGE_TYPE_ON_ITEM) + else if (gBattleMoves[move].effect == EFFECT_CHANGE_TYPE_ON_ITEM && holdEffect == gBattleMoves[move].argument) { - if (holdEffect == gBattleMoves[move].argument) - gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_2; - } - else if (gBattleMoves[move].effect == EFFECT_IVY_CUDGEL && holdEffect == HOLD_EFFECT_MASK) - { - gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | F_DYNAMIC_TYPE_SET; } else if (gBattleMoves[move].effect == EFFECT_REVELATION_DANCE) { if (gBattleMons[battlerAtk].type1 != TYPE_MYSTERY) - gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type1 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type1 | F_DYNAMIC_TYPE_SET; else if (gBattleMons[battlerAtk].type2 != TYPE_MYSTERY) - gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type2 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type2 | F_DYNAMIC_TYPE_SET; else if (gBattleMons[battlerAtk].type3 != TYPE_MYSTERY) - gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type3 | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type3 | F_DYNAMIC_TYPE_SET; + } + 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_SET; } else if (gBattleMoves[move].effect == EFFECT_NATURAL_GIFT) { @@ -5658,15 +5664,15 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) if (IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_TERRAIN_ANY)) { if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_SET; else if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_GRASS | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_GRASS | F_DYNAMIC_TYPE_SET; else if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_FAIRY | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_FAIRY | F_DYNAMIC_TYPE_SET; else if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN) - gBattleStruct->dynamicMoveType = TYPE_PSYCHIC | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_PSYCHIC | F_DYNAMIC_TYPE_SET; else //failsafe - gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_SET; } } @@ -5684,7 +5690,7 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) ) ) { - gBattleStruct->dynamicMoveType = ateType | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = ateType | F_DYNAMIC_TYPE_SET; if (!IsDynamaxed(battlerAtk)) gBattleStruct->ateBoost[battlerAtk] = 1; } @@ -5693,23 +5699,23 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) && gBattleMoves[move].effect != EFFECT_WEATHER_BALL && attackerAbility == ABILITY_NORMALIZE) { - gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_NORMAL | F_DYNAMIC_TYPE_SET; if (!IsDynamaxed(battlerAtk)) gBattleStruct->ateBoost[battlerAtk] = 1; } else if (gBattleMoves[move].soundMove && attackerAbility == ABILITY_LIQUID_VOICE) { - gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_SET; } else if (move == MOVE_AURA_WHEEL && gBattleMons[battlerAtk].species == SPECIES_MORPEKO_HANGRY) { - gBattleStruct->dynamicMoveType = TYPE_DARK | F_DYNAMIC_TYPE_2; + gBattleStruct->dynamicMoveType = TYPE_DARK | F_DYNAMIC_TYPE_SET; } 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; + gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_SET; // Check if a gem should activate. GET_MOVE_TYPE(move, moveType); diff --git a/src/battle_message.c b/src/battle_message.c index f2052e6919..b5e4db71aa 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -822,11 +822,31 @@ 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_PkmnTellChillingReceptionJoke[] = _("{B_ATK_NAME_WITH_PREFIX} is preparing to tell a\nchillingly bad joke!"); 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_PKMNTELLCHILLINGRECEPTIONJOKE - BATTLESTRINGS_TABLE_START] = sText_PkmnTellChillingReceptionJoke, [STRINGID_MOVEBLOCKEDBYDYNAMAX - BATTLESTRINGS_TABLE_START] = sText_MoveBlockedByDynamax, [STRINGID_OPPORTUNISTCOPIED - BATTLESTRINGS_TABLE_START] = sText_OpportunistCopied, [STRINGID_TARGETISHURTBYSALTCURE - BATTLESTRINGS_TABLE_START] = sText_TargetIsHurtBySaltCure, @@ -2900,7 +2920,7 @@ void BufferStringBattle(u16 stringID, u32 battler) } break; case STRINGID_USEDMOVE: // pokemon used a move msg - if (gBattleStruct->zmove.active && gBattleStruct->zmove.activeSplit != SPLIT_STATUS) + if (gBattleStruct->zmove.active && gBattleStruct->zmove.activeCategory != BATTLE_CATEGORY_STATUS) StringCopy(gBattleTextBuff3, GetZMoveName(gBattleMsgDataPtr->currentMove)); else if (IsMaxMove(gBattleMsgDataPtr->currentMove)) StringCopy(gBattleTextBuff3, GetMaxMoveName(gBattleMsgDataPtr->currentMove)); @@ -4015,6 +4035,7 @@ struct TrainerSlide const u8 *msgMegaEvolution; const u8 *msgZMove; const u8 *msgBeforeFirstTurn; + const u8 *msgDynamax; }; static const struct TrainerSlide sTrainerSlides[] = @@ -4035,6 +4056,7 @@ static const struct TrainerSlide sTrainerSlides[] = .msgMegaEvolution = sText_PowderExplodes, .msgZMove = sText_Electromagnetism, .msgBeforeFirstTurn = sText_GravityIntensified, + .msgDynamax = sText_TargetWokeUp, }, */ }; @@ -4220,6 +4242,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 1f73ac5a9d..a21034d75a 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1349,16 +1349,20 @@ static void MarkPyramidTrainerAsBattled(u16 trainerId) #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 -extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; static bool32 CheckBattlePyramidEvoRequirement(u16 species, const u16 *evoItems, u8 nItems) { u32 i, j, k; for (i = 0; i < NUM_SPECIES; i++) { - for (j = 0; j < EVOS_PER_MON; j++) + const struct Evolution *evolutions = GetSpeciesEvolutions(i); + if (evolutions == NULL) + continue; + for (j = 0; evolutions[j].method != EVOLUTIONS_END; j++) { - if (gEvolutionTable[i][j].targetSpecies == species - && (gEvolutionTable[i][j].method == EVO_ITEM || gEvolutionTable[i][j].method == EVO_ITEM_MALE || gEvolutionTable[i][j].method == EVO_ITEM_FEMALE)) + 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) { @@ -1368,10 +1372,10 @@ static bool32 CheckBattlePyramidEvoRequirement(u16 species, const u16 *evoItems, else { // Otherwise, need to match specific set provided - for (k = 0; k < nItems; k++) { - if (gEvolutionTable[i][j].param == evoItems[k]) { + for (k = 0; k < nItems; k++) + { + if (evolutions[j].param == evoItems[k]) return TRUE; - } } } } @@ -1465,7 +1469,7 @@ void GenerateBattlePyramidWildMon(void) // Set species, name SetMonData(&gEnemyParty[0], MON_DATA_SPECIES, &species); - StringCopy(name, gSpeciesNames[species]); + StringCopy(name, GetSpeciesName(species)); SetMonData(&gEnemyParty[0], MON_DATA_NICKNAME, &name); // set level diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index cd96715c6f..e08a948607 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -50,6 +50,7 @@ #include "constants/battle_anim.h" #include "constants/battle_move_effects.h" #include "constants/battle_string_ids.h" +#include "constants/battle_partner.h" #include "constants/hold_effects.h" #include "constants/items.h" #include "constants/item_effects.h" @@ -94,8 +95,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) @@ -421,7 +420,7 @@ static void Cmd_return(void); static void Cmd_end(void); static void Cmd_end2(void); static void Cmd_end3(void); -static void Cmd_jumpifaffectedbyprotect(void); +static void Cmd_unused5(void); static void Cmd_call(void); static void Cmd_setroost(void); static void Cmd_jumpifabilitypresent(void); @@ -680,7 +679,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_end, //0x3D Cmd_end2, //0x3E Cmd_end3, //0x3F - Cmd_jumpifaffectedbyprotect, //0x40 + Cmd_unused5, //0x40 Cmd_call, //0x41 Cmd_setroost, //0x42 Cmd_jumpifabilitypresent, //0x43 @@ -1247,16 +1246,22 @@ static bool32 TryAegiFormChange(void) bool32 ProteanTryChangeType(u32 battler, u32 ability, u32 move, u32 moveType) { if ((ability == ABILITY_PROTEAN || ability == ABILITY_LIBERO) + && !gDisableStructs[gBattlerAttacker].usedProteanLibero && (gBattleMons[battler].type1 != moveType || gBattleMons[battler].type2 != moveType || (gBattleMons[battler].type3 != moveType && gBattleMons[battler].type3 != TYPE_MYSTERY)) && move != MOVE_STRUGGLE) { - SET_BATTLER_TYPE(gBattlerAttacker, moveType); + SET_BATTLER_TYPE(battler, moveType); return TRUE; } return FALSE; } +bool32 IsMoveNotAllowedInSkyBattles(u32 move) +{ + return ((gBattleStruct->isSkyBattle) && (gBattleMoves[gCurrentMove].skyBattleBanned)); +} + static void Cmd_attackcanceler(void) { CMD_ARGS(); @@ -1322,6 +1327,8 @@ static void Cmd_attackcanceler(void) // Check Protean activation. if (ProteanTryChangeType(gBattlerAttacker, attackerAbility, gCurrentMove, moveType)) { + if (B_PROTEAN_LIBERO == GEN_9) + gDisableStructs[gBattlerAttacker].usedProteanLibero = TRUE; PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType); gBattlerAbility = gBattlerAttacker; BattleScriptPushCursor(); @@ -1364,9 +1371,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; @@ -1501,7 +1509,7 @@ static bool32 JumpIfMoveFailed(u8 adder, u16 move) return FALSE; } -static void Cmd_jumpifaffectedbyprotect(void) +static void Cmd_unused5(void) { CMD_ARGS(const u8 *failInstr); @@ -1540,7 +1548,7 @@ static bool32 AccuracyCalcHelper(u16 move) return TRUE; } // If the attacker has the ability No Guard and they aren't targeting a Pokemon involved in a Sky Drop with the move Sky Drop, move hits. - else if (GetBattlerAbility(gBattlerAttacker) == ABILITY_NO_GUARD && (move != MOVE_SKY_DROP || gBattleStruct->skyDropTargets[gBattlerTarget] == 0xFF)) + else if (GetBattlerAbility(gBattlerTarget) == ABILITY_NO_GUARD && (move != MOVE_SKY_DROP || gBattleStruct->skyDropTargets[gBattlerTarget] == 0xFF)) { if (!JumpIfMoveFailed(7, move)) RecordAbilityBattle(gBattlerAttacker, ABILITY_NO_GUARD); @@ -1553,6 +1561,14 @@ static bool32 AccuracyCalcHelper(u16 move) RecordAbilityBattle(gBattlerTarget, ABILITY_NO_GUARD); return TRUE; } + // If the target is under the effects of Telekinesis, and the move isn't a OH-KO move, move hits. + else if (gStatuses3[gBattlerTarget] & STATUS3_TELEKINESIS + && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) + && gBattleMoves[move].effect != EFFECT_OHKO) + { + JumpIfMoveFailed(7, move); + return TRUE; + } if (gBattleStruct->zmove.active && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) { @@ -1621,7 +1637,8 @@ 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 || (B_ILLUMINATE_EFFECT >= GEN_9 && atkAbility == ABILITY_ILLUMINATE)) + if (atkAbility == ABILITY_UNAWARE || atkAbility == ABILITY_KEEN_EYE || atkAbility == ABILITY_MINDS_EYE + || (B_ILLUMINATE_EFFECT >= GEN_9 && atkAbility == ABILITY_ILLUMINATE)) evasionStage = DEFAULT_STAT_STAGE; if (gBattleMoves[move].ignoresTargetDefenseEvasionStages) evasionStage = DEFAULT_STAT_STAGE; @@ -1844,13 +1861,9 @@ static void Cmd_ppreduce(void) if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattlerAttacker].pp[gCurrMovePos]) { gProtectStructs[gBattlerAttacker].notFirstStrike = TRUE; + // For item Metronome, echoed voice - if (gCurrentMove == gLastResultingMoves[gBattlerAttacker] - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && !WasUnableToUseMove(gBattlerAttacker) - && gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT) // Don't increment counter on first hit - gBattleStruct->sameMoveTurns[gBattlerAttacker]++; - else + if (gCurrentMove != gLastResultingMoves[gBattlerAttacker] || WasUnableToUseMove(gBattlerAttacker)) gBattleStruct->sameMoveTurns[gBattlerAttacker] = 0; if (gBattleMons[gBattlerAttacker].pp[gCurrMovePos] > ppToDeduct) @@ -1886,20 +1899,20 @@ s32 CalcCritChanceStageArgs(u32 battlerAtk, u32 battlerDef, u32 move, bool32 rec s32 critChance = 0; if (gSideStatuses[battlerDef] & SIDE_STATUS_LUCKY_CHANT || gStatuses3[battlerAtk] & STATUS3_CANT_SCORE_A_CRIT - || abilityDef == ABILITY_BATTLE_ARMOR || abilityDef == ABILITY_SHELL_ARMOR) + || abilityDef == ABILITY_BATTLE_ARMOR || abilityDef == ABILITY_SHELL_ARMOR) { critChance = -1; } else if (gStatuses3[battlerAtk] & STATUS3_LASER_FOCUS - || gBattleMoves[move].effect == EFFECT_ALWAYS_CRIT - || (abilityAtk == ABILITY_MERCILESS && gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY)) + || gBattleMoves[gCurrentMove].alwaysCriticalHit + || (abilityAtk == ABILITY_MERCILESS && gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY)) { critChance = -2; } else { critChance = 2 * ((gBattleMons[battlerAtk].status2 & STATUS2_FOCUS_ENERGY) != 0) - + (gBattleMoves[gCurrentMove].highCritRatio) + + gBattleMoves[gCurrentMove].criticalHitStage + (holdEffectAtk == HOLD_EFFECT_SCOPE_LENS) + 2 * (holdEffectAtk == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[battlerAtk].species == SPECIES_CHANSEY) + 2 * BENEFITS_FROM_LEEK(battlerAtk, holdEffectAtk) @@ -1998,7 +2011,20 @@ static void Cmd_adjustdamage(void) if (DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)) goto END; if (DoesDisguiseBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)) + { + gBattleStruct->enduredDamage |= gBitTable[gBattlerTarget]; goto END; + } + if (GetBattlerAbility(gBattlerTarget) == ABILITY_ICE_FACE && IS_MOVE_PHYSICAL(gCurrentMove) && gBattleMons[gBattlerTarget].species == SPECIES_EISCUE) + { + // Damage deals typeless 0 HP. + gMoveResultFlags &= ~(MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE); + gBattleMoveDamage = 0; + RecordAbilityBattle(gBattlerTarget, ABILITY_ICE_FACE); + gBattleResources->flags->flags[gBattlerTarget] |= RESOURCE_FLAG_ICE_FACE; + // Form change will be done after attack animation in Cmd_resultmessage. + goto END; + } if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) goto END; @@ -2040,6 +2066,7 @@ static void Cmd_adjustdamage(void) // Handle reducing the dmg to 1 hp. gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; + gBattleStruct->enduredDamage |= gBitTable[gBattlerTarget]; if (gProtectStructs[gBattlerTarget].endured) { @@ -2077,7 +2104,9 @@ END: } 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; @@ -2152,9 +2181,10 @@ 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 + && gCurrentMove != MOVE_ALLY_SWITCH // In a wild double battle gotta use the teleport animation if two wild pokemon are alive. && !(gCurrentMove == MOVE_TELEPORT && WILD_DOUBLE_BATTLE && GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && IsBattlerAlive(BATTLE_PARTNER(gBattlerAttacker)))) { @@ -2247,6 +2277,7 @@ static void Cmd_healthbarupdate(void) gBattlescriptCurrInstr = cmd->nextInstr; } +// Update the active battler's HP and various HP trackers (Substitute, Bide, etc.) static void Cmd_datahpupdate(void) { CMD_ARGS(u8 battler); @@ -2263,15 +2294,15 @@ static void Cmd_datahpupdate(void) { if (gDisableStructs[battler].substituteHP >= gBattleMoveDamage) { - if (gSpecialStatuses[battler].dmg == 0) - gSpecialStatuses[battler].dmg = gBattleMoveDamage; + if (gSpecialStatuses[battler].shellBellDmg == 0) + gSpecialStatuses[battler].shellBellDmg = gBattleMoveDamage; gDisableStructs[battler].substituteHP -= gBattleMoveDamage; gHpDealt = gBattleMoveDamage; } else { - if (gSpecialStatuses[battler].dmg == 0) - gSpecialStatuses[battler].dmg = gDisableStructs[battler].substituteHP; + if (gSpecialStatuses[battler].shellBellDmg == 0) + gSpecialStatuses[battler].shellBellDmg = gDisableStructs[battler].substituteHP; gHpDealt = gDisableStructs[battler].substituteHP; gDisableStructs[battler].substituteHP = 0; } @@ -2294,28 +2325,29 @@ static void Cmd_datahpupdate(void) else { gHitMarker &= ~HITMARKER_IGNORE_SUBSTITUTE; - if (gBattleMoveDamage < 0) // hp goes up + if (gBattleMoveDamage < 0) { - gBattleMons[battler].hp -= gBattleMoveDamage; + // Negative damage is HP gain + gBattleMons[battler].hp += -gBattleMoveDamage; if (gBattleMons[battler].hp > gBattleMons[battler].maxHP) gBattleMons[battler].hp = gBattleMons[battler].maxHP; - } - else // hp goes down + else { - if (gHitMarker & HITMARKER_SKIP_DMG_TRACK) + if (gHitMarker & HITMARKER_IGNORE_BIDE) { - gHitMarker &= ~HITMARKER_SKIP_DMG_TRACK; + gHitMarker &= ~HITMARKER_IGNORE_BIDE; } else { - gTakenDmg[battler] += gBattleMoveDamage; + gBideDmg[battler] += gBattleMoveDamage; if (cmd->battler == BS_TARGET) - gTakenDmgByBattler[battler] = gBattlerAttacker; + gBideTarget[battler] = gBattlerAttacker; else - gTakenDmgByBattler[battler] = gBattlerTarget; + gBideTarget[battler] = gBattlerTarget; } + // Deal damage to the battler if (gBattleMons[battler].hp > gBattleMoveDamage) { gBattleMons[battler].hp -= gBattleMoveDamage; @@ -2327,10 +2359,14 @@ static void Cmd_datahpupdate(void) gBattleMons[battler].hp = 0; } - if (!gSpecialStatuses[battler].dmg && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE)) - gSpecialStatuses[battler].dmg = gHpDealt; + // Record damage for Shell Bell + if (gSpecialStatuses[battler].shellBellDmg == 0 && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE)) + gSpecialStatuses[battler].shellBellDmg = gHpDealt; - if (IS_MOVE_PHYSICAL(gCurrentMove) && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE) && gCurrentMove != MOVE_PAIN_SPLIT) + // Note: While physicalDmg/specialDmg below are only distinguished between for Counter/Mirror Coat, they are + // used in combination as general damage trackers for other purposes. specialDmg is additionally used + // to help determine if a fire move should defrost the target. + if (IS_MOVE_PHYSICAL(gCurrentMove) && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE) && gBattleMoves[gCurrentMove].effect != EFFECT_PAIN_SPLIT) { gProtectStructs[battler].physicalDmg = gHpDealt; gSpecialStatuses[battler].physicalDmg = gHpDealt; @@ -2345,8 +2381,9 @@ static void Cmd_datahpupdate(void) gSpecialStatuses[battler].physicalBattlerId = gBattlerTarget; } } - else if (!IS_MOVE_PHYSICAL(gCurrentMove) && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE)) + else if (!IS_MOVE_PHYSICAL(gCurrentMove) && !(gHitMarker & HITMARKER_PASSIVE_DAMAGE) && gBattleMoves[gCurrentMove].effect != EFFECT_PAIN_SPLIT) { + // Record special damage/attacker for Mirror Coat gProtectStructs[battler].specialDmg = gHpDealt; gSpecialStatuses[battler].specialDmg = gHpDealt; if (cmd->battler == BS_TARGET) @@ -2362,15 +2399,18 @@ static void Cmd_datahpupdate(void) } } gHitMarker &= ~HITMARKER_PASSIVE_DAMAGE; + + // Send updated HP BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_HP_BATTLE, 0, sizeof(gBattleMons[battler].hp), &gBattleMons[battler].hp); MarkBattlerForControllerExec(battler); } } else { + // MOVE_RESULT_NO_EFFECT was set battler = GetBattlerForBattleScript(cmd->battler); - if (gSpecialStatuses[battler].dmg == 0) - gSpecialStatuses[battler].dmg = 0xFFFF; + if (gSpecialStatuses[battler].shellBellDmg == 0) + gSpecialStatuses[battler].shellBellDmg = IGNORE_SHELL_BELL; } gBattlescriptCurrInstr = cmd->nextInstr; } @@ -2453,6 +2493,17 @@ static void Cmd_resultmessage(void) if (gBattleControllerExecFlags) return; + // Do Ice Face form change which was set up in Cmd_adjustdamage. + if (gBattleResources->flags->flags[gBattlerTarget] & RESOURCE_FLAG_ICE_FACE) + { + gBattleResources->flags->flags[gBattlerTarget] &= ~(RESOURCE_FLAG_ICE_FACE); + gBattleMons[gBattlerTarget].species = SPECIES_EISCUE_NOICE_FACE; + gBattleScripting.battler = gBattlerTarget; // For STRINGID_PKMNTRANSFORMED + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_IceFaceNullsDamage; + return; + } + if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[MISS_TYPE] > B_MSG_AVOIDED_ATK)) { if (gBattleCommunication[MISS_TYPE] > B_MSG_AVOIDED_ATK) // Wonder Guard or Levitate - show the ability pop-up @@ -2762,7 +2813,7 @@ void SetMoveEffect(bool32 primary, u32 certain) if ((battlerAbility == ABILITY_SHIELD_DUST || GetBattlerHoldEffect(gEffectBattler, TRUE) == HOLD_EFFECT_COVERT_CLOAK) - && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && !(gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && !primary && (gBattleScripting.moveEffect <= MOVE_EFFECT_TRI_ATTACK || gBattleScripting.moveEffect >= MOVE_EFFECT_SMACK_DOWN)) // Exclude stat lowering effects { @@ -2773,7 +2824,7 @@ void SetMoveEffect(bool32 primary, u32 certain) INCREMENT_RESET_RETURN } - if (gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && !primary && gBattleScripting.moveEffect <= MOVE_EFFECT_CONFUSION) INCREMENT_RESET_RETURN @@ -2823,10 +2874,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2835,7 +2886,7 @@ void SetMoveEffect(bool32 primary, u32 certain) RESET_RETURN } if (!CanPoisonType(gBattleScripting.battler, gEffectBattler) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2861,10 +2912,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_BRNPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2873,7 +2924,7 @@ void SetMoveEffect(bool32 primary, u32 certain) RESET_RETURN } if (IS_BATTLER_OF_TYPE(gEffectBattler, TYPE_FIRE) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2883,12 +2934,27 @@ void SetMoveEffect(bool32 primary, u32 certain) RESET_RETURN } + if (B_STATUS_TYPE_IMMUNITY == GEN_1) + { + u8 moveType = 0; + GET_MOVE_TYPE(gCurrentMove, moveType); + if (primary == FALSE && certain != MOVE_EFFECT_CERTAIN && IS_BATTLER_OF_TYPE(gEffectBattler, moveType)) + break; + } + if (!CanBeBurned(gEffectBattler)) break; statusChanged = TRUE; break; case STATUS1_FREEZE: + if (B_STATUS_TYPE_IMMUNITY == GEN_1) + { + u8 moveType = 0; + GET_MOVE_TYPE(gCurrentMove, moveType); + if (primary == FALSE && certain != MOVE_EFFECT_CERTAIN && IS_BATTLER_OF_TYPE(gEffectBattler, moveType)) + break; + } if (!CanBeFrozen(gEffectBattler)) break; @@ -2908,10 +2974,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PRLZPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2922,8 +2988,15 @@ void SetMoveEffect(bool32 primary, u32 certain) else break; } + if (B_STATUS_TYPE_IMMUNITY == GEN_1) + { + u8 moveType = 0; + GET_MOVE_TYPE(gCurrentMove, moveType); + if (primary == FALSE && certain != MOVE_EFFECT_CERTAIN && IS_BATTLER_OF_TYPE(gEffectBattler, moveType)) + break; + } if (!CanParalyzeType(gBattleScripting.battler, gEffectBattler) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2949,10 +3022,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABILITY_PREVENTS_ABILITY_STATUS; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -2961,7 +3034,7 @@ void SetMoveEffect(bool32 primary, u32 certain) RESET_RETURN } if (!CanPoisonType(gBattleScripting.battler, gEffectBattler) - && (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + && (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { BattleScriptPush(gBattlescriptCurrInstr + 1); @@ -2986,6 +3059,13 @@ void SetMoveEffect(bool32 primary, u32 certain) } break; case STATUS1_FROSTBITE: + if (B_STATUS_TYPE_IMMUNITY == GEN_1) + { + u8 moveType = 0; + GET_MOVE_TYPE(gCurrentMove, moveType); + if (primary == FALSE && certain != MOVE_EFFECT_CERTAIN && IS_BATTLER_OF_TYPE(gEffectBattler, moveType)) + break; + } if (!CanGetFrostbite(gEffectBattler)) break; @@ -3013,10 +3093,10 @@ void SetMoveEffect(bool32 primary, u32 certain) BtlController_EmitSetMonData(gEffectBattler, BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gEffectBattler].status1), &gBattleMons[gEffectBattler].status1); MarkBattlerForControllerExec(gEffectBattler); - if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) + if (gHitMarker & HITMARKER_STATUS_ABILITY_EFFECT) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STATUSED_BY_ABILITY; - gHitMarker &= ~HITMARKER_IGNORE_SAFEGUARD; + gHitMarker &= ~HITMARKER_STATUS_ABILITY_EFFECT; } else { @@ -3598,14 +3678,21 @@ 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_SYRUP_BOMB: if (!(gStatuses4[gEffectBattler] & STATUS4_SYRUP_BOMB)) { + struct Pokemon *party = GetBattlerParty(gBattlerAttacker); + gStatuses4[gEffectBattler] |= STATUS4_SYRUP_BOMB; - gDisableStructs[gBattlerTarget].syrupBombTimer = 3; + gDisableStructs[gEffectBattler].syrupBombTimer = 3; + gDisableStructs[gEffectBattler].syrupBombIsShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattlerAttacker]]); BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_SyrupBombActivates; } @@ -3625,7 +3712,7 @@ static void Cmd_seteffectwithchance(void) { if (gBattleScripting.moveEffect &= ~(MOVE_EFFECT_CONTINUE)) { - u32 percentChance = CalcSecondaryEffectChance(gBattlerAttacker, gBattleMoves[gCurrentMove].secondaryEffectChance); + u32 percentChance = CalcSecondaryEffectChance(gBattlerAttacker, gBattleMoves[gCurrentMove].secondaryEffectChance, gCurrentMove); if (gBattleScripting.moveEffect & MOVE_EFFECT_CERTAIN || percentChance >= 100) { @@ -3646,7 +3733,8 @@ static void Cmd_seteffectwithchance(void) { u32 percentChance = CalcSecondaryEffectChance( gBattlerAttacker, - gBattleMoves[gCurrentMove].additionalEffects[gBattleStruct->additionalEffectsCounter].chance + gBattleMoves[gCurrentMove].additionalEffects[gBattleStruct->additionalEffectsCounter].chance, + gCurrentMove ); const u8 *currentPtr = gBattlescriptCurrInstr; @@ -4329,7 +4417,7 @@ static bool32 NoAliveMonsForPlayerAndPartner(void) u32 i; u32 HP_count = 0; - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && (gPartnerTrainerId == TRAINER_STEVEN_PARTNER || gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER)) + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId > TRAINER_PARTNER(PARTNER_NONE)) { for (i = 0; i < PARTY_SIZE; i++) { @@ -4344,30 +4432,17 @@ static bool32 NoAliveMonsForPlayerAndPartner(void) return (HP_count == 0); } -static bool32 NoAliveMonsForPlayer(void) +bool32 NoAliveMonsForPlayer(void) { u32 i; u32 HP_count = 0; - // Get total HP for the player's party to determine if the player has lost - if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && (gPartnerTrainerId == TRAINER_STEVEN_PARTNER || gPartnerTrainerId >= TRAINER_CUSTOM_PARTNER)) + for (i = 0; i < PARTY_SIZE; i++) { - // In multi battle with Steven, skip his Pokémon - for (i = 0; i < MULTI_PARTY_SIZE; i++) + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) + && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->arenaLostPlayerMons & gBitTable[i]))) { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) - HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); - } - } - else - { - for (i = 0; i < PARTY_SIZE; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) - && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->arenaLostPlayerMons & gBitTable[i]))) - { - HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); - } + HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP); } } @@ -4926,11 +5001,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; @@ -4941,7 +5016,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; } @@ -4951,7 +5026,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; } @@ -5061,7 +5136,7 @@ static void Cmd_playstatchangeanimation(void) && ability != ABILITY_CLEAR_BODY && ability != ABILITY_FULL_METAL_BODY && ability != ABILITY_WHITE_SMOKE - && !(ability == ABILITY_KEEN_EYE && currStat == STAT_ACC) + && !((ability == ABILITY_KEEN_EYE || ability == ABILITY_MINDS_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)) @@ -5116,7 +5191,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; @@ -5343,28 +5418,13 @@ static void Cmd_moveend(void) { switch (gBattleMoves[gCurrentMove].effect) { - case EFFECT_RECOIL_25: // Take Down, 25% recoil - gBattleMoveDamage = max(1, gBattleScripting.savedDmg / 4); + case EFFECT_RECOIL: + gBattleMoveDamage = max(1, gBattleScripting.savedDmg * max(1, gBattleMoves[gCurrentMove].recoil) / 100); BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_MoveEffectRecoil; - effect = TRUE; - break; - case EFFECT_RECOIL_33: // Double Edge, 33 % recoil - gBattleMoveDamage = max(1, gBattleScripting.savedDmg / 3); - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_MoveEffectRecoil; - effect = TRUE; - break; - case EFFECT_RECOIL_50: // Head Smash, 50 % recoil - gBattleMoveDamage = max(1, gBattleScripting.savedDmg / 2); - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_MoveEffectRecoil; - effect = TRUE; - break; - case EFFECT_RECOIL_33_STATUS: // Flare Blitz - can burn, Volt Tackle - can paralyze - gBattleMoveDamage = max(1, gBattleScripting.savedDmg / 3); - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_MoveEffectRecoilWithStatus; + if (gBattleMoves[gCurrentMove].argument) // Flare Blitz - can burn, Volt Tackle - can paralyze + gBattlescriptCurrInstr = BattleScript_MoveEffectRecoilWithStatus; + else + gBattlescriptCurrInstr = BattleScript_MoveEffectRecoil; effect = TRUE; break; } @@ -5511,7 +5571,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); @@ -5546,6 +5606,16 @@ static void Cmd_moveend(void) } gBattleScripting.moveendState++; break; + case MOVEEND_NUM_HITS: + if (gBattlerAttacker != gBattlerTarget + && gBattleMoves[gCurrentMove].category != BATTLE_CATEGORY_STATUS + && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && TARGET_TURN_DAMAGED) + { + gBattleStruct->timesGotHit[GetBattlerSide(gBattlerTarget)][gBattlerPartyIndexes[gBattlerTarget]]++; + } + gBattleScripting.moveendState++; + break; case MOVEEND_SUBSTITUTE: // update substitute for (i = 0; i < gBattlersCount; i++) { @@ -5696,6 +5766,7 @@ static void Cmd_moveend(void) gEffectBattler = gBattlerTarget; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicianActivates; + gSpecialStatuses[gBattlerAttacker].magicianStolen = TRUE; effect = TRUE; } gBattleScripting.moveendState++; @@ -5835,9 +5906,9 @@ static void Cmd_moveend(void) u8 battler = battlers[i]; // Attacker is the damage-dealer, battler is mon to be switched out if (IsBattlerAlive(battler) + && gBattlerAttacker != battler && GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_EJECT_BUTTON - && !DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) - && (gSpecialStatuses[battler].physicalDmg != 0 || gSpecialStatuses[battler].specialDmg != 0) + && BATTLER_TURN_DAMAGED(battler) && CountUsablePartyMons(battler) > 0) // Has mon to switch into { gBattleScripting.battler = battler; @@ -5872,7 +5943,7 @@ static void Cmd_moveend(void) && IsBattlerAlive(battler) && !DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) && GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_RED_CARD - && (gSpecialStatuses[battler].physicalDmg != 0 || gSpecialStatuses[battler].specialDmg != 0) + && BATTLER_TURN_DAMAGED(battler) && CanBattlerSwitch(gBattlerAttacker)) { gLastUsedItem = gBattleMons[battler].item; @@ -5936,7 +6007,7 @@ static void Cmd_moveend(void) // Attacker is mon who made contact, battler is mon with pickpocket if (battler != gBattlerAttacker // Cannot pickpocket yourself && GetBattlerAbility(battler) == ABILITY_PICKPOCKET // Target must have pickpocket ability - && BATTLER_DAMAGED(battler) // Target needs to have been damaged + && BATTLER_TURN_DAMAGED(battler) // Target needs to have been damaged && !DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) // Subsitute unaffected && IsBattlerAlive(battler) // Battler must be alive to pickpocket && gBattleMons[battler].item == ITEM_NONE // Pickpocketer can't have an item already @@ -6033,6 +6104,13 @@ static void Cmd_moveend(void) } gBattleScripting.moveendState++; break; + case MOVEEND_SAME_MOVE_TURNS: + if (gCurrentMove != gLastResultingMoves[gBattlerAttacker] || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + gBattleStruct->sameMoveTurns[gBattlerAttacker] = 0; + else if (gCurrentMove == gLastResultingMoves[gBattlerAttacker] && gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT) + gBattleStruct->sameMoveTurns[gBattlerAttacker]++; + gBattleScripting.moveendState++; + break; case MOVEEND_CLEAR_BITS: // Clear/Set bits for things like using a move for all targets and all hits. if (gSpecialStatuses[gBattlerAttacker].instructedChosenTarget) *(gBattleStruct->moveTarget + gBattlerAttacker) = gSpecialStatuses[gBattlerAttacker].instructedChosenTarget & 0x3; @@ -6053,6 +6131,7 @@ static void Cmd_moveend(void) gStatuses3[gBattlerAttacker] &= ~STATUS3_ME_FIRST; gSpecialStatuses[gBattlerAttacker].gemBoost = FALSE; gSpecialStatuses[gBattlerAttacker].damagedMons = 0; + gSpecialStatuses[gBattlerAttacker].magicianStolen = 0; gSpecialStatuses[gBattlerTarget].berryReduced = FALSE; gBattleScripting.moveEffect = 0; // clear attacker z move data @@ -6061,6 +6140,7 @@ static void Cmd_moveend(void) gBattleStruct->zmove.effect = EFFECT_HIT; gBattleStruct->hitSwitchTargetFailed = FALSE; gBattleStruct->isAtkCancelerForCalledMove = FALSE; + gBattleStruct->enduredDamage = 0; gBattleStruct->additionalEffectsCounter = 0; gBattleScripting.moveendState++; break; @@ -6141,6 +6221,35 @@ static void Cmd_switchindataupdate(void) for (i = 0; i < sizeof(struct BattlePokemon); i++) monData[i] = gBattleResources->bufferB[battler][4 + i]; + // Edge case: the sent out pokemon has 0 HP. This should never happen. + if (gBattleMons[battler].hp == 0) + { + // If it's a test, mark it as invalid. + if (gTestRunnerEnabled) + { + TestRunner_Battle_InvalidNoHPMon(battler, gBattlerPartyIndexes[battler]); + } + // Handle in-game scenario. + else + { + struct Pokemon *party = GetBattlerParty(battler); + // Find the first possible replacement for the not valid pokemon. + for (i = 0; i < PARTY_SIZE; i++) + { + if (IsValidForBattle(&party[i])) + break; + } + // There is valid replacement. + if (i != PARTY_SIZE) + { + gBattlerPartyIndexes[battler] = gBattleStruct->monToSwitchIntoId[battler] = i; + BtlController_EmitGetMonData(battler, BUFFER_A, REQUEST_ALL_BATTLE, gBitTable[gBattlerPartyIndexes[battler]]); + MarkBattlerForControllerExec(battler); + return; + } + } + } + gBattleMons[battler].type1 = gSpeciesInfo[gBattleMons[battler].species].types[0]; gBattleMons[battler].type2 = gSpeciesInfo[gBattleMons[battler].species].types[1]; gBattleMons[battler].type3 = TYPE_MYSTERY; @@ -7456,7 +7565,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 +7584,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 +7603,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); @@ -8096,7 +8205,7 @@ static bool32 HasAttackerFaintedTarget(void) bool32 CanPoisonType(u8 battlerAttacker, u8 battlerTarget) { - return ((GetBattlerAbility(battlerAttacker) == ABILITY_CORROSION && gBattleMoves[gCurrentMove].split == SPLIT_STATUS) + return ((GetBattlerAbility(battlerAttacker) == ABILITY_CORROSION && gBattleMoves[gCurrentMove].category == BATTLE_CATEGORY_STATUS) || !(IS_BATTLER_OF_TYPE(battlerTarget, TYPE_POISON) || IS_BATTLER_OF_TYPE(battlerTarget, TYPE_STEEL))); } @@ -8165,6 +8274,8 @@ static void RemoveAllTerrains(void) static bool32 TryDefogClear(u32 battlerAtk, bool32 clear) { s32 i; + u8 saveBattler = gBattlerAttacker; + for (i = 0; i < 2; i++) { struct SideTimer *sideTimer = &gSideTimers[i]; @@ -8193,6 +8304,8 @@ static bool32 TryDefogClear(u32 battlerAtk, bool32 clear) } } + gBattlerAttacker = saveBattler; + return FALSE; } @@ -8256,53 +8369,18 @@ static bool32 IsRototillerAffected(u32 battler) return TRUE; } - -static bool32 IsAbilityRodAffected(void) +static bool32 IsElectricAbilityAffected(u32 ability) { u32 moveType; if (gBattleStruct->dynamicMoveType == 0) moveType = gBattleMoves[gCurrentMove].type; - else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_1)) + else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_IGNORE_PHYSICALITY)) moveType = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; else moveType = gBattleMoves[gCurrentMove].type; - if (moveType == TYPE_ELECTRIC && GetBattlerAbility(gBattlerTarget) == ABILITY_LIGHTNING_ROD) - return TRUE; - else - return FALSE; -} - -static bool32 IsAbilityMotorAffected(void) -{ - u32 moveType; - - if (gBattleStruct->dynamicMoveType == 0) - moveType = gBattleMoves[gCurrentMove].type; - else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_1)) - moveType = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; - else - moveType = gBattleMoves[gCurrentMove].type; - - if (moveType == TYPE_ELECTRIC && GetBattlerAbility(gBattlerTarget) == ABILITY_MOTOR_DRIVE) - return TRUE; - else - return FALSE; -} - -static bool32 IsAbilityAbsorbAffected(void) -{ - u32 moveType; - - if (gBattleStruct->dynamicMoveType == 0) - moveType = gBattleMoves[gCurrentMove].type; - else if (!(gBattleStruct->dynamicMoveType & F_DYNAMIC_TYPE_1)) - moveType = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; - else - moveType = gBattleMoves[gCurrentMove].type; - - if (moveType == TYPE_ELECTRIC && GetBattlerAbility(gBattlerTarget) == ABILITY_VOLT_ABSORB) + if (moveType == TYPE_ELECTRIC && GetBattlerAbility(gBattlerTarget) == ability) return TRUE; else return FALSE; @@ -8344,8 +8422,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 +8437,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!" @@ -9261,7 +9341,7 @@ static void Cmd_various(void) case VARIOUS_SET_SIMPLE_BEAM: { VARIOUS_ARGS(const u8 *failInstr); - if (IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) + if (IsSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability) || gBattleMons[gBattlerTarget].ability == ABILITY_SIMPLE) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); @@ -9286,7 +9366,7 @@ static void Cmd_various(void) { VARIOUS_ARGS(const u8 *failInstr); if (IsEntrainmentBannedAbilityAttacker(gBattleMons[gBattlerAttacker].ability) - || IsEntrainmentTargetOrSimpleBeamBannedAbility(gBattleMons[gBattlerTarget].ability)) + || IsEntrainmentBannedAbility(gBattleMons[gBattlerTarget].ability)) { RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability); gBattlescriptCurrInstr = cmd->failInstr; @@ -9317,26 +9397,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); @@ -9529,29 +9589,10 @@ static void Cmd_various(void) } return; } - case VARIOUS_TRY_COPYCAT: - { - VARIOUS_ARGS(const u8 *failInstr); - if (gLastUsedMove == MOVE_NONE || gLastUsedMove == MOVE_UNAVAILABLE || gBattleMoves[gLastUsedMove].copycatBanned) - { - gBattlescriptCurrInstr = cmd->failInstr; - } - else - { - if (IsMaxMove(gLastUsedMove)) - gCalledMove = gBattleStruct->dynamax.lastUsedBaseMove; - else - gCalledMove = gLastUsedMove; - gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; - gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); - gBattlescriptCurrInstr = cmd->nextInstr; - } - return; - } case VARIOUS_TRY_INSTRUCT: { VARIOUS_ARGS(const u8 *failInstr); - u16 move = gLastMoves[gBattlerTarget]; + u16 move = gLastPrintedMoves[gBattlerTarget]; if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].effect == EFFECT_RECHARGE || gBattleMoves[move].instructBanned || gBattleMoves[move].twoTurnMove || IsDynamaxed(gBattlerTarget)) { @@ -9561,7 +9602,7 @@ static void Cmd_various(void) { gSpecialStatuses[gBattlerTarget].instructedChosenTarget = *(gBattleStruct->moveTarget + gBattlerTarget) | 0x4; gBattlerAttacker = gBattlerTarget; - gCalledMove = gLastMoves[gBattlerAttacker]; + gCalledMove = move; for (i = 0; i < MAX_MON_MOVES; i++) { if (gBattleMons[gBattlerAttacker].moves[i] == gCalledMove) @@ -9595,25 +9636,6 @@ static void Cmd_various(void) UpdateAbilityPopup(battler); break; } - case VARIOUS_DEFOG: - { - VARIOUS_ARGS(bool8 clear, const u8 *failInstr); - if (cmd->clear) // Clear - { - if (TryDefogClear(gEffectBattler, TRUE)) - return; - else - gBattlescriptCurrInstr = cmd->nextInstr; - } - else - { - if (TryDefogClear(battler, FALSE)) - gBattlescriptCurrInstr = cmd->nextInstr; - else - gBattlescriptCurrInstr = cmd->failInstr; - } - return; - } case VARIOUS_JUMP_IF_TARGET_ALLY: { VARIOUS_ARGS(const u8 *jumpInstr); @@ -10251,7 +10273,7 @@ static void Cmd_various(void) case VARIOUS_PHOTON_GEYSER_CHECK: { VARIOUS_ARGS(); - gBattleStruct->swapDamageCategory = (GetSplitBasedOnStats(battler) == SPLIT_SPECIAL); + gBattleStruct->swapDamageCategory = (GetCategoryBasedOnStats(battler) == BATTLE_CATEGORY_SPECIAL); break; } case VARIOUS_SHELL_SIDE_ARM_CHECK: // 0% chance GameFreak actually checks this way according to DaWobblefet, but this is the only functional explanation at the moment @@ -10653,50 +10675,33 @@ 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; } +static void TryResetProtectUseCounter(u32 battler) +{ + u32 lastMove = gLastResultingMoves[battler]; + if (lastMove == MOVE_UNAVAILABLE + || (!gBattleMoves[lastMove].protectionMove && (B_ALLY_SWITCH_FAIL_CHANCE >= GEN_9 && gBattleMoves[lastMove].effect != EFFECT_ALLY_SWITCH))) + gDisableStructs[battler].protectUses = 0; +} + static void Cmd_setprotectlike(void) { CMD_ARGS(); bool32 fail = TRUE; bool32 notLastTurn = TRUE; - u32 lastMove = gLastResultingMoves[gBattlerAttacker]; - - if (lastMove == MOVE_UNAVAILABLE || !(gBattleMoves[lastMove].protectionMove)) - gDisableStructs[gBattlerAttacker].protectUses = 0; + TryResetProtectUseCounter(gBattlerAttacker); if (gCurrentTurnActionNumber == (gBattlersCount - 1)) notLastTurn = FALSE; - if (sProtectSuccessRates[gDisableStructs[gBattlerAttacker].protectUses] >= Random() && notLastTurn) + if ((sProtectSuccessRates[gDisableStructs[gBattlerAttacker].protectUses] >= Random() && notLastTurn) + || (gCurrentMove == MOVE_WIDE_GUARD && B_WIDE_GUARD != GEN_5) + || (gCurrentMove == MOVE_QUICK_GUARD && B_QUICK_GUARD != GEN_5)) { if (!gBattleMoves[gCurrentMove].argument) // Protects one mon only. { @@ -11429,7 +11434,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr return STAT_CHANGE_DIDNT_WORK; } else if (!certain - && ((battlerAbility == ABILITY_KEEN_EYE && statId == STAT_ACC) + && (((battlerAbility == ABILITY_KEEN_EYE || battlerAbility == ABILITY_MINDS_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))) @@ -11633,7 +11638,7 @@ static void Cmd_setbide(void) gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS; gLockedMoves[gBattlerAttacker] = gCurrentMove; - gTakenDmg[gBattlerAttacker] = 0; + gBideDmg[gBattlerAttacker] = 0; gBattleMons[gBattlerAttacker].status2 |= STATUS2_BIDE_TURN(2); gBattlescriptCurrInstr = cmd->nextInstr; @@ -12317,6 +12322,7 @@ static void Cmd_transformdataexecution(void) { s32 i; u8 *battleMonAttacker, *battleMonTarget; + u8 timesGotHit; gBattleMons[gBattlerAttacker].status2 |= STATUS2_TRANSFORMED; gDisableStructs[gBattlerAttacker].disabledMove = MOVE_NONE; @@ -12326,6 +12332,9 @@ static void Cmd_transformdataexecution(void) gDisableStructs[gBattlerAttacker].mimickedMoves = 0; gDisableStructs[gBattlerAttacker].usedMoves = 0; + timesGotHit = gBattleStruct->timesGotHit[GetBattlerSide(gBattlerTarget)][gBattlerPartyIndexes[gBattlerTarget]]; + gBattleStruct->timesGotHit[GetBattlerSide(gBattlerAttacker)][gBattlerPartyIndexes[gBattlerAttacker]] = timesGotHit; + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].species) battleMonAttacker = (u8 *)(&gBattleMons[gBattlerAttacker]); @@ -12448,6 +12457,10 @@ static void Cmd_metronome(void) u32 moveCount = MOVES_COUNT_GEN4; #elif B_METRONOME_MOVES >= GEN_3 u32 moveCount = MOVES_COUNT_GEN3; +#elif B_METRONOME_MOVES >= GEN_2 + u32 moveCount = MOVES_COUNT_GEN2; +#else + u32 moveCount = MOVES_COUNT_GEN1; #endif gCurrentMove = RandomUniformExcept(RNG_METRONOME, 1, moveCount - 1, InvalidMetronomeMove); @@ -12618,7 +12631,7 @@ static void Cmd_painsplitdmgcalc(void) storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hpDiff; - gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; + gSpecialStatuses[gBattlerTarget].shellBellDmg = IGNORE_SHELL_BELL; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -13940,24 +13953,26 @@ static void Cmd_tryswapitems(void) } } -// Role Play +// Role Play, Doodle static void Cmd_trycopyability(void) { - CMD_ARGS(const u8 *failInstr); + CMD_ARGS(u8 battler, const u8 *failInstr); + u32 battler = GetBattlerForBattleScript(cmd->battler); u16 defAbility = gBattleMons[gBattlerTarget].ability; - if (gBattleMons[gBattlerAttacker].ability == defAbility + if (gBattleMons[battler].ability == defAbility || defAbility == ABILITY_NONE - || IsRolePlayBannedAbilityAtk(gBattleMons[gBattlerAttacker].ability) - || IsRolePlayBannedAbility(defAbility)) + || IsRolePlayDoodleBannedAbilityAttacker(gBattleMons[battler].ability) + || IsRolePlayDoodleBannedAbilityAttacker(gBattleMons[BATTLE_PARTNER(battler)].ability) + || IsRolePlayDoodleBannedAbility(defAbility)) { gBattlescriptCurrInstr = cmd->failInstr; } else { - gBattleScripting.abilityPopupOverwrite = gBattleMons[gBattlerAttacker].ability; - gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = defAbility; + gBattleScripting.abilityPopupOverwrite = gBattleMons[battler].ability; + gBattleMons[battler].ability = gBattleStruct->overwrittenAbilities[battler] = defAbility; gLastUsedAbility = defAbility; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -14162,6 +14177,11 @@ static void Cmd_tryimprison(void) { gBattlescriptCurrInstr = cmd->failInstr; } + else if (B_IMPRISON >= GEN_5) + { + gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISONED_OTHERS; + gBattlescriptCurrInstr = cmd->nextInstr; + } else { u8 battler, sideAttacker; @@ -14525,7 +14545,7 @@ static void Cmd_pickup(void) SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &heldItem); } } - #if P_SHUCKLE_BERRY_JUICE == TRUE + #if P_SHUCKLE_BERRY_JUICE == GEN_2 else if (species == SPECIES_SHUCKLE && heldItem == ITEM_ORAN_BERRY && (Random() % 16) == 0) @@ -14833,7 +14853,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; @@ -14894,8 +14914,8 @@ 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) + i = GetTimeOfDay(); + if (i == TIME_EVENING || i == TIME_NIGHT || gMapHeader.cave || gMapHeader.mapType == MAP_TYPE_UNDERGROUND) ballMultiplier = (B_DUSK_BALL_MODIFIER >= GEN_7 ? 300 : 350); break; case ITEM_QUICK_BALL: @@ -14915,13 +14935,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) { @@ -14937,7 +14962,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) @@ -15002,7 +15027,7 @@ static void Cmd_handleballthrow(void) if (gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL] < 255) gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL]++; - if (odds > 254) // mon caught + if (odds >= 255) // mon caught { BtlController_EmitBallThrowAnim(gBattlerAttacker, BUFFER_A, BALL_3_SHAKES_SUCCESS); MarkBattlerForControllerExec(gBattlerAttacker); @@ -15047,8 +15072,16 @@ static void Cmd_handleballthrow(void) } else { - odds = Sqrt(Sqrt(16711680 / odds)); - odds = 1048560 / odds; + if (P_CATCH_CURVE >= GEN_6) + { + odds = (255 * 255 * 255) / (odds * odds * odds); + odds = 65536 / Sqrt(Sqrt(Sqrt(Sqrt(odds)))); + } + else + { + odds = Sqrt(Sqrt(16711680 / odds)); + odds = 1048560 / odds; + } for (shakes = 0; shakes < maxShakes && Random() < odds; shakes++); } @@ -15159,7 +15192,7 @@ static void Cmd_displaydexinfo(void) if (!gPaletteFade.active) { FreeAllWindowBuffers(); - gBattleCommunication[TASK_ID] = DisplayCaughtMonDexPage(SpeciesToNationalPokedexNum(species), + gBattleCommunication[TASK_ID] = DisplayCaughtMonDexPage(species, gBattleMons[GetCatchingBattler()].otId, gBattleMons[GetCatchingBattler()].personality); gBattleCommunication[0]++; @@ -15632,7 +15665,7 @@ bool32 IsMoveAffectedByParentalBond(u32 move, u32 battler) { if (move != MOVE_NONE && move != MOVE_UNAVAILABLE && move != MOVE_STRUGGLE && !gBattleMoves[move].parentalBondBanned - && gBattleMoves[move].split != SPLIT_STATUS + && gBattleMoves[move].category != BATTLE_CATEGORY_STATUS && gBattleMoves[move].strikeCount < 2) { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -16108,7 +16141,7 @@ void BS_JumpIfEmergencyExited(void) void BS_JumpIfRod(void) { NATIVE_ARGS(const u8 *jumpInstr); - if (IsAbilityRodAffected()) + if (IsElectricAbilityAffected(ABILITY_LIGHTNING_ROD)) gBattlescriptCurrInstr = cmd->jumpInstr; else gBattlescriptCurrInstr = cmd->nextInstr; @@ -16117,7 +16150,7 @@ void BS_JumpIfRod(void) void BS_JumpIfAbsorb(void) { NATIVE_ARGS(const u8 *jumpInstr); - if (IsAbilityAbsorbAffected()) + if (IsElectricAbilityAffected(ABILITY_VOLT_ABSORB)) gBattlescriptCurrInstr = cmd->jumpInstr; else gBattlescriptCurrInstr = cmd->nextInstr; @@ -16126,7 +16159,7 @@ void BS_JumpIfAbsorb(void) void BS_JumpIfMotor(void) { NATIVE_ARGS(const u8 *jumpInstr); - if (IsAbilityMotorAffected()) + if (IsElectricAbilityAffected(ABILITY_MOTOR_DRIVE)) gBattlescriptCurrInstr = cmd->jumpInstr; else gBattlescriptCurrInstr = cmd->nextInstr; @@ -16317,3 +16350,267 @@ void BS_TryRelicSong(void) 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; + } +} + +void BS_TryCopycat(void) +{ + NATIVE_ARGS(const u8 *failInstr); + + if (gLastUsedMove == MOVE_NONE || gLastUsedMove == MOVE_UNAVAILABLE || gBattleMoves[gLastUsedMove].copycatBanned) + { + gBattlescriptCurrInstr = cmd->failInstr; + } + else + { + if (IsMaxMove(gLastUsedMove)) + gCalledMove = gBattleStruct->dynamax.lastUsedBaseMove; + else + gCalledMove = gLastUsedMove; + + gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; + gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); + gBattlescriptCurrInstr = cmd->nextInstr; + } +} + +void BS_TryDefog(void) +{ + NATIVE_ARGS(u8 clear, const u8 *failInstr); + + if (cmd->clear) + { + if (TryDefogClear(gEffectBattler, TRUE)) + return; + else + gBattlescriptCurrInstr = cmd->nextInstr; + } + else + { + if (TryDefogClear(gBattlerAttacker, FALSE)) + gBattlescriptCurrInstr = cmd->nextInstr; + else + gBattlescriptCurrInstr = cmd->failInstr; + } +} + +void BS_TryTriggerStatusForm(void) +{ + NATIVE_ARGS(); + if (TryBattleFormChange(gBattlerTarget, FORM_CHANGE_STATUS)) + { + gBattleScripting.battler = gBattlerTarget; + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = BattleScript_TargetFormChangeWithStringNoPopup; + return; + } + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_AllySwitchSwapBattler(void) +{ + NATIVE_ARGS(); + + gBattleScripting.battler = gBattlerAttacker; + gBattlerAttacker ^= BIT_FLANK; + gProtectStructs[gBattlerAttacker].usedAllySwitch = TRUE; + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_AllySwitchFailChance(void) +{ + NATIVE_ARGS(const u8 *failInstr); + + if (B_ALLY_SWITCH_FAIL_CHANCE >= GEN_9) + { + TryResetProtectUseCounter(gBattlerAttacker); + if (sProtectSuccessRates[gDisableStructs[gBattlerAttacker].protectUses] < Random()) + { + gDisableStructs[gBattlerAttacker].protectUses = 0; + gBattlescriptCurrInstr = cmd->failInstr; + return; + } + else + { + gDisableStructs[gBattlerAttacker].protectUses++; + } + } + gBattlescriptCurrInstr = cmd->nextInstr; +} diff --git a/src/battle_setup.c b/src/battle_setup.c index e8ffcd8908..750191d74f 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); } @@ -1380,15 +1401,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); @@ -1396,6 +1443,7 @@ static void CB2_EndTrainerBattle(void) else { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + DowngradeBadPoison(); if (!InBattlePyramid() && !InTrainerHillChallenge()) { RegisterTrainerInMatchCall(); @@ -1408,6 +1456,7 @@ static void CB2_EndRematchBattle(void) { if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) { + DowngradeBadPoison(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } else if (IsPlayerDefeated(gBattleOutcome) == TRUE) @@ -1420,6 +1469,7 @@ static void CB2_EndRematchBattle(void) RegisterTrainerInMatchCall(); SetBattledTrainersFlags(); HandleRematchVarsOnBattleEnd(); + DowngradeBadPoison(); } } @@ -1599,7 +1649,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; @@ -1612,7 +1662,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; @@ -1658,30 +1708,42 @@ static void SetRematchIdForTrainer(const struct RematchTrainer *table, u32 table gSaveBlock1Ptr->trainerRematches[tableId] = i; } +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; + + 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) { - 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; - } + // 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. + { + SetRematchIdForTrainer(table, i); + return TRUE; } } - return ret; + return FALSE; } void UpdateRematchIfDefeated(s32 rematchTableId) @@ -1744,7 +1806,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; @@ -1849,7 +1911,9 @@ static bool32 HasAtLeastFiveBadges(void) void IncrementRematchStepCounter(void) { - 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; @@ -1884,7 +1948,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) @@ -1907,6 +1974,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_tower.c b/src/battle_tower.c index c30406f798..6dba9a63ed 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -32,15 +32,13 @@ #include "constants/battle_tent_mons.h" #include "constants/battle_tent_trainers.h" #include "constants/battle_tower.h" +#include "constants/battle_partner.h" #include "constants/frontier_util.h" #include "constants/items.h" #include "constants/trainers.h" #include "constants/event_objects.h" #include "constants/moves.h" -extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer[]; -extern const u8 MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer[]; - // EWRAM vars. EWRAM_DATA const struct BattleFrontierTrainer *gFacilityTrainers = NULL; EWRAM_DATA const struct FacilityMon *gFacilityTrainerMons = NULL; @@ -762,44 +760,11 @@ static const u8 *const *const sPartnerApprenticeTextTables[NUM_APPRENTICES] = sPartnerApprenticeTexts16 }; -struct -{ - u16 species; - u8 fixedIV; - u8 level; - u8 nature; - u8 evs[NUM_STATS]; - u16 moves[MAX_MON_MOVES]; -} static const sStevenMons[MULTI_PARTY_SIZE] = -{ - { - .species = SPECIES_METANG, - .fixedIV = MAX_PER_STAT_IVS, - .level = 42, - .nature = NATURE_BRAVE, - .evs = {0, 252, 252, 0, 6, 0}, - .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW} - }, - { - .species = SPECIES_SKARMORY, - .fixedIV = MAX_PER_STAT_IVS, - .level = 43, - .nature = NATURE_IMPISH, - .evs = {252, 0, 0, 0, 6, 252}, - .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING} - }, - { - .species = SPECIES_AGGRON, - .fixedIV = MAX_PER_STAT_IVS, - .level = 44, - .nature = NATURE_ADAMANT, - .evs = {0, 252, 0, 0, 252, 6}, - .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW} - } -}; - #include "data/battle_frontier/battle_tent.h" +#include "data/partner_parties.h" +#include "data/battle_partners.h" + static void (* const sBattleTowerFuncs[])(void) = { [BATTLE_TOWER_FUNC_INIT] = InitTowerChallenge, @@ -1447,13 +1412,9 @@ u8 GetFrontierOpponentClass(u16 trainerId) { return GetFrontierBrainTrainerClass(); } - else if (trainerId == TRAINER_STEVEN_PARTNER) + else if (trainerId > TRAINER_PARTNER(PARTNER_NONE)) { - trainerClass = gTrainers[TRAINER_STEVEN].trainerClass; - } - else if (trainerId >= TRAINER_CUSTOM_PARTNER) - { - trainerClass = gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].trainerClass; + trainerClass = gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerClass; } else if (trainerId < FRONTIER_TRAINERS_COUNT) { @@ -1531,15 +1492,10 @@ void GetFrontierTrainerName(u8 *dst, u16 trainerId) CopyFrontierBrainTrainerName(dst); return; } - else if (trainerId == TRAINER_STEVEN_PARTNER) + else if (trainerId > TRAINER_PARTNER(PARTNER_NONE)) { - for (i = 0; i < PLAYER_NAME_LENGTH; i++) - dst[i] = gTrainers[TRAINER_STEVEN].trainerName[i]; - } - else if (trainerId >= TRAINER_CUSTOM_PARTNER) - { - for (i = 0; gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].trainerName[i] != EOS; i++) - dst[i] = gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].trainerName[i]; + for (i = 0; gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerName[i] != EOS; i++) + dst[i] = gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerName[i]; } else if (trainerId < FRONTIER_TRAINERS_COUNT) { @@ -2136,18 +2092,6 @@ void DoSpecialTrainerBattle(void) PlayMapChosenOrBattleBGM(0); BattleTransition_StartOnField(GetSpecialBattleTransition(B_TRANSITION_GROUP_B_PIKE)); break; - case SPECIAL_BATTLE_STEVEN: - gBattleTypeFlags = BATTLE_TYPE_TRAINER | BATTLE_TYPE_DOUBLE | BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_MULTI | BATTLE_TYPE_INGAME_PARTNER; - FillPartnerParty(TRAINER_STEVEN_PARTNER); - gApproachingTrainerId = 0; - BattleSetup_ConfigureTrainerBattle(MossdeepCity_SpaceCenter_2F_EventScript_MaxieTrainer + 1); - gApproachingTrainerId = 1; - BattleSetup_ConfigureTrainerBattle(MossdeepCity_SpaceCenter_2F_EventScript_TabithaTrainer + 1); - gPartnerTrainerId = TRAINER_STEVEN_PARTNER; - CreateTask(Task_StartBattleAfterTransition, 1); - PlayMapChosenOrBattleBGM(0); - BattleTransition_StartOnField(B_TRANSITION_MAGMA); - break; case SPECIAL_BATTLE_MULTI: if (gSpecialVar_0x8005 & MULTI_BATTLE_2_VS_WILD) // Player + AI against wild mon { @@ -2164,7 +2108,7 @@ void DoSpecialTrainerBattle(void) } gPartnerSpriteId = VarGet(gSpecialVar_0x8007); - gPartnerTrainerId = VarGet(gSpecialVar_0x8006) + TRAINER_CUSTOM_PARTNER; + gPartnerTrainerId = VarGet(gSpecialVar_0x8006) + TRAINER_PARTNER(PARTNER_NONE); FillPartnerParty(gPartnerTrainerId); CreateTask(Task_StartBattleAfterTransition, 1); PlayMapChosenOrBattleBGM(0); @@ -3003,7 +2947,8 @@ void TryHideBattleTowerReporter(void) static void FillPartnerParty(u16 trainerId) { - s32 i, j; + s32 i, j, k; + u32 firstIdPart = 0, secondIdPart = 0, thirdIdPart = 0; u32 ivs, level, personality; u32 friendship; u16 monId; @@ -3012,46 +2957,39 @@ static void FillPartnerParty(u16 trainerId) s32 ball = -1; SetFacilityPtrsGetLevel(); - if (trainerId == TRAINER_STEVEN_PARTNER) + if (trainerId > TRAINER_PARTNER(PARTNER_NONE)) { - for (i = 0; i < MULTI_PARTY_SIZE; i++) - { - do - { - j = Random32(); - } while (IsShinyOtIdPersonality(STEVEN_OTID, j) || sStevenMons[i].nature != GetNatureFromPersonality(j)); - CreateMon(&gPlayerParty[MULTI_PARTY_SIZE + i], - sStevenMons[i].species, - sStevenMons[i].level, - sStevenMons[i].fixedIV, - TRUE, - #ifdef BUGFIX - j, - #else - i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures. - #endif - OT_ID_PRESET, STEVEN_OTID); - for (j = 0; j < PARTY_SIZE; j++) - SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]); - for (j = 0; j < MAX_MON_MOVES; j++) - SetMonMoveSlot(&gPlayerParty[MULTI_PARTY_SIZE + i], sStevenMons[i].moves[j], j); - SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, gTrainers[TRAINER_STEVEN].trainerName); - j = MALE; - SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j); - CalculateMonStats(&gPlayerParty[MULTI_PARTY_SIZE + i]); - } - } - else if (trainerId >= TRAINER_CUSTOM_PARTNER) - { - otID = Random32(); - for (i = 0; i < 3; i++) ZeroMonData(&gPlayerParty[i + 3]); - for (i = 0; i < 3 && i < gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].partySize; i++) + for (i = 0; i < 3 && i < gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].partySize; i++) { - const struct TrainerMon *partyData = gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].party; - u32 otIdType = OT_ID_RANDOM_NO_SHINY; + const struct TrainerMon *partyData = gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].party; + const u8 *partnerName = gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerName; + + for (k = 0; partnerName[k] != EOS && k < 3; k++) + { + if (k == 0) + { + firstIdPart = partnerName[k]; + secondIdPart = partnerName[k]; + thirdIdPart = partnerName[k]; + } + else if (k == 1) + { + secondIdPart = partnerName[k]; + thirdIdPart = partnerName[k]; + } + else if (k == 2) + { + thirdIdPart = partnerName[k]; + } + } + if (trainerId == TRAINER_PARTNER(PARTNER_STEVEN)) + otID = STEVEN_OTID; + else + otID = ((firstIdPart % 72) * 1000) + ((secondIdPart % 23) * 10) + (thirdIdPart % 37) % 65536; + do { personality = Random32(); @@ -3064,53 +3002,50 @@ static void FillPartnerParty(u16 trainerId) if (partyData[i].nature != 0) ModifyPersonalityForNature(&personality, partyData[i].nature - 1); if (partyData[i].isShiny) - { - otIdType = OT_ID_PRESET; - otID = HIHALF(personality) ^ LOHALF(personality); - } + otID ^= GET_SHINY_VALUE(otID, personality) << 16; - CreateMon(&gPlayerParty[i + 3], partyData[i].species, partyData[i].lvl, 0, TRUE, personality, otIdType, otID); + CreateMon(&gPlayerParty[i + 3], partyData[i].species, partyData[i].lvl, 0, TRUE, personality, OT_ID_PRESET, otID); SetMonData(&gPlayerParty[i + 3], MON_DATA_HELD_ITEM, &partyData[i].heldItem); - CustomTrainerPartyAssignMoves(&gPlayerParty[i+3], &partyData[i]); + CustomTrainerPartyAssignMoves(&gPlayerParty[i + 3], &partyData[i]); - SetMonData(&gPlayerParty[i+3], MON_DATA_IVS, &(partyData[i].iv)); + SetMonData(&gPlayerParty[i + 3], MON_DATA_IVS, &(partyData[i].iv)); if (partyData[i].ev != NULL) { - SetMonData(&gPlayerParty[i+3], MON_DATA_HP_EV, &(partyData[i].ev[0])); - SetMonData(&gPlayerParty[i+3], MON_DATA_ATK_EV, &(partyData[i].ev[1])); - SetMonData(&gPlayerParty[i+3], MON_DATA_DEF_EV, &(partyData[i].ev[2])); - SetMonData(&gPlayerParty[i+3], MON_DATA_SPATK_EV, &(partyData[i].ev[3])); - SetMonData(&gPlayerParty[i+3], MON_DATA_SPDEF_EV, &(partyData[i].ev[4])); - SetMonData(&gPlayerParty[i+3], MON_DATA_SPEED_EV, &(partyData[i].ev[5])); + SetMonData(&gPlayerParty[i + 3], MON_DATA_HP_EV, &(partyData[i].ev[0])); + SetMonData(&gPlayerParty[i + 3], MON_DATA_ATK_EV, &(partyData[i].ev[1])); + SetMonData(&gPlayerParty[i + 3], MON_DATA_DEF_EV, &(partyData[i].ev[2])); + SetMonData(&gPlayerParty[i + 3], MON_DATA_SPATK_EV, &(partyData[i].ev[3])); + SetMonData(&gPlayerParty[i + 3], MON_DATA_SPDEF_EV, &(partyData[i].ev[4])); + SetMonData(&gPlayerParty[i + 3], MON_DATA_SPEED_EV, &(partyData[i].ev[5])); } if (partyData[i].ability != ABILITY_NONE) { const struct SpeciesInfo *speciesInfo = &gSpeciesInfo[partyData[i].species]; u32 maxAbilities = ARRAY_COUNT(speciesInfo->abilities); - for (j = 0; j < maxAbilities; ++j) + for (j = 0; j < maxAbilities; j++) { if (speciesInfo->abilities[j] == partyData[i].ability) break; } if (j < maxAbilities) - SetMonData(&gPlayerParty[i+3], MON_DATA_ABILITY_NUM, &j); + SetMonData(&gPlayerParty[i + 3], MON_DATA_ABILITY_NUM, &j); } - SetMonData(&gPlayerParty[i+3], MON_DATA_FRIENDSHIP, &(partyData[i].friendship)); + SetMonData(&gPlayerParty[i + 3], MON_DATA_FRIENDSHIP, &(partyData[i].friendship)); if (partyData[i].ball != ITEM_NONE) { ball = partyData[i].ball; - SetMonData(&gPlayerParty[i+3], MON_DATA_POKEBALL, &ball); + SetMonData(&gPlayerParty[i + 3], MON_DATA_POKEBALL, &ball); } if (partyData[i].nickname != NULL) { - SetMonData(&gPlayerParty[i+3], MON_DATA_NICKNAME, partyData[i].nickname); + SetMonData(&gPlayerParty[i + 3], MON_DATA_NICKNAME, partyData[i].nickname); } - CalculateMonStats(&gPlayerParty[i+3]); + CalculateMonStats(&gPlayerParty[i + 3]); - StringCopy(trainerName, gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].trainerName); + StringCopy(trainerName, gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerName); SetMonData(&gPlayerParty[i + 3], MON_DATA_OT_NAME, trainerName); - j = gTrainers[trainerId - TRAINER_CUSTOM_PARTNER].encounterMusic_gender >> 7; - SetMonData(&gPlayerParty[i+3], MON_DATA_OT_GENDER, &j); + j = gBattlePartners[trainerId - TRAINER_PARTNER(PARTNER_NONE)].encounterMusic_gender >> 7; + SetMonData(&gPlayerParty[i + 3], MON_DATA_OT_GENDER, &j); } } else if (trainerId == TRAINER_EREADER) diff --git a/src/battle_tv.c b/src/battle_tv.c index fad7d2a103..9d86389632 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -127,7 +127,7 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_RECOIL_IF_MISS] = 1, [EFFECT_MIST] = 5, [EFFECT_FOCUS_ENERGY] = 1, - [EFFECT_RECOIL_25] = 2, + [EFFECT_RECOIL] = 2, [EFFECT_CONFUSE] = 4, [EFFECT_ATTACK_UP_2] = 1, [EFFECT_DEFENSE_UP_2] = 1, @@ -261,7 +261,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_SNATCH] = 1, [EFFECT_LOW_KICK] = 1, [EFFECT_SECRET_POWER] = 1, - [EFFECT_RECOIL_33] = 2, [EFFECT_TEETER_DANCE] = 6, // [EFFECT_BLAZE_KICK] = 1, [EFFECT_MUD_SPORT] = 4, @@ -344,8 +343,6 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_SOAK] = 0, // TODO: Assign points [EFFECT_GROWTH] = 0, // TODO: Assign points [EFFECT_LAST_RESORT] = 0, // TODO: Assign points - [EFFECT_RECOIL_33_STATUS] = 0, // TODO: Assign points - [EFFECT_RECOIL_50] = 0, // TODO: Assign points [EFFECT_SHELL_SMASH] = 0, // TODO: Assign points [EFFECT_SHIFT_GEAR] = 0, // TODO: Assign points [EFFECT_DEFENSE_UP_3] = 0, // TODO: Assign points diff --git a/src/battle_util.c b/src/battle_util.c index 5f8c7fc1e0..d8cf0f90ba 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 @@ -98,81 +96,113 @@ static const u8 sGoNearCounterToEscapeFactor[] = {4, 4, 4, 4}; static const u16 sSkillSwapBannedAbilities[] = { - ABILITY_WONDER_GUARD, - ABILITY_MULTITYPE, - ABILITY_ILLUSION, - ABILITY_STANCE_CHANGE, - ABILITY_SCHOOLING, - ABILITY_COMATOSE, - ABILITY_SHIELDS_DOWN, - ABILITY_DISGUISE, - ABILITY_RKS_SYSTEM, + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_BATTLE_BOND, - ABILITY_POWER_CONSTRUCT, - ABILITY_NEUTRALIZING_GAS, - ABILITY_ICE_FACE, - ABILITY_HUNGER_SWITCH, + ABILITY_COMATOSE, + ABILITY_COMMANDER, + ABILITY_DISGUISE, ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, + ABILITY_HUNGER_SWITCH, + ABILITY_ICE_FACE, + ABILITY_ILLUSION, + ABILITY_MULTITYPE, + ABILITY_NEUTRALIZING_GAS, + ABILITY_ORICHALCUM_PULSE, + ABILITY_POWER_CONSTRUCT, + ABILITY_PROTOSYNTHESIS, + ABILITY_QUARK_DRIVE, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, + ABILITY_WONDER_GUARD, + ABILITY_ZEN_MODE, ABILITY_ZERO_TO_HERO, }; -static const u16 sRolePlayBannedAbilities[] = +static const u16 sRolePlayDoodleBannedAbilities[] = { + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, + ABILITY_BATTLE_BOND, + ABILITY_COMATOSE, + ABILITY_COMMANDER, + ABILITY_DISGUISE, + ABILITY_FLOWER_GIFT, + ABILITY_FORECAST, + ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, + ABILITY_HUNGER_SWITCH, + ABILITY_ICE_FACE, + ABILITY_ILLUSION, + ABILITY_IMPOSTER, + ABILITY_MULTITYPE, + ABILITY_NEUTRALIZING_GAS, + ABILITY_ORICHALCUM_PULSE, + ABILITY_POWER_CONSTRUCT, + ABILITY_POWER_OF_ALCHEMY, + ABILITY_PROTOSYNTHESIS, + ABILITY_QUARK_DRIVE, + ABILITY_RECEIVER, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, ABILITY_TRACE, ABILITY_WONDER_GUARD, - ABILITY_FORECAST, - ABILITY_FLOWER_GIFT, - ABILITY_MULTITYPE, - ABILITY_ILLUSION, ABILITY_ZEN_MODE, - ABILITY_IMPOSTER, - ABILITY_STANCE_CHANGE, - ABILITY_POWER_OF_ALCHEMY, - ABILITY_RECEIVER, - ABILITY_SCHOOLING, - ABILITY_COMATOSE, - ABILITY_SHIELDS_DOWN, - ABILITY_DISGUISE, - ABILITY_RKS_SYSTEM, - ABILITY_BATTLE_BOND, - ABILITY_POWER_CONSTRUCT, - ABILITY_ICE_FACE, - ABILITY_HUNGER_SWITCH, - ABILITY_GULP_MISSILE, ABILITY_ZERO_TO_HERO, }; -static const u16 sRolePlayBannedAttackerAbilities[] = +static const u16 sRolePlayDoodleBannedAttackerAbilities[] = { - ABILITY_MULTITYPE, - ABILITY_ZEN_MODE, - ABILITY_STANCE_CHANGE, - ABILITY_SCHOOLING, - ABILITY_COMATOSE, - ABILITY_SHIELDS_DOWN, - ABILITY_DISGUISE, - ABILITY_RKS_SYSTEM, + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_BATTLE_BOND, - ABILITY_POWER_CONSTRUCT, - ABILITY_ICE_FACE, + ABILITY_COMATOSE, + ABILITY_COMMANDER, + ABILITY_DISGUISE, ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, + ABILITY_ICE_FACE, + ABILITY_MULTITYPE, + ABILITY_ORICHALCUM_PULSE, + ABILITY_POWER_CONSTRUCT, + ABILITY_PROTOSYNTHESIS, + ABILITY_QUARK_DRIVE, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, + ABILITY_ZEN_MODE, ABILITY_ZERO_TO_HERO, }; static const u16 sWorrySeedBannedAbilities[] = { - ABILITY_MULTITYPE, - ABILITY_STANCE_CHANGE, - ABILITY_SCHOOLING, - ABILITY_COMATOSE, - ABILITY_SHIELDS_DOWN, - ABILITY_DISGUISE, - ABILITY_RKS_SYSTEM, + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_BATTLE_BOND, - ABILITY_POWER_CONSTRUCT, - ABILITY_TRUANT, - ABILITY_ICE_FACE, + ABILITY_COMATOSE, + ABILITY_COMMANDER, + ABILITY_DISGUISE, ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, + ABILITY_ICE_FACE, + ABILITY_INSOMNIA, + ABILITY_MULTITYPE, + ABILITY_ORICHALCUM_PULSE, + ABILITY_POWER_CONSTRUCT, + ABILITY_PROTOSYNTHESIS, + ABILITY_QUARK_DRIVE, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, + ABILITY_TRUANT, + ABILITY_ZEN_MODE, ABILITY_ZERO_TO_HERO, }; @@ -182,10 +212,13 @@ static const u16 sGastroAcidBannedAbilities[] = ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_BATTLE_BOND, ABILITY_COMATOSE, + ABILITY_COMMANDER, ABILITY_DISGUISE, ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, ABILITY_ICE_FACE, ABILITY_MULTITYPE, + ABILITY_ORICHALCUM_PULSE, ABILITY_POWER_CONSTRUCT, ABILITY_RKS_SYSTEM, ABILITY_SCHOOLING, @@ -195,38 +228,87 @@ static const u16 sGastroAcidBannedAbilities[] = ABILITY_ZERO_TO_HERO, }; +static const u16 sEntrainmentBannedAbilities[] = +{ + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, + ABILITY_BATTLE_BOND, + ABILITY_COMATOSE, + ABILITY_COMMANDER, + ABILITY_DISGUISE, + ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, + ABILITY_ICE_FACE, + ABILITY_MULTITYPE, + ABILITY_ORICHALCUM_PULSE, + ABILITY_POWER_CONSTRUCT, + ABILITY_PROTOSYNTHESIS, + ABILITY_QUARK_DRIVE, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, + ABILITY_TRUANT, + ABILITY_ZEN_MODE, + ABILITY_ZERO_TO_HERO, +}; + static const u16 sEntrainmentBannedAttackerAbilities[] = { - ABILITY_TRACE, - ABILITY_FORECAST, + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, + ABILITY_BATTLE_BOND, + ABILITY_COMATOSE, + ABILITY_COMMANDER, + ABILITY_DISGUISE, ABILITY_FLOWER_GIFT, - ABILITY_ZEN_MODE, + ABILITY_FORECAST, + ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, + ABILITY_HUNGER_SWITCH, + ABILITY_ICE_FACE, ABILITY_ILLUSION, ABILITY_IMPOSTER, - ABILITY_POWER_OF_ALCHEMY, - ABILITY_RECEIVER, - ABILITY_DISGUISE, - ABILITY_POWER_CONSTRUCT, + ABILITY_MULTITYPE, ABILITY_NEUTRALIZING_GAS, - ABILITY_ICE_FACE, - ABILITY_HUNGER_SWITCH, - ABILITY_GULP_MISSILE, + ABILITY_ORICHALCUM_PULSE, + ABILITY_POWER_CONSTRUCT, + ABILITY_POWER_OF_ALCHEMY, + ABILITY_PROTOSYNTHESIS, + ABILITY_QUARK_DRIVE, + ABILITY_RECEIVER, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, + ABILITY_TRACE, + ABILITY_ZEN_MODE, ABILITY_ZERO_TO_HERO, }; -static const u16 sEntrainmentTargetSimpleBeamBannedAbilities[] = +static const u16 sSimpleBeamBannedAbilities[] = { - ABILITY_TRUANT, - ABILITY_MULTITYPE, - ABILITY_STANCE_CHANGE, - ABILITY_SCHOOLING, - ABILITY_COMATOSE, - ABILITY_SHIELDS_DOWN, - ABILITY_DISGUISE, - ABILITY_RKS_SYSTEM, + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_BATTLE_BOND, - ABILITY_ICE_FACE, + ABILITY_COMATOSE, + ABILITY_COMMANDER, + ABILITY_DISGUISE, ABILITY_GULP_MISSILE, + ABILITY_HADRON_ENGINE, + ABILITY_ICE_FACE, + ABILITY_MULTITYPE, + ABILITY_ORICHALCUM_PULSE, + ABILITY_POWER_CONSTRUCT, + ABILITY_PROTOSYNTHESIS, + ABILITY_QUARK_DRIVE, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_SIMPLE, + ABILITY_STANCE_CHANGE, + ABILITY_TRUANT, + ABILITY_ZEN_MODE, ABILITY_ZERO_TO_HERO, }; @@ -345,7 +427,7 @@ void HandleAction_UseMove(void) if (gBattleStruct->dynamax.usingMaxMove[gBattlerAttacker]) { gCurrentMove = gChosenMove = GetMaxMove(gBattlerAttacker, gCurrentMove); - gBattleStruct->dynamax.activeSplit = gBattleStruct->dynamax.splits[gBattlerAttacker]; + gBattleStruct->dynamax.activeCategory = gBattleStruct->dynamax.categories[gBattlerAttacker]; } moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); @@ -373,6 +455,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)) { @@ -521,6 +604,11 @@ void HandleAction_UseMove(void) gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; } } + // Edge case: moves targeting the ally fail after a successful Ally Switch. + else if (moveTarget == MOVE_TARGET_ALLY && gProtectStructs[BATTLE_PARTNER(gBattlerAttacker)].usedAllySwitch) + { + gBattlescriptCurrInstr = BattleScript_FailedFromAtkCanceler; + } else { gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; @@ -832,7 +920,7 @@ void HandleAction_NothingIsFainted(void) gCurrentTurnActionNumber++; gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED - | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE + | HITMARKER_NO_PPDEDUCT | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE | HITMARKER_OBEYS | HITMARKER_WAKE_UP_CLEAR | HITMARKER_SYNCHRONISE_EFFECT | HITMARKER_CHARGING | HITMARKER_NEVER_SET); } @@ -846,7 +934,7 @@ void HandleAction_ActionFinished(void) gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; SpecialStatusesClear(); gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED - | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_PASSIVE_DAMAGE + | HITMARKER_NO_PPDEDUCT | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE | HITMARKER_OBEYS | HITMARKER_WAKE_UP_CLEAR | HITMARKER_SYNCHRONISE_EFFECT | HITMARKER_CHARGING | HITMARKER_NEVER_SET | HITMARKER_IGNORE_DISGUISE); @@ -865,7 +953,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 @@ -884,12 +972,12 @@ void HandleAction_ActionFinished(void) // have been executed before. The only recalculation needed is for moves/switch. Mega evolution is handled in src/battle_main.c/TryChangeOrder if((gActionsByTurnOrder[i] == B_ACTION_USE_MOVE && gActionsByTurnOrder[j] == B_ACTION_USE_MOVE)) { - if (GetWhichBattlerFaster(battler1, battler2, FALSE)) + if (GetWhichBattlerFaster(battler1, battler2, FALSE) == -1) SwapTurnOrder(i, j); } else if ((gActionsByTurnOrder[i] == B_ACTION_SWITCH && gActionsByTurnOrder[j] == B_ACTION_SWITCH)) { - if (GetWhichBattlerFaster(battler1, battler2, TRUE)) // If the actions chosen are switching, we recalc order but ignoring the moves + if (GetWhichBattlerFaster(battler1, battler2, TRUE) == -1) // If the actions chosen are switching, we recalc order but ignoring the moves SwapTurnOrder(i, j); } } @@ -972,6 +1060,8 @@ static const u8 sAbilitiesAffectedByMoldBreaker[] = [ABILITY_GOOD_AS_GOLD] = 1, [ABILITY_PURIFYING_SALT] = 1, [ABILITY_WELL_BAKED_BODY] = 1, + [ABILITY_MINDS_EYE] = 1, + [ABILITY_ILLUMINATE] = 1, }; static const u8 sAbilitiesNotTraced[ABILITIES_COUNT] = @@ -1132,39 +1222,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 @@ -1870,7 +1962,7 @@ u32 GetBattlerAffectionHearts(u32 battler) if (side != B_SIDE_PLAYER) return AFFECTION_NO_HEARTS; - else if (gSpeciesInfo[species].flags & SPECIES_FLAG_MEGA_EVOLUTION + else if (gSpeciesInfo[species].isMegaEvolution || (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK @@ -1881,12 +1973,13 @@ u32 GetBattlerAffectionHearts(u32 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); } @@ -1924,6 +2017,9 @@ enum ENDTURN_RETALIATE, ENDTURN_WEATHER_FORM, ENDTURN_STATUS_HEAL, + ENDTURN_RAINBOW, + ENDTURN_SEA_OF_FIRE, + ENDTURN_SWAMP, ENDTURN_FIELD_COUNT, }; @@ -1936,7 +2032,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; @@ -1975,7 +2071,7 @@ u8 DoFieldEndTurnEffects(void) { if (!gProtectStructs[i].quash && !gProtectStructs[j].quash - && GetWhichBattlerFaster(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], FALSE)) + && GetWhichBattlerFaster(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], FALSE) == -1) SwapTurnOrder(i, j); } } @@ -2236,6 +2332,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 @@ -2431,6 +2529,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; @@ -2481,6 +2668,7 @@ enum ENDTURN_SALT_CURE, ENDTURN_SYRUP_BOMB, ENDTURN_DYNAMAX, + ENDTURN_SEA_OF_FIRE_DAMAGE, ENDTURN_BATTLER_COUNT }; @@ -2508,7 +2696,7 @@ u8 DoBattlerEndTurnEffects(void) { u32 battler, ability, i, effect = 0; - gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); while (gBattleStruct->turnEffectsBattlerId < gBattlersCount && gBattleStruct->turnEffectsTracker <= ENDTURN_BATTLER_COUNT) { battler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId]; @@ -3067,6 +3255,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++; @@ -3077,7 +3276,7 @@ u8 DoBattlerEndTurnEffects(void) return effect; } - gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); return 0; } @@ -3085,7 +3284,7 @@ bool32 HandleWishPerishSongOnTurnEnd(void) { u32 battler; - gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); switch (gBattleStruct->wishPerishSongState) { case 0: @@ -3112,7 +3311,7 @@ bool32 HandleWishPerishSongOnTurnEnd(void) gBattlerTarget = battler; gBattlerAttacker = gWishFutureKnock.futureSightAttacker[battler]; - gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; + gSpecialStatuses[gBattlerTarget].shellBellDmg = IGNORE_SHELL_BELL; gCurrentMove = gWishFutureKnock.futureSightMove[battler]; SetTypeBeforeUsingMove(gCurrentMove, battler); BattleScriptExecute(BattleScript_MonTookFutureAttack); @@ -3177,7 +3376,7 @@ bool32 HandleWishPerishSongOnTurnEnd(void) break; } - gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_IGNORE_BIDE); return FALSE; } @@ -3564,11 +3763,11 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) { // This is removed in FRLG and Emerald for some reason //gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_MULTIPLETURNS; - if (gTakenDmg[gBattlerAttacker]) + if (gBideDmg[gBattlerAttacker]) { gCurrentMove = MOVE_BIDE; - gBattleScripting.bideDmg = gTakenDmg[gBattlerAttacker] * 2; - gBattlerTarget = gTakenDmgByBattler[gBattlerAttacker]; + gBattleScripting.bideDmg = gBideDmg[gBattlerAttacker] * 2; + gBattlerTarget = gBideTarget[gBattlerAttacker]; if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) gBattlerTarget = GetMoveTarget(MOVE_BIDE, MOVE_TARGET_SELECTED + 1); gBattlescriptCurrInstr = BattleScript_BideAttack; @@ -3660,16 +3859,16 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) { //attacker has a queued z move gBattleStruct->zmove.active = TRUE; - gBattleStruct->zmove.activeSplit = gBattleStruct->zmove.splits[gBattlerAttacker]; + gBattleStruct->zmove.activeCategory = gBattleStruct->zmove.categories[gBattlerAttacker]; RecordItemEffectBattle(gBattlerAttacker, HOLD_EFFECT_Z_CRYSTAL); gBattleStruct->zmove.used[gBattlerAttacker] = TRUE; if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsPartnerMonFromSameTrainer(gBattlerAttacker)) gBattleStruct->zmove.used[BATTLE_PARTNER(gBattlerAttacker)] = TRUE; //if 1v1 double, set partner used flag as well gBattleScripting.battler = gBattlerAttacker; - if (gBattleStruct->zmove.activeSplit == SPLIT_STATUS) + if (gBattleStruct->zmove.activeCategory == BATTLE_CATEGORY_STATUS) { - gBattleStruct->zmove.effect = gBattleMoves[gBattleStruct->zmove.baseMoves[gBattlerAttacker]].zMoveEffect; + gBattleStruct->zmove.effect = gBattleMoves[gBattleStruct->zmove.baseMoves[gBattlerAttacker]].zMove.effect; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ZMoveActivateStatus; } @@ -3985,10 +4184,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; @@ -4112,7 +4312,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 { u32 effect = 0; u32 moveType, move; + u32 side; u32 i, j; + struct Pokemon *mon; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) return 0; @@ -4363,6 +4565,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (!gSpecialStatuses[battler].switchInAbilityDone) { gSpecialStatuses[battler].switchInAbilityDone = TRUE; + gBattlerAttacker = battler; BattleScriptPushCursorAndCallback(BattleScript_FriskActivates); // Try activate effect++; } @@ -4593,9 +4796,12 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_INTREPID_SWORD: - if (!gSpecialStatuses[battler].switchInAbilityDone && CompareStat(battler, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN)) + if (!gSpecialStatuses[battler].switchInAbilityDone && CompareStat(battler, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN) + && !(gBattleStruct->intrepidSwordBoost[GetBattlerSide(battler)] & gBitTable[gBattlerPartyIndexes[battler]])) { gBattlerAttacker = battler; + if (B_INTREPID_SWORD == GEN_9) + gBattleStruct->intrepidSwordBoost[GetBattlerSide(battler)] |= gBitTable[gBattlerPartyIndexes[battler]]; gSpecialStatuses[battler].switchInAbilityDone = TRUE; SET_STATCHANGER(STAT_ATK, 1, FALSE); BattleScriptPushCursorAndCallback(BattleScript_BattlerAbilityStatRaiseOnSwitchIn); @@ -4603,9 +4809,12 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_DAUNTLESS_SHIELD: - if (!gSpecialStatuses[battler].switchInAbilityDone && CompareStat(battler, STAT_DEF, MAX_STAT_STAGE, CMP_LESS_THAN)) + if (!gSpecialStatuses[battler].switchInAbilityDone && CompareStat(battler, STAT_DEF, MAX_STAT_STAGE, CMP_LESS_THAN) + && !(gBattleStruct->dauntlessShieldBoost[GetBattlerSide(battler)] & gBitTable[gBattlerPartyIndexes[battler]])) { gBattlerAttacker = battler; + if (B_DAUNTLESS_SHIELD == GEN_9) + gBattleStruct->dauntlessShieldBoost[GetBattlerSide(battler)] |= gBitTable[gBattlerPartyIndexes[battler]]; gSpecialStatuses[battler].switchInAbilityDone = TRUE; SET_STATCHANGER(STAT_DEF, 1, FALSE); BattleScriptPushCursorAndCallback(BattleScript_BattlerAbilityStatRaiseOnSwitchIn); @@ -4700,12 +4909,15 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_ZERO_TO_HERO: + side = GetBattlerSide(battler); + mon = &GetSideParty(side)[gBattlerPartyIndexes[battler]]; + if (!gSpecialStatuses[battler].switchInAbilityDone - && gBattleMons[battler].species == SPECIES_PALAFIN_HERO - && !gBattleStruct->transformZeroToHero[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)]) + && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_PALAFIN_HERO + && !(gBattleStruct->transformZeroToHero[side] & gBitTable[gBattlerPartyIndexes[battler]])) { gSpecialStatuses[battler].switchInAbilityDone = TRUE; - gBattleStruct->transformZeroToHero[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)] = TRUE; + gBattleStruct->transformZeroToHero[side] |= gBitTable[gBattlerPartyIndexes[battler]]; BattleScriptPushCursorAndCallback(BattleScript_ZeroToHeroActivates); effect++; } @@ -4923,7 +5135,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattlescriptCurrInstr = BattleScript_DazzlingProtected; effect = 1; } - else if (BlocksPrankster(move, gBattlerAttacker, gBattlerTarget, TRUE) && !(IS_MOVE_STATUS(move) && targetAbility == ABILITY_MAGIC_BOUNCE)) + else if (GetChosenMovePriority(gBattlerAttacker) > 0 + && BlocksPrankster(move, gBattlerAttacker, gBattlerTarget, TRUE) + && !(IS_MOVE_STATUS(move) && (targetAbility == ABILITY_MAGIC_BOUNCE || gProtectStructs[gBattlerTarget].bounceMove))) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE) || !(moveTarget & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY))) CancelMultiTurnMoves(gBattlerAttacker); // Don't cancel moves that can hit two targets bc one target might not be protected @@ -4940,15 +5154,6 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattlescriptCurrInstr = BattleScript_GoodAsGoldActivates; effect = 1; } - else if (gLastUsedAbility == ABILITY_ICE_FACE && IS_MOVE_PHYSICAL(move) && gBattleMons[gBattlerTarget].species == SPECIES_EISCUE_ICE_FACE) - { - gBattleMons[gBattlerTarget].species = SPECIES_EISCUE_NOICE_FACE; - if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS) - gHitMarker |= HITMARKER_NO_PPDEDUCT; - gBattleScripting.battler = gBattlerTarget; // For STRINGID_PKMNTRANSFORMED - gBattlescriptCurrInstr = BattleScript_IceFaceNullsDamage; - effect = 1; - } break; } case ABILITYEFFECT_ABSORBING: // 3 @@ -4959,7 +5164,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 switch (gLastUsedAbility) { case ABILITY_VOLT_ABSORB: - if (moveType == TYPE_ELECTRIC) + if (moveType == TYPE_ELECTRIC && gBattleMoves[move].target != MOVE_TARGET_ALL_BATTLERS) effect = 1; break; case ABILITY_WATER_ABSORB: @@ -4968,11 +5173,11 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 effect = 1; break; case ABILITY_MOTOR_DRIVE: - if (moveType == TYPE_ELECTRIC) + if (moveType == TYPE_ELECTRIC && gBattleMoves[move].target != MOVE_TARGET_ALL_BATTLERS) effect = 2, statId = STAT_SPEED; break; case ABILITY_LIGHTNING_ROD: - if (moveType == TYPE_ELECTRIC) + if (moveType == TYPE_ELECTRIC && gBattleMoves[move].target != MOVE_TARGET_ALL_BATTLERS) effect = 2, statId = STAT_SPATK; break; case ABILITY_STORM_DRAIN: @@ -5119,6 +5324,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; case ABILITY_STAMINA: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && gBattlerAttacker != gBattlerTarget && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && CompareStat(battler, STAT_DEF, MAX_STAT_STAGE, CMP_LESS_THAN)) @@ -5258,6 +5464,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) @@ -5318,7 +5525,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_GooeyActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5368,7 +5575,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 && gBattleMons[gBattlerTarget].hp == 0 && IsBattlerAlive(gBattlerAttacker)) { - gBattleMoveDamage = gSpecialStatuses[gBattlerTarget].dmg; + gBattleMoveDamage = gSpecialStatuses[gBattlerTarget].shellBellDmg; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AftermathDmg; effect++; @@ -5397,7 +5604,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } } @@ -5416,7 +5623,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5433,7 +5640,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_PARALYSIS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5449,7 +5656,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5639,6 +5846,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 @@ -5668,7 +5876,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AbilityStatusEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } break; @@ -5856,7 +6064,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, ABILITY_SYNCHRONIZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } } @@ -5877,7 +6085,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_ABILITY_BUFFER(gBattleTextBuff1, ABILITY_SYNCHRONIZE); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + gHitMarker |= HITMARKER_STATUS_ABILITY_EFFECT; effect++; } } @@ -5897,7 +6105,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) @@ -5911,15 +6119,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 @@ -6007,10 +6207,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++; } @@ -6022,9 +6223,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); @@ -6032,11 +6233,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++; } @@ -6045,7 +6246,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; @@ -6074,28 +6275,33 @@ bool32 TryPrimalReversion(u32 battler) return FALSE; } -bool32 IsNeutralizingGasBannedAbility(u32 ability) +static const u16 sNeutralizingGasBannedAbilities[] = { - switch (ability) + ABILITY_AS_ONE_ICE_RIDER, + ABILITY_AS_ONE_SHADOW_RIDER, + ABILITY_COMATOSE, + ABILITY_DISGUISE, + ABILITY_GULP_MISSILE, + ABILITY_ICE_FACE, + ABILITY_MULTITYPE, + ABILITY_POWER_CONSTRUCT, + ABILITY_RKS_SYSTEM, + ABILITY_SCHOOLING, + ABILITY_SHIELDS_DOWN, + ABILITY_STANCE_CHANGE, + ABILITY_ZEN_MODE, + ABILITY_ZERO_TO_HERO, +}; + +bool32 IsNeutralizingGasBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sNeutralizingGasBannedAbilities); i++) { - case ABILITY_MULTITYPE: - case ABILITY_ZEN_MODE: - case ABILITY_STANCE_CHANGE: - case ABILITY_POWER_CONSTRUCT: - case ABILITY_SCHOOLING: - case ABILITY_RKS_SYSTEM: - case ABILITY_SHIELDS_DOWN: - case ABILITY_COMATOSE: - case ABILITY_DISGUISE: - case ABILITY_GULP_MISSILE: - 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; + if (ability == sNeutralizingGasBannedAbilities[i]) + return TRUE; } + return FALSE; } bool32 IsNeutralizingGasOnField(void) @@ -6551,13 +6757,13 @@ static u8 TrySetEnigmaBerry(u32 battler) return 0; } -static u8 DamagedStatBoostBerryEffect(u32 battler, u8 statId, u8 split) +static u8 DamagedStatBoostBerryEffect(u32 battler, u8 statId, u8 category) { if (IsBattlerAlive(battler) && CompareStat(battler, statId, MAX_STAT_STAGE, CMP_LESS_THAN) && (gBattleScripting.overrideBerryRequirements || (!DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) - && GetBattleMoveSplit(gCurrentMove) == split + && GetBattleMoveCategory(gCurrentMove) == category && TARGET_TURN_DAMAGED)) ) { @@ -6832,11 +7038,11 @@ static u8 ItemEffectMoveEnd(u32 battler, u16 holdEffect) break; case HOLD_EFFECT_KEE_BERRY: // consume and boost defense if used physical move if (B_BERRIES_INSTANT >= GEN_4) - effect = DamagedStatBoostBerryEffect(battler, STAT_DEF, SPLIT_PHYSICAL); + effect = DamagedStatBoostBerryEffect(battler, STAT_DEF, BATTLE_CATEGORY_PHYSICAL); break; case HOLD_EFFECT_MARANGA_BERRY: // consume and boost sp. defense if used special move if (B_BERRIES_INSTANT >= GEN_4) - effect = DamagedStatBoostBerryEffect(battler, STAT_SPDEF, SPLIT_SPECIAL); + effect = DamagedStatBoostBerryEffect(battler, STAT_SPDEF, BATTLE_CATEGORY_SPECIAL); break; case HOLD_EFFECT_RANDOM_STAT_UP: if (B_BERRIES_INSTANT >= GEN_4) @@ -7600,6 +7806,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 @@ -7644,10 +7852,10 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) gLastUsedItem = atkItem; gPotentialItemEffectBattler = gBattlerAttacker; gBattleScripting.battler = gBattlerAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].dmg / atkHoldEffectParam) * -1; + gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].shellBellDmg / atkHoldEffectParam) * -1; if (gBattleMoveDamage == 0) gBattleMoveDamage = -1; - gSpecialStatuses[gBattlerTarget].dmg = 0; + gSpecialStatuses[gBattlerTarget].shellBellDmg = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; effect = ITEM_HP_CHANGE; @@ -7657,6 +7865,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) if (IsBattlerAlive(gBattlerAttacker) && !(TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD + && !gSpecialStatuses[gBattlerAttacker].magicianStolen && gSpecialStatuses[gBattlerAttacker].damagedMons) { gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 10; @@ -7813,10 +8022,10 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) } break; case HOLD_EFFECT_KEE_BERRY: // consume and boost defense if used physical move - effect = DamagedStatBoostBerryEffect(battler, STAT_DEF, SPLIT_PHYSICAL); + effect = DamagedStatBoostBerryEffect(battler, STAT_DEF, BATTLE_CATEGORY_PHYSICAL); break; case HOLD_EFFECT_MARANGA_BERRY: // consume and boost sp. defense if used special move - effect = DamagedStatBoostBerryEffect(battler, STAT_SPDEF, SPLIT_SPECIAL); + effect = DamagedStatBoostBerryEffect(battler, STAT_SPDEF, BATTLE_CATEGORY_SPECIAL); break; case HOLD_EFFECT_STICKY_BARB: if (TARGET_TURN_DAMAGED @@ -8317,7 +8526,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); @@ -8515,7 +8724,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); @@ -8739,6 +8949,10 @@ static inline u32 CalcMoveBasePower(u32 move, u32 battlerAtk, u32 battlerDef, u3 case EFFECT_MAX_MOVE: basePower = GetMaxMovePower(gBattleMons[battlerAtk].moves[gBattleStruct->chosenMovePositions[battlerAtk]]); break; + case EFFECT_RAGE_FIST: + basePower += 50 * gBattleStruct->timesGotHit[GetBattlerSide(battlerAtk)][gBattlerPartyIndexes[battlerAtk]]; + basePower = (basePower > 350) ? 350 : basePower; + break; } // Move-specific base power changes @@ -9311,11 +9525,16 @@ 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; } @@ -9494,7 +9713,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); } @@ -9852,6 +10073,7 @@ s32 CalculateMoveDamageVars(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveTy static inline void MulByTypeEffectiveness(uq4_12_t *modifier, u32 move, u32 moveType, u32 battlerDef, u32 defType, u32 battlerAtk, bool32 recordAbilities) { uq4_12_t mod = GetTypeModifier(moveType, defType); + u32 abilityAtk = GetBattlerAbility(battlerAtk); if (mod == UQ_4_12(0.0) && GetBattlerHoldEffect(battlerDef, TRUE) == HOLD_EFFECT_RING_TARGET) { @@ -9863,11 +10085,13 @@ static inline void MulByTypeEffectiveness(uq4_12_t *modifier, u32 move, u32 move { mod = UQ_4_12(1.0); } - else if ((moveType == TYPE_FIGHTING || moveType == TYPE_NORMAL) && defType == TYPE_GHOST && GetBattlerAbility(battlerAtk) == ABILITY_SCRAPPY && mod == UQ_4_12(0.0)) + else if ((moveType == TYPE_FIGHTING || moveType == TYPE_NORMAL) && defType == TYPE_GHOST + && (abilityAtk == ABILITY_SCRAPPY || abilityAtk == ABILITY_MINDS_EYE) + && mod == UQ_4_12(0.0)) { mod = UQ_4_12(1.0); if (recordAbilities) - RecordAbilityBattle(battlerAtk, ABILITY_SCRAPPY); + RecordAbilityBattle(battlerAtk, abilityAtk); } if (moveType == TYPE_PSYCHIC && defType == TYPE_DARK && gStatuses3[battlerDef] & STATUS3_MIRACLE_EYED && mod == UQ_4_12(0.0)) @@ -9938,7 +10162,7 @@ static inline uq4_12_t CalcTypeEffectivenessMultiplierInternal(u32 move, u32 mov if (recordAbilities && (illusionSpecies = GetIllusionMonSpecies(battlerDef))) TryNoticeIllusionInTypeEffectiveness(move, moveType, battlerAtk, battlerDef, modifier, illusionSpecies); - if (gBattleMoves[move].split == SPLIT_STATUS && move != MOVE_THUNDER_WAVE) + if (gBattleMoves[move].category == BATTLE_CATEGORY_STATUS && move != MOVE_THUNDER_WAVE) { modifier = UQ_4_12(1.0); if (B_GLARE_GHOST < GEN_4 && move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) @@ -10117,7 +10341,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) { @@ -10260,7 +10484,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) @@ -10268,7 +10492,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].isPrimalReversion); } bool32 IsBattlerUltraBursted(u32 battler) @@ -10276,7 +10500,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 @@ -10285,7 +10509,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) @@ -10361,6 +10585,10 @@ u16 GetBattleFormChangeTargetSpecies(u32 battler, u16 method) if (formChanges[i].param1 == GetBattlerAbility(battler)) targetSpecies = formChanges[i].targetSpecies; break; + case FORM_CHANGE_STATUS: + if (gBattleMons[battler].status1 & formChanges[i].param1) + targetSpecies = formChanges[i].targetSpecies; + break; } } } @@ -10566,23 +10794,23 @@ bool32 ShouldGetStatBadgeBoost(u16 badgeFlag, u32 battler) return FALSE; } -u8 GetBattleMoveSplit(u32 moveId) +u8 GetBattleMoveCategory(u32 moveId) { if (gBattleStruct != NULL && gBattleStruct->zmove.active && !IS_MOVE_STATUS(moveId)) - return gBattleStruct->zmove.activeSplit; + return gBattleStruct->zmove.activeCategory; if (gBattleStruct != NULL && IsMaxMove(moveId)) // TODO: Might be buggy depending on when this is called. - return gBattleStruct->dynamax.activeSplit; + return gBattleStruct->dynamax.activeCategory; if (gBattleStruct != NULL && gBattleStruct->swapDamageCategory) // Photon Geyser, Shell Side Arm, Light That Burns the Sky - return SPLIT_PHYSICAL; + return BATTLE_CATEGORY_PHYSICAL; if (B_PHYSICAL_SPECIAL_SPLIT >= GEN_4) - return gBattleMoves[moveId].split; + return gBattleMoves[moveId].category; if (IS_MOVE_STATUS(moveId)) - return SPLIT_STATUS; + return BATTLE_CATEGORY_STATUS; else if (gBattleMoves[moveId].type < TYPE_MYSTERY) - return SPLIT_PHYSICAL; + return BATTLE_CATEGORY_PHYSICAL; else - return SPLIT_SPECIAL; + return BATTLE_CATEGORY_SPECIAL; } static bool32 TryRemoveScreens(u32 battler) @@ -10624,7 +10852,7 @@ static bool32 IsUnnerveAbilityOnOpposingSide(u32 battler) } // Photon geyser & light that burns the sky -u8 GetSplitBasedOnStats(u32 battler) +u8 GetCategoryBasedOnStats(u32 battler) { u32 attack = gBattleMons[battler].attack; u32 spAttack = gBattleMons[battler].spAttack; @@ -10636,9 +10864,9 @@ u8 GetSplitBasedOnStats(u32 battler) spAttack = spAttack / gStatStageRatios[gBattleMons[battler].statStages[STAT_SPATK]][1]; if (spAttack >= attack) - return SPLIT_SPECIAL; + return BATTLE_CATEGORY_SPECIAL; else - return SPLIT_PHYSICAL; + return BATTLE_CATEGORY_PHYSICAL; } static u32 GetFlingPowerFromItemId(u32 itemId) @@ -10670,28 +10898,6 @@ bool32 CanFling(u32 battler) } // Ability checks -bool32 IsRolePlayBannedAbilityAtk(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sRolePlayBannedAttackerAbilities); i++) - { - if (ability == sRolePlayBannedAttackerAbilities[i]) - return TRUE; - } - return FALSE; -} - -bool32 IsRolePlayBannedAbility(u16 ability) -{ - u32 i; - for (i = 0; i < ARRAY_COUNT(sRolePlayBannedAbilities); i++) - { - if (ability == sRolePlayBannedAbilities[i]) - return TRUE; - } - return FALSE; -} - bool32 IsSkillSwapBannedAbility(u16 ability) { u32 i; @@ -10703,6 +10909,28 @@ bool32 IsSkillSwapBannedAbility(u16 ability) return FALSE; } +bool32 IsRolePlayDoodleBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sRolePlayDoodleBannedAbilities); i++) + { + if (ability == sRolePlayDoodleBannedAbilities[i]) + return TRUE; + } + return FALSE; +} + +bool32 IsRolePlayDoodleBannedAbilityAttacker(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sRolePlayDoodleBannedAttackerAbilities); i++) + { + if (ability == sRolePlayDoodleBannedAttackerAbilities[i]) + return TRUE; + } + return FALSE; +} + bool32 IsWorrySeedBannedAbility(u16 ability) { u32 i; @@ -10725,6 +10953,17 @@ bool32 IsGastroAcidBannedAbility(u16 ability) return FALSE; } +bool32 IsEntrainmentBannedAbility(u16 ability) +{ + u32 i; + for (i = 0; i < ARRAY_COUNT(sEntrainmentBannedAbilities); i++) + { + if (ability == sEntrainmentBannedAbilities[i]) + return TRUE; + } + return FALSE; +} + bool32 IsEntrainmentBannedAbilityAttacker(u16 ability) { u32 i; @@ -10736,12 +10975,12 @@ bool32 IsEntrainmentBannedAbilityAttacker(u16 ability) return FALSE; } -bool32 IsEntrainmentTargetOrSimpleBeamBannedAbility(u16 ability) +bool32 IsSimpleBeamBannedAbility(u16 ability) { u32 i; - for (i = 0; i < ARRAY_COUNT(sEntrainmentTargetSimpleBeamBannedAbilities); i++) + for (i = 0; i < ARRAY_COUNT(sSimpleBeamBannedAbilities); i++) { - if (ability == sEntrainmentTargetSimpleBeamBannedAbilities[i]) + if (ability == sSimpleBeamBannedAbilities[i]) return TRUE; } return FALSE; @@ -11112,9 +11351,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 move) { - 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 && MoveHasMoveEffect(move, MOVE_EFFECT_FLINCH, FALSE)) + return secondaryEffectChance *= 2; + + if (hasSereneGrace) + secondaryEffectChance *= 2; + if (hasRainbow && gBattleMoves[move].effect != EFFECT_SECRET_POWER) secondaryEffectChance *= 2; return secondaryEffectChance; @@ -11134,6 +11381,11 @@ bool32 IsGen6ExpShareEnabled(void) #endif } +bool32 MoveEffectIsGuaranteed(u32 secondaryEffectChance) +{ + return secondaryEffectChance == 0 || secondaryEffectChance >= 100; +} + bool32 MoveHasMoveEffect(u32 move, u32 moveEffect, bool32 effectHitOnly) { u8 i; @@ -11146,6 +11398,56 @@ bool32 MoveHasMoveEffect(u32 move, u32 moveEffect, bool32 effectHitOnly) return FALSE; } +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) { @@ -11168,4 +11470,3 @@ u8 GetBattlerType(u32 battler, u8 typeIndex) return types[typeIndex]; } - diff --git a/src/battle_util2.c b/src/battle_util2.c index 8dda3004c0..2c333978d2 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/battle_z_move.c b/src/battle_z_move.c index 7069d17386..a7bdb7a481 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -149,9 +149,9 @@ void QueueZMove(u8 battler, u16 baseMove) gBattleStruct->zmove.toBeUsed[battler] = gBattleStruct->zmove.chosenZMove; gBattleStruct->zmove.baseMoves[battler] = baseMove; if (gBattleStruct->zmove.chosenZMove == MOVE_LIGHT_THAT_BURNS_THE_SKY) - gBattleStruct->zmove.splits[battler] = GetSplitBasedOnStats(battler); + gBattleStruct->zmove.categories[battler] = GetCategoryBasedOnStats(battler); else - gBattleStruct->zmove.splits[battler] = gBattleMoves[baseMove].split; + gBattleStruct->zmove.categories[battler] = gBattleMoves[baseMove].category; } bool32 IsViableZMove(u8 battler, u16 move) @@ -406,7 +406,7 @@ bool32 MoveSelectionDisplayZMove(u16 zmove, u32 battler) if (IS_MOVE_STATUS(move)) { - u8 zEffect = gBattleMoves[move].zMoveEffect; + u8 zEffect = gBattleMoves[move].zMove.effect; gDisplayedStringBattle[0] = EOS; @@ -518,7 +518,7 @@ static void ZMoveSelectionDisplayPower(u16 move, u16 zMove) if (zMove >= MOVE_CATASTROPIKA) power = gBattleMoves[zMove].power; - if (gBattleMoves[move].split != SPLIT_STATUS) + if (gBattleMoves[move].category != BATTLE_CATEGORY_STATUS) { txtPtr = StringCopy(gDisplayedStringBattle, sText_PowerColon); ConvertIntToDecimalStringN(txtPtr, power, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -687,43 +687,35 @@ static bool32 AreStatsMaxed(u8 battler, u8 n) u16 GetZMovePower(u16 move) { - if (gBattleMoves[move].split == SPLIT_STATUS) + if (gBattleMoves[move].category == BATTLE_CATEGORY_STATUS) return 0; if (gBattleMoves[move].effect == EFFECT_OHKO) return 180; - switch (move) + if (gBattleMoves[move].zMove.powerOverride > 0) + return gBattleMoves[move].zMove.powerOverride; + else { - case MOVE_MEGA_DRAIN: return 120; - case MOVE_CORE_ENFORCER: return 140; - case MOVE_WEATHER_BALL: return 160; - case MOVE_HEX: return 160; - case MOVE_FLYING_PRESS: return 170; - case MOVE_GEAR_GRIND: return 180; - case MOVE_V_CREATE: return 220; - default: - { - if (gBattleMoves[move].power >= 140) - return 200; - else if (gBattleMoves[move].power >= 130) - return 195; - else if (gBattleMoves[move].power >= 120) - return 190; - else if (gBattleMoves[move].power >= 110) - return 185; - else if (gBattleMoves[move].power >= 100) - return 180; - else if (gBattleMoves[move].power >= 90) - return 175; - else if (gBattleMoves[move].power >= 80) - return 160; - else if (gBattleMoves[move].power >= 70) - return 140; - else if (gBattleMoves[move].power >= 60) - return 120; - else - return 100; - } + if (gBattleMoves[move].power >= 140) + return 200; + else if (gBattleMoves[move].power >= 130) + return 195; + else if (gBattleMoves[move].power >= 120) + return 190; + else if (gBattleMoves[move].power >= 110) + return 185; + else if (gBattleMoves[move].power >= 100) + return 180; + else if (gBattleMoves[move].power >= 90) + return 175; + else if (gBattleMoves[move].power >= 80) + return 160; + else if (gBattleMoves[move].power >= 70) + return 140; + else if (gBattleMoves[move].power >= 60) + return 120; + else + return 100; } } diff --git a/src/contest.c b/src/contest.c index 8f452b0921..d4cc73677c 100644 --- a/src/contest.c +++ b/src/contest.c @@ -358,7 +358,7 @@ EWRAM_DATA bool8 gCurContestWinnerIsForArtist = 0; EWRAM_DATA u8 gCurContestWinnerSaveIdx = 0; // IWRAM common vars. -u32 gContestRngValue; +rng_value_t gContestRngValue; extern const u8 gText_LinkStandby4[]; extern const u8 gText_BDot[]; @@ -1709,7 +1709,7 @@ static void Task_AppealSetup(u8 taskId) if (++gTasks[taskId].data[0] > 19) { eContest.turnNumber = 0; - eContest.unusedRng = gRngValue; + eContest.unusedRng = 0; if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && IsPlayerLinkLeader()) { s32 i; @@ -6109,4 +6109,3 @@ void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 langua name[PLAYER_NAME_LENGTH] = EOS; } } - diff --git a/src/contest_util.c b/src/contest_util.c index 0786902b8c..32588a8c00 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); } } @@ -2554,7 +2552,6 @@ bool8 IsContestDebugActive(void) void ShowContestEntryMonPic(void) { - const struct CompressedSpritePalette *palette; u32 personality, otId; u16 species; u8 spriteId; @@ -2574,10 +2571,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) @@ -2659,8 +2655,7 @@ void GenerateContestRand(void) if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) { - gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); - random = gContestRngValue >> 16; + random = LocalRandom(&gContestRngValue); result = &gSpecialVar_Result; } else @@ -2673,8 +2668,7 @@ void GenerateContestRand(void) u16 GetContestRand(void) { - gContestRngValue = ISO_RANDOMIZE1(gContestRngValue); - return gContestRngValue >> 16; + return LocalRandom(&gContestRngValue); } bool8 LinkContestWaitForConnection(void) diff --git a/src/data.c b/src/data.c index 2d16d59d29..da6edde3f3 100644 --- a/src/data.c +++ b/src/data.c @@ -47,79 +47,13 @@ const struct SpriteFrameImage gBattlerPicTable_OpponentRight[] = {BATTLER_OFFSET(15), MON_PIC_SIZE}, }; -const struct SpriteFrameImage gTrainerBackPicTable_Brendan[] = -{ - {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_May[] = -{ - {gTrainerBackPic_May + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_May + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_May + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {gTrainerBackPic_May + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Red[] = -{ - {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 4, TRAINER_PIC_SIZE}, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] = -{ - {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 4, TRAINER_PIC_SIZE}, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[] = -{ - {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[] = -{ - {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Wally[] = -{ - {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, -}; - -const struct SpriteFrameImage gTrainerBackPicTable_Steven[] = -{ - {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, - {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, - {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, }; -static const union AnimCmd sAnim_GeneralFrame3[] = +const union AnimCmd sAnim_GeneralFrame3[] = { ANIMCMD_FRAME(3, 0), ANIMCMD_END, @@ -285,28 +219,7 @@ 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} - -#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" diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h index 880b98efce..239e655918 100644 --- a/src/data/battle_anim.h +++ b/src/data/battle_anim.h @@ -1996,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 index 6023571567..afaa49a172 100644 --- a/src/data/battle_frontier/battle_pyramid_wild_requirements.h +++ b/src/data/battle_frontier/battle_pyramid_wild_requirements.h @@ -110,7 +110,7 @@ static const u16 sWeatherChangingMoves[] = { MOVE_SUNNY_DAY, }; -// EFFECT_RECHARGE, EFFECT_RECOIL_33 +// EFFECT_RECHARGE, EFFECT_RECOIL static const u16 sPowerfulNormalMoves[] = { MOVE_HYPER_BEAM, MOVE_GIGA_IMPACT, diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 4b61f3c1b3..d90a0e4dab 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -10,7 +10,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, .mirrorMoveBanned = TRUE, }, @@ -25,8 +25,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS == GEN_4, }, @@ -37,14 +36,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 50, .type = TYPE_FIGHTING, .accuracy = 100, + .criticalHitStage = 1, .pp = 25, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, }, [MOVE_DOUBLE_SLAP] = @@ -57,8 +55,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -72,8 +69,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, }, @@ -88,8 +84,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, }, @@ -103,8 +98,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT(MOVE_EFFECT_PAYDAY) ), @@ -119,8 +113,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -138,8 +131,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -157,8 +149,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -177,8 +168,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -192,8 +182,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -207,8 +196,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -218,13 +206,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 80, .type = TYPE_NORMAL, .accuracy = 100, + .criticalHitStage = 1, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_SPECIAL, .twoTurnMove = TRUE, .sleepTalkBanned = TRUE, .instructBanned = TRUE, @@ -245,8 +232,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .danceMove = TRUE, .snatchAffected = TRUE, }, @@ -261,8 +248,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, }, @@ -277,8 +263,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_4) || (B_UPDATED_MOVE_FLAGS < GEN_3), .damagesAirborneDoubleDamage = TRUE, .windMove = TRUE, @@ -294,8 +279,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -313,8 +297,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .windMove = TRUE, .ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_6, .ignoresSubstitute = TRUE, @@ -337,8 +321,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .makesContact = TRUE, .gravityBanned = TRUE, @@ -361,8 +344,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, }, @@ -377,9 +359,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_VINE_WHIP] = @@ -400,8 +382,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -414,11 +395,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = TRUE, + .skyBattleBanned = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 30) ) @@ -434,8 +415,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 2, }, @@ -450,8 +430,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -473,8 +452,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .gravityBanned = TRUE, }, @@ -488,8 +466,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, .sheerForceBoost = TRUE, @@ -508,8 +485,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .magicCoatAffected = TRUE, }, @@ -522,8 +499,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -541,8 +517,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -556,8 +531,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -571,8 +545,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -594,8 +567,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -608,11 +580,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_6, + .skyBattleBanned = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_PARALYSIS, 30) ) @@ -632,23 +604,22 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, [MOVE_TAKE_DOWN] = { - .effect = EFFECT_RECOIL_25, + .effect = EFFECT_RECOIL, .power = 90, .type = TYPE_NORMAL, .accuracy = 85, + .recoil = 25, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -667,24 +638,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .instructBanned = TRUE, }, [MOVE_DOUBLE_EDGE] = { - .effect = EFFECT_RECOIL_33, + .effect = EFFECT_RECOIL, .power = 120, .type = TYPE_NORMAL, .accuracy = 100, + .recoil = 33, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -698,8 +668,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -712,8 +682,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 35, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_POISON, 30) @@ -729,8 +698,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 .strikeCount = 2, @@ -754,8 +722,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_LEER] = @@ -768,8 +735,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -782,8 +749,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 25, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, @@ -802,8 +768,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, .soundMove = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, @@ -823,8 +789,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_6, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, @@ -843,8 +809,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .magicCoatAffected = TRUE, .soundMove = TRUE, @@ -860,8 +826,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .magicCoatAffected = TRUE, .soundMove = TRUE, @@ -877,8 +843,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_DISABLE] = @@ -897,8 +862,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresSubstitute = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -912,8 +877,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 30, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, #if B_UPDATED_MOVE_DATA >= GEN_4 ADDITIONAL_EFFECTS( @@ -935,8 +899,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 25, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 10) @@ -956,8 +919,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 10) @@ -974,8 +936,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -991,8 +953,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_HYDRO_PUMP] = @@ -1009,8 +970,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SURF] = @@ -1031,9 +991,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .secondaryEffectChance = 0, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .damagesUnderwater = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ICE_BEAM] = @@ -1051,8 +1011,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FREEZE_OR_FROSTBITE, 10) @@ -1072,8 +1031,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, ADDITIONAL_EFFECTS( @@ -1090,8 +1048,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 10) @@ -1107,8 +1064,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SPD_MINUS_1, 10) @@ -1124,8 +1080,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_ATK_MINUS_1, 10) @@ -1141,8 +1096,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) @@ -1159,8 +1113,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -1174,8 +1127,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -1186,15 +1138,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #else .pp = 25, #endif - .effect = EFFECT_RECOIL_25, + .effect = EFFECT_RECOIL, .power = 80, .type = TYPE_FIGHTING, .accuracy = 80, + .recoil = 25, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -1208,8 +1160,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -1223,8 +1174,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = -5, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 .meFirstBanned = TRUE, @@ -1243,9 +1193,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STRENGTH] = @@ -1258,8 +1208,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -1277,8 +1226,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -1297,8 +1245,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -1313,8 +1260,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .magicCoatAffected = TRUE, }, @@ -1336,8 +1283,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -1349,13 +1296,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 55, .type = TYPE_GRASS, .accuracy = 95, + .criticalHitStage = 1, .pp = 25, .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_PHYSICAL, .slicingMove = TRUE, }, @@ -1369,8 +1315,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .twoTurnMove = TRUE, .sleepTalkBanned = TRUE, .instructBanned = TRUE, @@ -1386,8 +1331,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, .powderMove = TRUE, }, @@ -1402,8 +1347,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .magicCoatAffected = TRUE, .powderMove = TRUE, }, @@ -1418,8 +1363,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, .powderMove = TRUE, }, @@ -1442,8 +1387,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = TRUE, .danceMove = TRUE, .instructBanned = TRUE, @@ -1463,8 +1407,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -1478,8 +1422,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_4) || (B_UPDATED_MOVE_FLAGS < GEN_3), }, @@ -1498,8 +1441,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, }, @@ -1512,8 +1454,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_PARALYSIS, 10) @@ -1533,8 +1474,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_PARALYSIS, 10) @@ -1555,8 +1495,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -1573,8 +1513,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .damagesAirborne = TRUE, ADDITIONAL_EFFECTS( @@ -1592,8 +1531,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_EARTHQUAKE] = @@ -1606,10 +1544,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, .damagesUnderground = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_FISSURE] = @@ -1622,9 +1560,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .damagesUnderground = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DIG] = @@ -1641,13 +1579,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .makesContact = TRUE, .sleepTalkBanned = TRUE, .instructBanned = TRUE, .assistBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_TOXIC] = @@ -1664,8 +1602,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -1678,8 +1616,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 25, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 10) @@ -1695,8 +1632,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_DEF_MINUS_1, 10) @@ -1713,8 +1649,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -1728,8 +1664,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -1745,8 +1681,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -1762,8 +1698,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -1777,8 +1712,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -1792,8 +1726,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = -6, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -1808,8 +1742,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_MIMIC] = @@ -1822,8 +1755,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ACC_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ACC_UP_1 }, .ignoresSubstitute = TRUE, .mimicBanned = TRUE, .metronomeBanned = TRUE, // B_UPDATED_MOVE_FLAGS >= GEN_2 @@ -1844,8 +1777,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .magicCoatAffected = TRUE, .soundMove = TRUE, @@ -1861,8 +1794,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -1884,8 +1817,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .healBlockBanned = TRUE, @@ -1902,8 +1835,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -1923,8 +1856,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -1940,8 +1873,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .magicCoatAffected = TRUE, }, @@ -1955,8 +1888,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -1970,8 +1903,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -1987,8 +1920,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ACC_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ACC_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -2008,8 +1941,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -2025,8 +1958,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -2042,8 +1975,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -2059,8 +1992,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -2076,8 +2009,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ACC_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ACC_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -2098,8 +2031,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sleepTalkBanned = TRUE, .instructBanned = TRUE, @@ -2116,8 +2048,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .mimicBanned = TRUE, @@ -2139,8 +2070,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_2 }, .mimicBanned = TRUE, .metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_4, .copycatBanned = TRUE, @@ -2160,8 +2091,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .parentalBondBanned = TRUE, }, @@ -2175,8 +2105,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ballisticMove = TRUE, }, @@ -2193,8 +2122,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -2215,8 +2143,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_POISON, 40) @@ -2232,8 +2159,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_POISON, 30) @@ -2249,8 +2175,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 10) @@ -2270,8 +2195,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 10) @@ -2287,8 +2211,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, #if B_UPDATED_MOVE_DATA >= GEN_4 .sheerForceBoost = TRUE, @@ -2313,8 +2236,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, }, @@ -2329,8 +2251,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SKULL_BASH] = @@ -2348,8 +2269,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .makesContact = TRUE, .sleepTalkBanned = TRUE, @@ -2366,8 +2286,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_CONSTRICT] = @@ -2379,8 +2298,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 35, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -2398,8 +2316,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = TRUE, @@ -2415,8 +2333,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -2434,8 +2352,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -2460,8 +2378,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .gravityBanned = TRUE, }, @@ -2482,8 +2399,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -2497,8 +2414,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -2520,8 +2436,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 40, .secondaryEffectChance = 0, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -2535,8 +2451,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ballisticMove = TRUE, }, @@ -2555,8 +2470,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, @@ -2572,8 +2486,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -2586,8 +2500,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .sheerForceBoost = TRUE, .sleepTalkBanned = TRUE, @@ -2607,8 +2520,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .mimicBanned = TRUE, @@ -2632,8 +2545,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 30, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SPD_MINUS_1, 10) @@ -2649,8 +2561,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -2669,8 +2580,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .magicCoatAffected = TRUE, .powderMove = TRUE, }, @@ -2689,8 +2600,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .magicCoatAffected = TRUE, }, @@ -2708,8 +2619,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SPLASH] = @@ -2722,8 +2632,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_3, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_3 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .gravityBanned = TRUE, @@ -2743,8 +2653,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -2764,14 +2674,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #endif .effect = EFFECT_HIT, .type = TYPE_WATER, + .criticalHitStage = 1, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, }, [MOVE_EXPLOSION] = @@ -2784,8 +2693,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .parentalBondBanned = TRUE, }, @@ -2799,8 +2707,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -2814,8 +2721,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .strikeCount = 2, }, @@ -2833,8 +2739,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -2850,8 +2756,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 30) @@ -2867,8 +2772,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, @@ -2887,8 +2791,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -2904,8 +2808,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -2920,8 +2824,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_TRI_ATTACK, 20) @@ -2938,8 +2841,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 }, @@ -2950,14 +2852,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 70, .type = TYPE_NORMAL, .accuracy = 100, + .criticalHitStage = 1, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, .slicingMove = TRUE, }, @@ -2971,11 +2872,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STRUGGLE] = @@ -2985,16 +2887,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .effect = EFFECT_RECOIL_HP_25, #else .accuracy = 100, - .effect = EFFECT_RECOIL_25, + .effect = EFFECT_RECOIL, #endif .power = 50, .type = TYPE_NORMAL, + .recoil = 25, .pp = 1, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS >= GEN_4, .meFirstBanned = TRUE, @@ -3017,8 +2919,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -3041,8 +2943,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 3, }, @@ -3061,8 +2962,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 .meFirstBanned = TRUE, @@ -3084,8 +2984,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = (B_UPDATED_MOVE_FLAGS >= GEN_6) || (B_UPDATED_MOVE_FLAGS <= GEN_3), .magicCoatAffected = TRUE, }, @@ -3104,8 +3004,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, }, [MOVE_NIGHTMARE] = @@ -3122,8 +3022,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresProtect = B_UPDATED_MOVE_FLAGS <= GEN_3, }, @@ -3136,8 +3036,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 25, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .thawsUser = TRUE, @@ -3159,8 +3058,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .sheerForceBoost = TRUE, .soundMove = TRUE, @@ -3184,8 +3082,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_CURSE, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_CURSE }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -3201,8 +3099,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -3216,8 +3113,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -3229,13 +3126,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 100, .type = TYPE_FLYING, .accuracy = 95, + .criticalHitStage = 1, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_COTTON_SPORE] = @@ -3256,8 +3152,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 40, .secondaryEffectChance = 0, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .magicCoatAffected = TRUE, .powderMove = TRUE, }, @@ -3272,8 +3168,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -3287,8 +3182,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresSubstitute = TRUE, }, @@ -3302,8 +3197,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 25, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FREEZE_OR_FROSTBITE, 10) @@ -3324,8 +3218,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .protectionMove = TRUE, .metronomeBanned = TRUE, .copycatBanned = TRUE, @@ -3342,8 +3236,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, }, @@ -3362,8 +3255,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -3380,8 +3273,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SWEET_KISS] = @@ -3398,8 +3290,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -3413,8 +3305,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -3429,8 +3321,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -3447,8 +3338,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_ACC_MINUS_1, 100) @@ -3464,8 +3354,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -3483,12 +3372,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .forcePressure = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ZAP_CANNON] = @@ -3504,8 +3394,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -3527,8 +3416,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_BOOST_CRITS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_BOOST_CRITS }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresSubstitute = TRUE, }, @@ -3543,8 +3432,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_FOLLOW_ME, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_FOLLOW_ME }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -3563,8 +3452,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .mirrorMoveBanned = TRUE, @@ -3580,8 +3469,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, ADDITIONAL_EFFECTS( @@ -3603,8 +3491,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .protectionMove = TRUE, @@ -3627,8 +3515,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_LOCK_ON] = @@ -3645,8 +3532,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, }, [MOVE_OUTRAGE] = @@ -3667,8 +3554,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .instructBanned = TRUE, }, @@ -3683,8 +3569,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .windMove = TRUE, @@ -3708,8 +3594,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -3728,8 +3613,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .protectionMove = TRUE, @@ -3752,8 +3637,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -3767,8 +3652,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .instructBanned = TRUE, .parentalBondBanned = TRUE, @@ -3784,8 +3668,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -3803,8 +3686,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .magicCoatAffected = TRUE, }, @@ -3822,8 +3705,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -3839,8 +3722,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -3864,8 +3746,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, }, @@ -3879,8 +3760,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 25, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -3898,8 +3778,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = (B_UPDATED_MOVE_FLAGS >= GEN_6) || (B_UPDATED_MOVE_FLAGS <= GEN_3), .magicCoatAffected = TRUE, }, @@ -3914,8 +3794,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .magicCoatAffected = TRUE, .ignoresSubstitute = TRUE, }, @@ -3930,8 +3810,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_BOOST_CRITS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_BOOST_CRITS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -3953,8 +3833,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER | MOVE_TARGET_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, @@ -3972,8 +3852,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -3987,8 +3866,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 }, @@ -4002,8 +3880,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -4017,8 +3894,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -4034,8 +3911,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, }, [MOVE_SACRED_FIRE] = @@ -4047,8 +3924,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .thawsUser = TRUE, ADDITIONAL_EFFECTS( @@ -4066,9 +3942,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .damagesUnderground = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DYNAMIC_PUNCH] = @@ -4080,8 +3956,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -4100,8 +3975,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -4114,8 +3988,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, ADDITIONAL_EFFECTS( @@ -4133,8 +4006,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -4149,8 +4022,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .encoreBanned = TRUE, .ignoresSubstitute = TRUE, @@ -4166,8 +4039,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_5, // && B_UPDATED_MOVE_FLAGS > GEN_2 }, @@ -4186,8 +4058,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -4205,8 +4076,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ACC_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ACC_UP_1 }, .magicCoatAffected = TRUE, }, @@ -4219,8 +4090,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -4237,8 +4107,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 35, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -4256,8 +4125,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -4271,8 +4139,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -4289,8 +4157,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -4311,8 +4179,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -4329,8 +4197,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_CROSS_CHOP] = @@ -4339,14 +4206,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 100, .type = TYPE_FIGHTING, .accuracy = 80, + .criticalHitStage = 1, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, }, [MOVE_TWISTER] = @@ -4358,8 +4224,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .damagesAirborneDoubleDamage = TRUE, .windMove = TRUE, @@ -4378,8 +4243,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -4394,8 +4259,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -4409,8 +4274,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, @@ -4435,8 +4299,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = -5, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS >= GEN_4, .meFirstBanned = TRUE, .metronomeBanned = TRUE, @@ -4453,8 +4316,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -4475,8 +4338,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -4489,8 +4351,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = B_UPDATED_MOVE_DATA < GEN_4, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -4507,8 +4368,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -4536,8 +4396,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -4555,8 +4414,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -4579,8 +4437,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .damagesUnderwater = TRUE, }, @@ -4598,8 +4455,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_FAKE_OUT] = @@ -4619,8 +4475,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 100, .pp = 10, .target = MOVE_TARGET_SELECTED, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 100) @@ -4641,8 +4496,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, .sleepTalkBanned = TRUE, @@ -4663,8 +4517,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -4684,8 +4538,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = TRUE, }, @@ -4699,8 +4552,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -4720,8 +4573,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, ADDITIONAL_EFFECTS( @@ -4739,8 +4591,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -4755,8 +4607,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -4770,8 +4622,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -4789,8 +4641,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -4804,8 +4656,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESTORE_REPLACEMENT_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESTORE_REPLACEMENT_HP }, }, [MOVE_FACADE] = @@ -4818,8 +4670,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -4833,8 +4684,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -3, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .mirrorMoveBanned = TRUE, .punchingMove = TRUE, @@ -4860,9 +4710,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = STATUS1_PARALYSIS, - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, }, @@ -4880,8 +4729,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -4899,8 +4748,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_4, .copycatBanned = TRUE, .sleepTalkBanned = TRUE, @@ -4920,8 +4768,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -4937,8 +4785,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .ignoresSubstitute = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -4957,8 +4805,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .secondaryEffectChance = 0, .priority = 5, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -4977,8 +4825,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_2 }, .metronomeBanned = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, @@ -4994,8 +4842,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -5011,8 +4859,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .healBlockBanned = TRUE, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, @@ -5029,8 +4877,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_4, @@ -5052,11 +4899,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_SUPERPOWER] = @@ -5068,8 +4916,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_ATK_DEF_DOWN) @@ -5086,8 +4933,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 4, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_2 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -5102,8 +4949,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_2 }, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -5119,8 +4966,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -4, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -5134,8 +4980,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -5149,8 +4994,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -5167,8 +5012,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT(MOVE_EFFECT_KNOCK_OFF) @@ -5185,8 +5029,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .parentalBondBanned = TRUE, }, @@ -5201,8 +5044,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SKILL_SWAP] = @@ -5215,8 +5057,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresSubstitute = TRUE, }, @@ -5230,8 +5072,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_2 }, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, @@ -5249,8 +5091,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -5266,8 +5108,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_FOLLOW_ME, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_FOLLOW_ME }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -5283,8 +5125,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 4, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_2 }, .ignoresSubstitute = TRUE, .forcePressure = TRUE, .metronomeBanned = TRUE, @@ -5302,8 +5144,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, }, @@ -5321,13 +5162,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .makesContact = TRUE, .sleepTalkBanned = TRUE, .instructBanned = TRUE, .assistBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ARM_THRUST] = @@ -5340,8 +5181,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -5355,8 +5195,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -5376,8 +5216,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -5392,8 +5232,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_DEF_MINUS_1, 50) @@ -5409,8 +5248,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -5428,8 +5266,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, .danceMove = TRUE, }, @@ -5444,8 +5282,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .danceMove = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_4, }, @@ -5456,13 +5294,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 85, .type = TYPE_FIRE, .accuracy = 90, + .criticalHitStage = 1, .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 10) @@ -5479,10 +5316,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ICE_BALL] = @@ -5495,8 +5333,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ballisticMove = TRUE, .instructBanned = TRUE, @@ -5512,8 +5349,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS < GEN_4, @@ -5536,8 +5372,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -5554,8 +5390,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .soundMove = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, }, @@ -5569,8 +5404,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, @@ -5588,8 +5422,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -5606,8 +5439,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), @@ -5622,8 +5454,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), @@ -5643,8 +5474,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -5662,8 +5492,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS < GEN_4, @@ -5682,8 +5511,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ballisticMove = TRUE, }, @@ -5697,8 +5525,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER | MOVE_TARGET_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -5714,8 +5542,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -5729,13 +5557,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .effect = EFFECT_HIT, .type = TYPE_FLYING, .accuracy = 95, + .criticalHitStage = 1, .pp = 25, .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_SPECIAL, .windMove = TRUE, .slicingMove = TRUE, }, @@ -5749,8 +5576,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = B_UPDATED_MOVE_DATA < GEN_4, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) @@ -5771,8 +5597,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .ignoresSubstitute = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -5792,8 +5618,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_ROCK, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SPD_MINUS_1, 100) @@ -5809,8 +5634,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = B_EXTRAPOLATED_MOVE_FLAGS, ADDITIONAL_EFFECTS( @@ -5828,8 +5652,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .magicCoatAffected = TRUE, .soundMove = TRUE, @@ -5845,8 +5669,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .magicCoatAffected = TRUE, .soundMove = TRUE, @@ -5862,8 +5686,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -5877,8 +5701,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -5894,8 +5718,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SIGNAL_BEAM] = @@ -5907,8 +5730,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_CONFUSION, 10) @@ -5925,8 +5747,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, }, @@ -5944,8 +5765,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS < GEN_4, ADDITIONAL_EFFECTS( @@ -5963,8 +5783,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .damagesAirborne = TRUE, @@ -5985,8 +5804,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SHEER_COLD] = @@ -5999,8 +5817,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_MUDDY_WATER] = @@ -6016,9 +5833,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, + .skyBattleBanned = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_ACC_MINUS_1, 30) ), @@ -6038,8 +5855,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ballisticMove = TRUE, }, @@ -6053,8 +5869,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, }, @@ -6073,8 +5888,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_IRON_DEFENSE] = @@ -6087,8 +5901,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -6104,8 +5918,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = (B_UPDATED_MOVE_FLAGS >= GEN_6) || (B_UPDATED_MOVE_FLAGS <= GEN_3), .magicCoatAffected = TRUE, }, @@ -6124,8 +5938,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -6142,8 +5956,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -6156,8 +5969,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, + .skyBattleBanned = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), @@ -6173,8 +5986,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -6189,8 +6002,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .makesContact = TRUE, .sheerForceBoost = TRUE, @@ -6212,8 +6024,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SPD_MINUS_1, 100) @@ -6226,13 +6037,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 50, .type = TYPE_POISON, .accuracy = 100, + .criticalHitStage = 1, .pp = 25, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_POISON, 10) @@ -6262,8 +6072,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .meFirstBanned = TRUE, .metronomeBanned = TRUE, .copycatBanned = TRUE, @@ -6276,20 +6085,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_VOLT_TACKLE] = { #if B_UPDATED_MOVE_DATA >= GEN_4 - .effect = EFFECT_RECOIL_33_STATUS, .argument = STATUS1_PARALYSIS, - #else - .effect = EFFECT_RECOIL_33, #endif + .effect = EFFECT_RECOIL, .power = 120, .type = TYPE_ELECTRIC, .accuracy = 100, + .recoil = 33, .pp = 15, .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, }, @@ -6304,8 +6111,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_WATER_SPORT] = @@ -6318,10 +6124,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_CALM_MIND] = @@ -6334,8 +6141,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -6351,14 +6158,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .effect = EFFECT_HIT, .type = TYPE_GRASS, .accuracy = 100, + .criticalHitStage = 1, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, .slicingMove = TRUE, }, @@ -6372,8 +6178,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .danceMove = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -6394,8 +6200,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ballisticMove = B_UPDATED_MOVE_FLAGS >= GEN_6, }, @@ -6409,8 +6214,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_WATER_PULSE] = @@ -6422,8 +6226,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .pulseMove = TRUE, ADDITIONAL_EFFECTS( @@ -6446,8 +6249,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -6461,8 +6263,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) ), @@ -6482,8 +6283,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -6500,10 +6301,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MIRACLE_EYE] = @@ -6516,8 +6318,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresSubstitute = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -6536,9 +6338,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = STATUS1_SLEEP, - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, }, @@ -6551,8 +6352,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, ADDITIONAL_EFFECTS( @@ -6570,8 +6370,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ballisticMove = TRUE, }, @@ -6586,8 +6385,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .healBlockBanned = TRUE, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, @@ -6604,8 +6402,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_NATURAL_GIFT] = @@ -6618,8 +6415,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_FEINT] = @@ -6636,8 +6432,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 2, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ignoresProtect = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_6, .metronomeBanned = TRUE, @@ -6655,8 +6450,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -6674,8 +6468,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_BOOST_CRITS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_BOOST_CRITS }, .snatchAffected = TRUE, .windMove = TRUE, .ignoresProtect = TRUE, @@ -6692,8 +6486,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER | MOVE_TARGET_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_BOOST_CRITS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_BOOST_CRITS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .snatchAffected = B_UPDATED_MOVE_FLAGS < GEN_5, @@ -6702,15 +6496,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_METAL_BURST] = { .effect = EFFECT_METAL_BURST, - .power = 0, + .power = 1, .type = TYPE_STEEL, .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .meFirstBanned = TRUE, }, @@ -6724,8 +6517,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -6738,8 +6530,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_DEF_SPDEF_DOWN) @@ -6756,8 +6547,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -6775,8 +6565,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -6790,8 +6579,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -6805,8 +6594,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .parentalBondBanned = TRUE, }, @@ -6824,22 +6612,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_2 }, }, [MOVE_TRUMP_CARD] = { .effect = EFFECT_TRUMP_CARD, - .power = 0, + .power = 1, .type = TYPE_NORMAL, .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = TRUE, }, @@ -6853,8 +6640,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_2 }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -6868,7 +6655,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = TRUE, }, @@ -6882,8 +6669,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -6899,8 +6686,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -6914,8 +6701,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -6931,8 +6718,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_2 }, .ignoresSubstitute = TRUE, .metronomeBanned = TRUE, .mirrorMoveBanned = TRUE, @@ -6955,8 +6742,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ACC_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ACC_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -6978,8 +6765,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresSubstitute = TRUE, }, @@ -6993,8 +6780,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresSubstitute = TRUE, }, @@ -7008,8 +6795,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7027,8 +6813,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7042,8 +6827,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -7061,8 +6846,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7076,12 +6860,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .forcePressure = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_HEART_SWAP] = @@ -7094,8 +6879,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_BOOST_CRITS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_BOOST_CRITS }, .ignoresSubstitute = TRUE, }, @@ -7109,8 +6894,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -7126,8 +6911,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_EVSN_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_EVSN_UP_1 }, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -7136,17 +6921,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_FLARE_BLITZ] = { - .effect = EFFECT_RECOIL_33_STATUS, + .effect = EFFECT_RECOIL, .power = 120, .type = TYPE_FIRE, .accuracy = 100, + .recoil = 33, .pp = 15, .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = STATUS1_BURN, - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .sheerForceBoost = TRUE, .thawsUser = TRUE, @@ -7161,8 +6946,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -7184,8 +6968,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .pulseMove = TRUE, .ballisticMove = TRUE, }, @@ -7200,8 +6983,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -7216,8 +6999,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -7234,8 +7016,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .pulseMove = TRUE, ADDITIONAL_EFFECTS( @@ -7249,14 +7030,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 70, .type = TYPE_DARK, .accuracy = 100, + .criticalHitStage = 1, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, .slicingMove = TRUE, }, @@ -7270,8 +7050,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7285,8 +7064,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ballisticMove = TRUE, }, @@ -7303,8 +7081,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 95, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .slicingMove = TRUE, ADDITIONAL_EFFECTS( @@ -7322,8 +7099,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, }, @@ -7337,8 +7113,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .soundMove = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, @@ -7361,8 +7136,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .pulseMove = TRUE, }, @@ -7375,8 +7149,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_6, @@ -7399,8 +7172,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_DRAIN_PUNCH] = @@ -7418,8 +7190,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, @@ -7435,8 +7206,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_FOCUS_BLAST] = @@ -7448,8 +7218,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -7470,8 +7239,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -7481,16 +7249,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_BRAVE_BIRD] = { - .effect = EFFECT_RECOIL_33, + .effect = EFFECT_RECOIL, .power = 120, .type = TYPE_FLYING, .accuracy = 100, + .recoil = 33, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7503,9 +7271,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, + .skyBattleBanned = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_DEF_MINUS_1, 10) ), @@ -7521,8 +7289,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_2 }, .metronomeBanned = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, @@ -7537,8 +7305,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) @@ -7555,8 +7322,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -7572,8 +7339,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, }, @@ -7588,8 +7354,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = -4, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7603,8 +7368,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SHADOW_CLAW] = @@ -7613,14 +7377,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 70, .type = TYPE_GHOST, .accuracy = 100, + .criticalHitStage = 1, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, }, [MOVE_THUNDER_FANG] = @@ -7632,9 +7395,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = STATUS1_PARALYSIS, - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, @@ -7653,8 +7415,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, @@ -7673,9 +7434,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = STATUS1_BURN, - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .sheerForceBoost = TRUE, .bitingMove = TRUE, @@ -7695,8 +7455,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7709,8 +7468,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -7724,13 +7482,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 70, .type = TYPE_PSYCHIC, .accuracy = 100, + .criticalHitStage = 1, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_PHYSICAL, .slicingMove = TRUE, }, @@ -7743,8 +7500,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -7761,8 +7517,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_ACC_MINUS_1, 30) @@ -7778,8 +7533,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_DEF_MINUS_1, 10) @@ -7795,8 +7549,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -7814,8 +7567,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ACC_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ACC_UP_1 }, //.ignoresSubstitute = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, }, @@ -7830,8 +7583,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = -7, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ACC_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ACC_UP_1 }, .ignoresProtect = TRUE, }, @@ -7844,8 +7597,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) ), @@ -7860,8 +7612,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_PARALYSIS, 30) @@ -7877,8 +7628,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 30) @@ -7894,8 +7644,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) ), @@ -7911,8 +7660,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -7925,8 +7673,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) @@ -7939,13 +7686,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 70, .type = TYPE_POISON, .accuracy = 100, + .criticalHitStage = 1, .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, .sheerForceBoost = TRUE, .slicingMove = TRUE, ADDITIONAL_EFFECTS( @@ -7966,8 +7712,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_POISON, 30) @@ -7983,8 +7728,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -8002,8 +7746,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ballisticMove = TRUE, }, @@ -8013,13 +7756,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 100, .type = TYPE_ROCK, .accuracy = 80, + .criticalHitStage = 1, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_CAPTIVATE] = @@ -8032,8 +7774,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_2 }, .magicCoatAffected = TRUE, }, @@ -8047,8 +7789,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8065,9 +7807,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, #if B_UPDATED_MOVE_DATA == GEN_5 @@ -8087,8 +7829,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, @@ -8114,9 +7855,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, .argument = HOLD_EFFECT_PLATE, - .zMoveEffect = Z_EFFECT_NONE, }, [MOVE_BUG_BITE] = @@ -8129,8 +7869,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -8143,8 +7882,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_PLUS_1, 70) @@ -8153,16 +7891,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_WOOD_HAMMER] = { - .effect = EFFECT_RECOIL_33, + .effect = EFFECT_RECOIL, .power = 120, .type = TYPE_GRASS, .accuracy = 100, + .recoil = 33, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -8176,8 +7914,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -8187,13 +7924,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 90, .type = TYPE_BUG, .accuracy = 100, + .criticalHitStage = 1, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_DEFEND_ORDER] = @@ -8206,8 +7942,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8223,8 +7959,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -8233,16 +7969,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_HEAD_SMASH] = { - .effect = EFFECT_RECOIL_50, + .effect = EFFECT_RECOIL, .power = 150, .type = TYPE_ROCK, .accuracy = 80, + .recoil = 50, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -8256,8 +7992,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 2, }, @@ -8271,8 +8006,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), @@ -8284,13 +8018,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 100, .type = TYPE_DRAGON, .accuracy = 95, + .criticalHitStage = 1, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_LUNAR_DANCE] = @@ -8303,8 +8036,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8322,8 +8054,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -8345,8 +8076,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_DARK_VOID] = @@ -8363,8 +8093,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .magicCoatAffected = TRUE, }, @@ -8377,8 +8107,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_DEF_MINUS_2, 40) @@ -8394,8 +8123,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = B_EXTRAPOLATED_MOVE_FLAGS, ADDITIONAL_EFFECTS( @@ -8412,8 +8140,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .twoTurnMove = TRUE, .ignoresProtect = TRUE, @@ -8436,8 +8163,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8453,9 +8180,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 3, - .split = SPLIT_STATUS, + .category = BATTLE_CATEGORY_STATUS, .argument = TRUE, // Protects the whole side. - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8473,8 +8200,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .mirrorMoveBanned = TRUE, }, @@ -8488,8 +8215,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .mirrorMoveBanned = TRUE, }, @@ -8507,8 +8234,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, }, @@ -8522,8 +8249,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_VENOSHOCK] = @@ -8536,8 +8262,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_AUTOTOMIZE] = @@ -8550,8 +8275,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8571,8 +8296,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .powderMove = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8591,8 +8316,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .magicCoatAffected = TRUE, .gravityBanned = TRUE, }, @@ -8611,8 +8336,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, }, @@ -8626,9 +8351,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .damagesAirborne = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STORM_THROW] = @@ -8638,16 +8363,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #else .power = 40, #endif - .effect = EFFECT_ALWAYS_CRIT, + .effect = EFFECT_HIT, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .alwaysCriticalHit = TRUE, }, [MOVE_FLAME_BURST] = @@ -8660,8 +8385,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SLUDGE_WAVE] = @@ -8673,8 +8397,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_POISON, 10) @@ -8691,8 +8414,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .danceMove = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -8709,10 +8432,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_7, + .skyBattleBanned = TRUE, }, [MOVE_SYNCHRONOISE] = @@ -8730,8 +8453,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_ELECTRO_BALL] = @@ -8744,8 +8466,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ballisticMove = TRUE, }, @@ -8759,8 +8480,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -8773,8 +8494,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -8792,8 +8512,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -8812,8 +8532,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -8830,8 +8549,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -8849,8 +8567,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -8864,8 +8581,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -8879,8 +8596,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -8894,8 +8611,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -8911,8 +8628,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, ADDITIONAL_EFFECTS( @@ -8930,8 +8646,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, }, @@ -8946,8 +8661,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresTargetDefenseEvasionStages = TRUE, }, @@ -8961,8 +8675,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT(MOVE_EFFECT_CLEAR_SMOG) ), @@ -8978,8 +8691,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_QUICK_GUARD] = @@ -8992,9 +8704,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 3, - .split = SPLIT_STATUS, + .category = BATTLE_CATEGORY_STATUS, .argument = TRUE, // Protects the whole side. - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -9016,8 +8728,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_2 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -9031,8 +8743,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .thawsUser = TRUE, ADDITIONAL_EFFECTS( @@ -9050,8 +8761,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -9067,8 +8778,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .magicCoatAffected = TRUE, .mirrorMoveBanned = TRUE, .healBlockBanned = TRUE, @@ -9089,8 +8800,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SKY_DROP] = @@ -9103,8 +8813,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .makesContact = TRUE, .gravityBanned = TRUE, @@ -9123,8 +8832,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -9140,8 +8849,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, @@ -9161,8 +8869,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_QUASH] = @@ -9175,8 +8882,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .metronomeBanned = TRUE, }, @@ -9190,8 +8897,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -9205,8 +8911,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, }, @@ -9221,8 +8927,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -9236,8 +8941,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = TRUE, .parentalBondBanned = TRUE, }, @@ -9252,8 +8956,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_2 }, .ignoresProtect = B_UPDATED_MOVE_FLAGS >= GEN_6, .ignoresSubstitute = TRUE, .metronomeBanned = TRUE, @@ -9270,8 +8974,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 100) @@ -9292,8 +8995,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, + .skyBattleBanned = TRUE, }, [MOVE_FIRE_PLEDGE] = @@ -9310,8 +9013,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, + .skyBattleBanned = TRUE, }, [MOVE_GRASS_PLEDGE] = @@ -9328,8 +9031,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, + .skyBattleBanned = TRUE, }, [MOVE_VOLT_SWITCH] = @@ -9342,8 +9045,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_STRUGGLE_BUG] = @@ -9359,8 +9061,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_ATK_MINUS_1, 100) @@ -9377,9 +9078,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_FROST_BREATH] = @@ -9389,15 +9090,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #else .power = 40, #endif - .effect = EFFECT_ALWAYS_CRIT, + .effect = EFFECT_HIT, .type = TYPE_ICE, .accuracy = 90, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, + .alwaysCriticalHit = TRUE, }, [MOVE_DRAGON_TAIL] = @@ -9410,8 +9111,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, @@ -9427,8 +9127,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE @@ -9443,8 +9143,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SPD_MINUS_1, 100) @@ -9453,16 +9152,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_WILD_CHARGE] = { - .effect = EFFECT_RECOIL_25, + .effect = EFFECT_RECOIL, .power = 90, .type = TYPE_ELECTRIC, .accuracy = 100, + .recoil = 25, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -9472,14 +9171,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 80, .type = TYPE_GROUND, .accuracy = 95, + .criticalHitStage = 1, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, - .highCritRatio = TRUE, }, [MOVE_DUAL_CHOP] = @@ -9492,8 +9190,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 2, }, @@ -9507,8 +9204,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 25, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -9526,8 +9222,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -9546,8 +9241,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresTargetDefenseEvasionStages = TRUE, .slicingMove = TRUE, @@ -9562,8 +9256,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .slicingMove = TRUE, @@ -9582,8 +9275,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_6, }, @@ -9597,8 +9289,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, //.windMove = TRUE, ADDITIONAL_EFFECTS( @@ -9615,8 +9306,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = TRUE, @@ -9635,8 +9325,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -9651,8 +9341,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_ACC_MINUS_1, 40) @@ -9669,8 +9358,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_TAIL_SLAP] = @@ -9683,8 +9371,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -9701,8 +9388,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, .damagesAirborne = TRUE, @@ -9713,16 +9399,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_HEAD_CHARGE] = { - .effect = EFFECT_RECOIL_25, + .effect = EFFECT_RECOIL, .power = 120, .type = TYPE_NORMAL, .accuracy = 100, + .recoil = 25, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -9736,8 +9422,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 2, }, @@ -9751,8 +9436,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ballisticMove = TRUE, ADDITIONAL_EFFECTS( @@ -9774,9 +9458,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, .argument = HOLD_EFFECT_DRIVE, - .zMoveEffect = Z_EFFECT_NONE, .metronomeBanned = TRUE, }, @@ -9789,8 +9472,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, + .argument = STATUS1_SLEEP, .sheerForceBoost = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, @@ -9810,8 +9493,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .slicingMove = TRUE, .metronomeBanned = TRUE, }, @@ -9825,8 +9507,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SPD_MINUS_1, 100) @@ -9842,8 +9523,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -9860,8 +9540,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 20) @@ -9877,8 +9556,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .danceMove = TRUE, ADDITIONAL_EFFECTS( @@ -9895,8 +9573,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, @@ -9916,8 +9593,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .twoTurnMove = TRUE, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, @@ -9937,8 +9613,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, @@ -9957,8 +9632,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 30) @@ -9974,8 +9648,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -9993,8 +9666,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .thawsUser = TRUE, }, @@ -10008,8 +9680,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_FLYING_PRESS] = @@ -10026,12 +9697,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = TYPE_FLYING, - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .minimizeDoubleDamage = TRUE, .gravityBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MAT_BLOCK] = @@ -10044,15 +9715,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, + .category = BATTLE_CATEGORY_STATUS, .argument = TRUE, // Protects the whole side. - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_BELCH] = @@ -10065,8 +9737,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = TRUE, .meFirstBanned = TRUE, .metronomeBanned = TRUE, @@ -10087,10 +9758,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STICKY_WEB] = @@ -10103,11 +9775,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .magicCoatAffected = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_FELL_STINGER] = @@ -10124,8 +9797,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -10138,8 +9810,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .ignoresProtect = TRUE, .makesContact = TRUE, @@ -10162,9 +9833,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, + .category = BATTLE_CATEGORY_STATUS, .argument = TYPE_GHOST, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .magicCoatAffected = TRUE, }, @@ -10178,8 +9849,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .magicCoatAffected = TRUE, .soundMove = TRUE, @@ -10195,8 +9866,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 1, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -10215,8 +9886,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -10230,9 +9900,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, + .category = BATTLE_CATEGORY_STATUS, .argument = TYPE_GRASS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .magicCoatAffected = TRUE, }, @@ -10246,8 +9916,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .windMove = TRUE, }, @@ -10261,8 +9930,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, }, @@ -10276,8 +9944,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, }, @@ -10292,8 +9959,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESTORE_REPLACEMENT_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESTORE_REPLACEMENT_HP }, .magicCoatAffected = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, @@ -10313,8 +9980,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .magicCoatAffected = TRUE, }, @@ -10328,9 +9995,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, .argument = 75, // restores 75% HP instead of 50% HP - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -10345,9 +10011,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 3, - .split = SPLIT_STATUS, + .category = BATTLE_CATEGORY_STATUS, .argument = TRUE, // Protects the whole side. - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -10363,8 +10029,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -10379,10 +10045,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MISTY_TERRAIN] = @@ -10395,10 +10062,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ELECTRIFY] = @@ -10411,8 +10079,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, }, [MOVE_PLAY_ROUGH] = @@ -10424,8 +10092,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -10443,8 +10110,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .windMove = TRUE, }, @@ -10457,8 +10123,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_ATK_MINUS_1, 30) @@ -10475,8 +10140,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, }, @@ -10491,8 +10155,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, }, @@ -10507,8 +10171,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 4, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .protectionMove = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -10528,8 +10192,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .magicCoatAffected = TRUE, @@ -10545,8 +10209,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .ignoresProtect = TRUE, .magicCoatAffected = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, @@ -10561,8 +10225,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -10579,8 +10242,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .thawsUser = TRUE, .metronomeBanned = TRUE, @@ -10599,8 +10261,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .metronomeBanned = TRUE, @@ -10609,9 +10270,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_WATER_SHURIKEN] = { #if B_UPDATED_MOVE_DATA >= GEN_7 - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, #else - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, #endif .effect = EFFECT_MULTI_HIT, .power = 15, @@ -10621,7 +10282,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .zMoveEffect = Z_EFFECT_NONE, }, @@ -10638,8 +10298,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_ATK_MINUS_1, 100) @@ -10656,8 +10315,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 4, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .protectionMove = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -10676,8 +10335,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_2 }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -10693,8 +10352,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -10708,8 +10367,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -10723,8 +10382,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_2, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_2 }, .powderMove = TRUE, .magicCoatAffected = TRUE, }, @@ -10739,11 +10398,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .twoTurnMove = TRUE, .sleepTalkBanned = TRUE, .instructBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MAGNETIC_FLUX] = @@ -10756,8 +10416,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, @@ -10774,8 +10434,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -10790,10 +10450,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DAZZLING_GLEAM] = @@ -10806,8 +10467,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_CELEBRATE] = @@ -10820,8 +10480,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -10842,8 +10502,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .metronomeBanned = TRUE, @@ -10864,8 +10524,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, }, @@ -10878,8 +10538,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -10897,8 +10556,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -10912,8 +10570,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = TRUE, }, @@ -10926,8 +10583,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -10946,9 +10602,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, .argument = 75, // restores 75% HP instead of 50% HP - .zMoveEffect = Z_EFFECT_NONE, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -10962,11 +10617,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .damagesAirborne = TRUE, .ignoreTypeIfFlyingAndUngrounded = TRUE, .metronomeBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_THOUSAND_WAVES] = @@ -10978,9 +10633,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, + .skyBattleBanned = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT(MOVE_EFFECT_PREVENT_ESCAPE) ), @@ -10996,22 +10651,22 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, + .skyBattleBanned = TRUE, }, [MOVE_LIGHT_OF_RUIN] = { - .effect = EFFECT_RECOIL_50, + .effect = EFFECT_RECOIL, .power = 140, .type = TYPE_FAIRY, .accuracy = 90, + .recoil = 50, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -11025,8 +10680,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .pulseMove = TRUE, .metronomeBanned = TRUE, }, @@ -11041,8 +10695,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, }, @@ -11055,8 +10708,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -11074,7 +10726,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .metronomeBanned = TRUE, @@ -11094,8 +10746,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .healBlockBanned = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -11112,8 +10764,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 2, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -11127,8 +10778,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 4, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .protectionMove = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -11146,8 +10797,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_PREVENT_ESCAPE, 100) @@ -11164,8 +10814,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresTargetDefenseEvasionStages = TRUE, }, @@ -11180,9 +10829,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, .argument = STATUS1_BURN, - .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, @@ -11197,8 +10845,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, ADDITIONAL_EFFECTS( @@ -11216,8 +10863,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, + .argument = MOVE_EFFECT_FLORAL_HEALING, .mirrorMoveBanned = TRUE, .healBlockBanned = TRUE, .magicCoatAffected = TRUE, @@ -11233,8 +10881,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -11248,8 +10895,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .magicCoatAffected = TRUE, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, }, @@ -11264,8 +10911,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .twoTurnMove = TRUE, .makesContact = TRUE, .slicingMove = TRUE, @@ -11283,8 +10929,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SPOTLIGHT] = @@ -11297,8 +10942,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 3, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPDEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPDEF_UP_1 }, .magicCoatAffected = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -11316,8 +10961,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .magicCoatAffected = TRUE, }, @@ -11331,8 +10976,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -11348,8 +10993,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, @@ -11366,8 +11011,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, }, @@ -11382,8 +11026,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ballisticMove = TRUE, }, @@ -11396,8 +11039,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -11415,8 +11057,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, }, @@ -11430,8 +11072,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -11448,8 +11089,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -11467,8 +11107,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -11482,8 +11121,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .thawsUser = TRUE, }, @@ -11497,8 +11135,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresSubstitute = TRUE, }, @@ -11512,8 +11150,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -11527,8 +11164,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_ALL_STATS_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_ALL_STATS_UP_1 }, .mirrorMoveBanned = TRUE, .healBlockBanned = TRUE, .magicCoatAffected = TRUE, @@ -11544,8 +11181,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .danceMove = TRUE, }, @@ -11558,8 +11194,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, + .zMove = { .powerOverride = 140 }, ADDITIONAL_EFFECTS( PRIMARY_EFFECT(MOVE_EFFECT_CORE_ENFORCER) ), @@ -11574,8 +11210,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -11593,8 +11228,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPATK_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPATK_UP_1 }, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -11611,8 +11246,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -3, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .mirrorMoveBanned = TRUE, .ballisticMove = TRUE, .meFirstBanned = TRUE, @@ -11632,8 +11266,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, ADDITIONAL_EFFECTS( @@ -11651,8 +11284,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -11666,8 +11298,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -11681,8 +11312,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -11698,8 +11329,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = -3, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = TRUE, .meFirstBanned = TRUE, .metronomeBanned = TRUE, @@ -11718,8 +11348,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_TWO_DOWN) @@ -11736,8 +11365,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .bitingMove = TRUE, }, @@ -11752,9 +11380,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, }, [MOVE_SHADOW_BONE] = @@ -11766,8 +11394,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_DEF_MINUS_1, 20) @@ -11784,8 +11411,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -11798,8 +11424,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -11816,8 +11441,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) ), @@ -11832,8 +11456,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .ignoresSubstitute = TRUE, .makesContact = TRUE, .metronomeBanned = TRUE, @@ -11852,8 +11475,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresTargetAbility = TRUE, .metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_8, @@ -11869,8 +11491,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresTargetAbility = TRUE, .metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_8, }, @@ -11885,8 +11506,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_DEF_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, .ignoresProtect = TRUE, .magicCoatAffected = TRUE, }, @@ -11900,8 +11521,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 30) @@ -11918,8 +11538,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = B_UPDATED_MOVE_FLAGS >= GEN_8, }, @@ -11937,9 +11556,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = HOLD_EFFECT_MEMORY, - .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, }, @@ -11953,8 +11571,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -11968,8 +11585,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .metronomeBanned = TRUE, @@ -11985,28 +11601,27 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ignoresTargetAbility = TRUE, .metronomeBanned = TRUE, }, [MOVE_ZIPPY_ZAP] = { - .effect = B_UPDATED_MOVE_DATA >= GEN_8 ? EFFECT_HIT : EFFECT_ALWAYS_CRIT, + .effect = EFFECT_HIT, .power = B_UPDATED_MOVE_DATA >= GEN_8 ? 80 : 50, .type = TYPE_ELECTRIC, .accuracy = 100, .pp = B_UPDATED_MOVE_DATA >= GEN_8 ? 10 : 15, .target = MOVE_TARGET_SELECTED, .priority = 2, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .sheerForceBoost = B_UPDATED_MOVE_DATA >= GEN_8, + .alwaysCriticalHit = TRUE, .metronomeBanned = TRUE, - #if B_UPDATED_MOVE_DATA < GEN_8 + #if B_UPDATED_MOVE_DATA >= GEN_8 ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_EVS_PLUS_1, 100) ), @@ -12022,8 +11637,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, @@ -12041,8 +11655,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, @@ -12063,8 +11676,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, }, @@ -12085,8 +11697,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, .healBlockBanned = B_HEAL_BLOCKING >= GEN_6, @@ -12106,8 +11717,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -12129,8 +11739,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .thawsUser = TRUE, @@ -12155,8 +11764,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, }, @@ -12176,8 +11784,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, }, @@ -12198,8 +11805,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .magicCoatAffected = TRUE, .metronomeBanned = TRUE, @@ -12221,8 +11827,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, }, @@ -12243,8 +11848,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, }, @@ -12259,8 +11863,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .mirrorMoveBanned = B_UPDATED_MOVE_FLAGS < GEN_8, .metronomeBanned = TRUE, @@ -12275,8 +11878,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -12298,8 +11900,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, .copycatBanned = TRUE, @@ -12317,13 +11918,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 80, .type = TYPE_WATER, .accuracy = 100, + .criticalHitStage = 1, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_JAW_LOCK] = @@ -12336,8 +11936,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .bitingMove = TRUE, ADDITIONAL_EFFECTS( @@ -12355,8 +11954,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -12372,8 +11970,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -12389,8 +11986,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .magicCoatAffected = TRUE, }, @@ -12404,9 +12000,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, + .category = BATTLE_CATEGORY_STATUS, .argument = TYPE_PSYCHIC, - .zMoveEffect = Z_EFFECT_NONE, .magicCoatAffected = TRUE, .powderMove = TRUE, }, @@ -12421,8 +12016,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .strikeCount = 2, .parentalBondBanned = TRUE, }, @@ -12437,8 +12031,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -12454,8 +12047,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, }, [MOVE_BOLT_BEAK] = @@ -12468,8 +12060,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -12483,8 +12074,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .bitingMove = TRUE, }, @@ -12499,8 +12089,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, }, @@ -12514,8 +12103,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -12534,10 +12122,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, }, [MOVE_DECORATE] = @@ -12550,8 +12138,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -12566,8 +12153,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -12585,10 +12171,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, }, [MOVE_PYRO_BALL] = @@ -12600,8 +12186,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .thawsUser = TRUE, .ballisticMove = TRUE, @@ -12621,8 +12206,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, .metronomeBanned = TRUE, @@ -12641,8 +12225,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, .copycatBanned = TRUE, @@ -12660,8 +12243,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, }, @@ -12674,8 +12256,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, @@ -12694,8 +12275,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, }, @@ -12710,8 +12290,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .soundMove = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .metronomeBanned = TRUE, @@ -12726,8 +12305,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -12744,8 +12322,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -12762,8 +12339,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, @@ -12781,8 +12357,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -12800,8 +12375,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, @@ -12820,8 +12394,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 4, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .protectionMove = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -12839,8 +12412,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, }, @@ -12854,8 +12426,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, .instructBanned = TRUE, ADDITIONAL_EFFECTS( @@ -12872,8 +12443,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_RECHARGE) @@ -12890,8 +12460,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -12905,8 +12474,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_STEEL_ROLLER] = @@ -12919,10 +12487,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .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] = @@ -12934,8 +12502,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = MOVE_EFFECT_SCALE_SHOT, }, @@ -12949,8 +12516,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .twoTurnMove = TRUE, .instructBanned = TRUE, }, @@ -12965,8 +12531,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, }, @@ -12980,8 +12545,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_GRASSY_GLIDE] = @@ -12998,9 +12562,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, }, [MOVE_RISING_VOLTAGE] = @@ -13013,8 +12577,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_TERRAIN_PULSE] = @@ -13027,8 +12590,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .pulseMove = TRUE, }, @@ -13041,8 +12603,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -13058,8 +12619,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 100) @@ -13076,8 +12636,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -13091,8 +12650,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_CORROSIVE_GAS] = @@ -13105,8 +12663,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .magicCoatAffected = TRUE, }, @@ -13120,8 +12677,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALLY, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -13137,8 +12693,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, }, @@ -13152,8 +12707,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 3, }, @@ -13168,8 +12722,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 2, }, @@ -13183,8 +12736,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .thawsUser = TRUE, ADDITIONAL_EFFECTS( @@ -13202,8 +12754,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .ignoresSubstitute = TRUE, .mirrorMoveBanned = TRUE, @@ -13218,23 +12769,23 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #else .power = 80, #endif - .effect = EFFECT_ALWAYS_CRIT, + .effect = EFFECT_HIT, .type = TYPE_DARK, .accuracy = 100, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .alwaysCriticalHit = TRUE, .punchingMove = TRUE, .metronomeBanned = TRUE, }, [MOVE_SURGING_STRIKES] = { - .effect = EFFECT_ALWAYS_CRIT, + .effect = EFFECT_HIT, .power = 25, .type = TYPE_WATER, .accuracy = 100, @@ -13242,9 +12793,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .alwaysCriticalHit = TRUE, .punchingMove = TRUE, .strikeCount = 3, .metronomeBanned = TRUE, @@ -13260,8 +12811,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -13275,8 +12825,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -13289,8 +12838,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -13307,8 +12855,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 20) @@ -13324,8 +12871,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, @@ -13348,8 +12894,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, }, @@ -13363,8 +12908,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -13378,8 +12922,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .soundMove = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, @@ -13398,8 +12941,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -13416,8 +12958,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -13435,8 +12976,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -13452,8 +12992,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .slicingMove = TRUE, @@ -13475,8 +13014,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, .metronomeBanned = TRUE, @@ -13494,8 +13032,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT_SELF(MOVE_EFFECT_SP_ATK_PLUS_1, 100) @@ -13513,11 +13050,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .type = TYPE_FIRE, .accuracy = 100, .pp = 10, - .secondaryEffectChance = 0, + .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, }, @@ -13528,16 +13064,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #else .power = 75, #endif - .effect = EFFECT_RECOIL_33, + .effect = EFFECT_RECOIL, .type = TYPE_WATER, .accuracy = 100, + .recoil = 33, .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, }, [MOVE_CHLOROBLAST] = @@ -13554,8 +13091,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_MOUNTAIN_GALE] = @@ -13567,8 +13103,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_FLINCH, 30) @@ -13585,8 +13120,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .danceMove = TRUE, .snatchAffected = TRUE, .ignoresProtect = TRUE, @@ -13602,8 +13136,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, ADDITIONAL_EFFECTS( @@ -13624,8 +13157,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #endif .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_POISON, 50) @@ -13643,12 +13175,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #endif .effect = EFFECT_HIT, .type = TYPE_PSYCHIC, + .criticalHitStage = 1, .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT_SELF(MOVE_EFFECT_SPD_PLUS_1, 100) @@ -13668,8 +13199,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_ATK_MINUS_1, 100) @@ -13686,8 +13216,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -13705,11 +13234,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .effect = EFFECT_HIT, .type = TYPE_FIGHTING, .accuracy = 100, + .criticalHitStage = 1, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_DEF_MINUS_1, 50), @@ -13726,8 +13254,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_BURN, 30) @@ -13743,8 +13270,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .slicingMove = TRUE, @@ -13767,8 +13293,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 80, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, ADDITIONAL_EFFECTS( @@ -13790,8 +13315,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 80, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, ADDITIONAL_EFFECTS( @@ -13813,8 +13337,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .accuracy = 80, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .windMove = TRUE, ADDITIONAL_EFFECTS( @@ -13832,8 +13355,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -13850,8 +13372,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -13867,8 +13388,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, // Only since it isn't implemented yet .forcePressure = TRUE, }, @@ -13883,8 +13403,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 4, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .protectionMove = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -13900,8 +13419,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( @@ -13919,8 +13437,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .metronomeBanned = TRUE, // Only since it isn't implemented yet }, @@ -13933,8 +13450,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_SP_DEF_MINUS_2, 100) @@ -13951,8 +13467,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -13968,8 +13483,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 1, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .sheerForceBoost = TRUE, @@ -13986,8 +13500,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .magicCoatAffected = TRUE, .metronomeBanned = TRUE, }, @@ -14002,9 +13515,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_SPD_MINUS_2) ) @@ -14020,8 +13533,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, .metronomeBanned = TRUE, @@ -14038,10 +13550,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .argument = ARG_TRY_REMOVE_TERRAIN_HIT, // Remove the active field terrain if there is one. + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, }, [MOVE_GLAIVE_RUSH] = @@ -14054,8 +13566,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, // Only since it isn't implemented yet }, @@ -14070,8 +13581,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -14087,8 +13597,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .metronomeBanned = TRUE, }, @@ -14103,8 +13612,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .strikeCount = 3, }, @@ -14119,8 +13627,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .makesContact = TRUE, ADDITIONAL_EFFECTS( @@ -14131,16 +13638,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_DOODLE] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_DOODLE + .effect = EFFECT_DOODLE, .power = 0, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, + .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -14156,8 +13662,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RECOVER_HP, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RECOVER_HP }, .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, @@ -14174,15 +13680,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, }, [MOVE_FLOWER_TRICK] = { - .effect = EFFECT_ALWAYS_CRIT, + .effect = EFFECT_HIT, .power = 70, .type = TYPE_GRASS, .accuracy = 0, @@ -14190,8 +13695,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, + .alwaysCriticalHit = TRUE, }, [MOVE_TORCH_SONG] = @@ -14203,8 +13708,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .sheerForceBoost = TRUE, .soundMove = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, @@ -14222,8 +13726,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .sheerForceBoost = TRUE, .danceMove = TRUE, @@ -14234,7 +13737,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, @@ -14242,8 +13745,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, }, @@ -14258,8 +13760,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 100, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -14273,8 +13774,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, }, @@ -14288,8 +13788,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, }, @@ -14304,8 +13803,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .makesContact = TRUE, .metronomeBanned = TRUE, }, @@ -14320,8 +13818,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_RESET_STATS, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_RESET_STATS }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -14329,7 +13827,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_CHILLY_RECEPTION] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_CHILLY_RECEPTION + .effect = EFFECT_CHILLY_RECEPTION, .power = 0, .type = TYPE_ICE, .accuracy = 0, @@ -14337,8 +13835,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -14354,8 +13852,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_STATUS, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -14371,8 +13868,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_ALL_BATTLERS, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = Z_EFFECT_SPD_UP_1, + .category = BATTLE_CATEGORY_STATUS, + .zMove = { .effect = Z_EFFECT_SPD_UP_1 }, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .metronomeBanned = TRUE, @@ -14387,8 +13884,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .makesContact = TRUE, .metronomeBanned = TRUE, @@ -14406,8 +13902,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -14424,8 +13919,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 20, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_ATK_MINUS_1, 100) @@ -14442,8 +13936,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .ignoresProtect = TRUE, .metronomeBanned = TRUE, @@ -14459,15 +13952,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .strikeCount = 2, .metronomeBanned = TRUE, }, [MOVE_RAGE_FIST] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_RAGE_FIST + .effect = EFFECT_RAGE_FIST, .power = 50, .type = TYPE_GHOST, .accuracy = 100, @@ -14475,8 +13967,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .punchingMove = TRUE, .metronomeBanned = TRUE, @@ -14491,8 +13982,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( PRIMARY_EFFECT_SELF(MOVE_EFFECT_DEF_SPDEF_DOWN) @@ -14509,8 +13999,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, .healBlockBanned = B_EXTRAPOLATED_MOVE_FLAGS, @@ -14526,8 +14015,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .metronomeBanned = TRUE, }, @@ -14542,23 +14030,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .cantUseTwice = TRUE, }, [MOVE_COMEUPPANCE] = { .effect = EFFECT_METAL_BURST, - .power = 0, + .power = 1, .type = TYPE_DARK, .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .meFirstBanned = TRUE, .metronomeBanned = TRUE, @@ -14570,14 +14056,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 70, .type = TYPE_WATER, .accuracy = 100, + .criticalHitStage = 1, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .slicingMove = TRUE, - .highCritRatio = TRUE, }, [MOVE_BLAZING_TORQUE] = @@ -14589,8 +14074,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .mirrorMoveBanned = TRUE, .meFirstBanned = TRUE, @@ -14615,8 +14099,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .mirrorMoveBanned = TRUE, .meFirstBanned = TRUE, @@ -14641,8 +14124,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .mirrorMoveBanned = TRUE, .meFirstBanned = TRUE, @@ -14667,8 +14149,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .mirrorMoveBanned = TRUE, .meFirstBanned = TRUE, @@ -14693,8 +14174,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .sheerForceBoost = TRUE, .mirrorMoveBanned = TRUE, .meFirstBanned = TRUE, @@ -14720,8 +14200,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_PHYSICAL, .makesContact = TRUE, .slicingMove = TRUE, }, @@ -14736,8 +14215,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .thawsUser = TRUE, }, @@ -14751,8 +14229,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .cantUseTwice = TRUE, }, @@ -14765,8 +14242,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 15, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .thawsUser = TRUE, .metronomeBanned = TRUE, .healBlockBanned = B_EXTRAPOLATED_MOVE_FLAGS, @@ -14784,8 +14260,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = Z_EFFECT_NONE, + .category = BATTLE_CATEGORY_SPECIAL, .ballisticMove = TRUE, .metronomeBanned = TRUE, ADDITIONAL_EFFECTS( @@ -14795,17 +14270,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_IVY_CUDGEL] = { - .effect = EFFECT_IVY_CUDGEL, + .effect = EFFECT_CHANGE_TYPE_ON_ITEM, .power = 100, .type = TYPE_GRASS, .accuracy = 100, .pp = 10, + .criticalHitStage = 1, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = Z_EFFECT_NONE, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = HOLD_EFFECT_MASK, .metronomeBanned = TRUE, }, @@ -14820,8 +14295,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, //determined from move type - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, //determined from move type }, [MOVE_ALL_OUT_PUMMELING] = { @@ -14833,8 +14307,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SUPERSONIC_SKYSTRIKE] = { @@ -14846,8 +14319,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_ACID_DOWNPOUR] = { @@ -14859,8 +14331,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_TECTONIC_RAGE] = { @@ -14872,8 +14343,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, }, [MOVE_CONTINENTAL_CRUSH] = { @@ -14885,8 +14356,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SAVAGE_SPIN_OUT] = { @@ -14898,8 +14368,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_NEVER_ENDING_NIGHTMARE] = { @@ -14911,8 +14380,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_CORKSCREW_CRASH] = { @@ -14924,8 +14392,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_INFERNO_OVERDRIVE] = { @@ -14937,8 +14404,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_HYDRO_VORTEX] = { @@ -14950,8 +14416,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_BLOOM_DOOM] = { @@ -14963,8 +14428,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_GIGAVOLT_HAVOC] = { @@ -14976,8 +14440,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SHATTERED_PSYCHE] = { @@ -14989,8 +14452,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_SUBZERO_SLAMMER] = { @@ -15002,8 +14464,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_DEVASTATING_DRAKE] = { @@ -15015,8 +14476,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_BLACK_HOLE_ECLIPSE] = { @@ -15028,8 +14488,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_TWINKLE_TACKLE] = { @@ -15041,8 +14500,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_CATASTROPIKA] = { @@ -15054,8 +14512,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_10000000_VOLT_THUNDERBOLT] = { @@ -15063,13 +14520,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .power = 195, .type = TYPE_ELECTRIC, .accuracy = 0, + .criticalHitStage = 2, .pp = 1, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = 0, - .highCritRatio = TRUE, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_STOKED_SPARKSURFER] = { @@ -15080,8 +14536,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 1, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_SPECIAL, ADDITIONAL_EFFECTS( SECONDARY_EFFECT(MOVE_EFFECT_PARALYSIS, 100) ) @@ -15096,8 +14551,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .split = SPLIT_STATUS, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_STATUS, }, [MOVE_PULVERIZING_PANCAKE] = { @@ -15109,8 +14563,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_GENESIS_SUPERNOVA] = { @@ -15122,9 +14575,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, + .category = BATTLE_CATEGORY_SPECIAL, .argument = ARG_SET_PSYCHIC_TERRAIN, // Set Psychic Terrain. If there's a different field terrain active, overwrite it. - .zMoveEffect = 0, }, [MOVE_SINISTER_ARROW_RAID] = { @@ -15136,8 +14588,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_MALICIOUS_MOONSAULT] = { @@ -15149,8 +14600,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_OCEANIC_OPERETTA] = { @@ -15162,8 +14612,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SPLINTERED_STORMSHARDS] = { @@ -15175,9 +14624,8 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, + .category = BATTLE_CATEGORY_PHYSICAL, .argument = ARG_TRY_REMOVE_TERRAIN_HIT, // Remove the active field terrain if there is one. - .zMoveEffect = 0, }, [MOVE_LETS_SNUGGLE_FOREVER] = { @@ -15189,8 +14637,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_CLANGOROUS_SOULBLAZE] = { @@ -15201,8 +14648,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .pp = 1, .target = MOVE_TARGET_BOTH, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_SPECIAL, .soundMove = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, ADDITIONAL_EFFECTS( @@ -15219,8 +14665,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SEARING_SUNRAZE_SMASH] = { @@ -15232,8 +14677,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_MENACING_MOONRAZE_MAELSTROM] = { @@ -15245,8 +14689,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_LIGHT_THAT_BURNS_THE_SKY] = { @@ -15258,8 +14701,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_SPECIAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_SPECIAL, }, [MOVE_SOUL_STEALING_7_STAR_STRIKE] = { @@ -15271,740 +14713,740 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .split = SPLIT_PHYSICAL, - .zMoveEffect = 0, + .category = BATTLE_CATEGORY_PHYSICAL, }, [MOVE_MAX_GUARD] = - { - .effect = EFFECT_PROTECT, - .power = 0, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, - .priority = 4, - .split = SPLIT_STATUS, + { + .effect = EFFECT_PROTECT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 4, + .category = BATTLE_CATEGORY_STATUS, .protectionMove = TRUE, - }, + }, - [MOVE_MAX_FLARE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_FIRE, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_SUN, - }, + [MOVE_MAX_FLARE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_FIRE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_SUN, + }, - [MOVE_MAX_FLUTTERBY] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_BUG, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_LOWER_SP_ATK, - }, + [MOVE_MAX_FLUTTERBY] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_BUG, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_LOWER_SP_ATK, + }, - [MOVE_MAX_LIGHTNING] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_ELECTRIC, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_ELECTRIC_TERRAIN, - }, + [MOVE_MAX_LIGHTNING] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_ELECTRIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_ELECTRIC_TERRAIN, + }, - [MOVE_MAX_STRIKE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_LOWER_SPEED, - }, + [MOVE_MAX_STRIKE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_LOWER_SPEED, + }, - [MOVE_MAX_KNUCKLE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_FIGHTING, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_RAISE_TEAM_ATTACK, - }, + [MOVE_MAX_KNUCKLE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_RAISE_TEAM_ATTACK, + }, - [MOVE_MAX_PHANTASM] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_GHOST, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_LOWER_DEFENSE, - }, + [MOVE_MAX_PHANTASM] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_LOWER_DEFENSE, + }, - [MOVE_MAX_HAILSTORM] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_ICE, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_HAIL, - }, + [MOVE_MAX_HAILSTORM] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_HAIL, + }, - [MOVE_MAX_OOZE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_POISON, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_RAISE_TEAM_SP_ATK, - }, + [MOVE_MAX_OOZE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_POISON, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_RAISE_TEAM_SP_ATK, + }, - [MOVE_MAX_GEYSER] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_RAIN, - }, + [MOVE_MAX_GEYSER] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_RAIN, + }, - [MOVE_MAX_AIRSTREAM] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_FLYING, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_RAISE_TEAM_SPEED, - }, + [MOVE_MAX_AIRSTREAM] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_RAISE_TEAM_SPEED, + }, - [MOVE_MAX_STARFALL] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_FAIRY, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_MISTY_TERRAIN, - }, + [MOVE_MAX_STARFALL] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_FAIRY, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_MISTY_TERRAIN, + }, - [MOVE_MAX_WYRMWIND] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_DRAGON, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_LOWER_ATTACK, - }, + [MOVE_MAX_WYRMWIND] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_DRAGON, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_LOWER_ATTACK, + }, - [MOVE_MAX_MINDSTORM] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_PSYCHIC_TERRAIN, - }, + [MOVE_MAX_MINDSTORM] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_PSYCHIC_TERRAIN, + }, - [MOVE_MAX_ROCKFALL] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_ROCK, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_SANDSTORM, - }, + [MOVE_MAX_ROCKFALL] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_ROCK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_SANDSTORM, + }, - [MOVE_MAX_QUAKE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_GROUND, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_RAISE_TEAM_SP_DEF, - }, + [MOVE_MAX_QUAKE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_GROUND, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_RAISE_TEAM_SP_DEF, + .skyBattleBanned = B_EXTRAPOLATED_MOVE_FLAGS, + }, - [MOVE_MAX_DARKNESS] = - { - .effect = EFFECT_MAX_MOVE, - .power = 1, - .type = TYPE_DARK, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_LOWER_SP_DEF, - }, + [MOVE_MAX_DARKNESS] = + { + .effect = EFFECT_MAX_MOVE, + .power = 1, + .type = TYPE_DARK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_LOWER_SP_DEF, + }, - [MOVE_MAX_OVERGROWTH] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_GRASSY_TERRAIN, - }, + [MOVE_MAX_OVERGROWTH] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_GRASSY_TERRAIN, + }, - [MOVE_MAX_STEELSPIKE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_STEEL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_RAISE_TEAM_DEFENSE, - }, + [MOVE_MAX_STEELSPIKE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_STEEL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_RAISE_TEAM_DEFENSE, + }, - [MOVE_G_MAX_VINE_LASH] = - { //ANIM TODO - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_VINE_LASH, - }, + [MOVE_G_MAX_VINE_LASH] = + { //ANIM TODO + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_VINE_LASH, + }, - [MOVE_G_MAX_WILDFIRE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_FIRE, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_WILDFIRE, - }, + [MOVE_G_MAX_WILDFIRE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_FIRE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_WILDFIRE, + }, - [MOVE_G_MAX_CANNONADE] = - { //ANIM TODO - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_CANNONADE, - }, + [MOVE_G_MAX_CANNONADE] = + { //ANIM TODO + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_CANNONADE, + }, - [MOVE_G_MAX_BEFUDDLE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_BUG, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_EFFECT_SPORE_FOES, - }, + [MOVE_G_MAX_BEFUDDLE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_BUG, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_EFFECT_SPORE_FOES, + }, - [MOVE_G_MAX_VOLT_CRASH] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_ELECTRIC, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_PARALYZE_FOES, - }, + [MOVE_G_MAX_VOLT_CRASH] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_ELECTRIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_PARALYZE_FOES, + }, - [MOVE_G_MAX_GOLD_RUSH] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_CONFUSE_FOES_PAY_DAY, - }, + [MOVE_G_MAX_GOLD_RUSH] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_CONFUSE_FOES_PAY_DAY, + }, - [MOVE_G_MAX_CHI_STRIKE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_FIGHTING, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_CRIT_PLUS, - }, + [MOVE_G_MAX_CHI_STRIKE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_CRIT_PLUS, + }, - [MOVE_G_MAX_TERROR] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_GHOST, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_MEAN_LOOK, - }, + [MOVE_G_MAX_TERROR] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_GHOST, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_MEAN_LOOK, + }, - [MOVE_G_MAX_FOAM_BURST] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_LOWER_SPEED_2_FOES, - }, + [MOVE_G_MAX_FOAM_BURST] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_LOWER_SPEED_2_FOES, + }, - [MOVE_G_MAX_RESONANCE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_ICE, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_AURORA_VEIL, - }, + [MOVE_G_MAX_RESONANCE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_ICE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_AURORA_VEIL, + }, - [MOVE_G_MAX_CUDDLE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_INFATUATE_FOES, - }, + [MOVE_G_MAX_CUDDLE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_INFATUATE_FOES, + }, - [MOVE_G_MAX_REPLENISH] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_NORMAL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_RECYCLE_BERRIES, - }, + [MOVE_G_MAX_REPLENISH] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_RECYCLE_BERRIES, + }, - [MOVE_G_MAX_MALODOR] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_POISON, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_POISON_FOES, - }, + [MOVE_G_MAX_MALODOR] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_POISON, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_POISON_FOES, + }, - [MOVE_G_MAX_MELTDOWN] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_STEEL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_TORMENT_FOES, - }, + [MOVE_G_MAX_MELTDOWN] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_STEEL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_TORMENT_FOES, + }, - [MOVE_G_MAX_DRUM_SOLO] = - { //ANIM TODO - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO + [MOVE_G_MAX_DRUM_SOLO] = + { //ANIM TODO + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO .ignoresTargetAbility = TRUE, - }, + }, - [MOVE_G_MAX_FIREBALL] = - { //ANIM TODO - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_FIRE, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO + [MOVE_G_MAX_FIREBALL] = + { //ANIM TODO + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_FIRE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO .ignoresTargetAbility = TRUE, - }, + }, - [MOVE_G_MAX_HYDROSNIPE] = - { //ANIM TODO - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO + [MOVE_G_MAX_HYDROSNIPE] = + { //ANIM TODO + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO .ignoresTargetAbility = TRUE, - }, + }, - [MOVE_G_MAX_WIND_RAGE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_FLYING, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_DEFOG, - }, + [MOVE_G_MAX_WIND_RAGE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_FLYING, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_DEFOG, + }, - [MOVE_G_MAX_GRAVITAS] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_PSYCHIC, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_GRAVITY, - }, + [MOVE_G_MAX_GRAVITAS] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_GRAVITY, + }, - [MOVE_G_MAX_STONESURGE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_STEALTH_ROCK, - }, + [MOVE_G_MAX_STONESURGE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_STEALTH_ROCK, + }, - [MOVE_G_MAX_VOLCALITH] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_ROCK, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_VOLCALITH, - }, + [MOVE_G_MAX_VOLCALITH] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_ROCK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_VOLCALITH, + }, - [MOVE_G_MAX_TARTNESS] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_LOWER_EVASIVENESS_FOES, - }, + [MOVE_G_MAX_TARTNESS] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_LOWER_EVASIVENESS_FOES, + }, - [MOVE_G_MAX_SWEETNESS] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_GRASS, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_AROMATHERAPY, - }, + [MOVE_G_MAX_SWEETNESS] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_GRASS, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_AROMATHERAPY, + }, - [MOVE_G_MAX_SANDBLAST] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_GROUND, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_SANDBLAST_FOES, - }, + [MOVE_G_MAX_SANDBLAST] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_GROUND, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_SANDBLAST_FOES, + }, - [MOVE_G_MAX_STUN_SHOCK] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_ELECTRIC, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_POISON_PARALYZE_FOES, - }, + [MOVE_G_MAX_STUN_SHOCK] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_ELECTRIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_POISON_PARALYZE_FOES, + }, - [MOVE_G_MAX_CENTIFERNO] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_FIRE, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_FIRE_SPIN_FOES, - }, + [MOVE_G_MAX_CENTIFERNO] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_FIRE, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_FIRE_SPIN_FOES, + }, - [MOVE_G_MAX_SMITE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_FAIRY, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_CONFUSE_FOES, - }, + [MOVE_G_MAX_SMITE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_FAIRY, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_CONFUSE_FOES, + }, - [MOVE_G_MAX_SNOOZE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_DARK, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_YAWN_FOE, - }, + [MOVE_G_MAX_SNOOZE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_DARK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_YAWN_FOE, + }, - [MOVE_G_MAX_FINALE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_FAIRY, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_HEAL_TEAM, - }, + [MOVE_G_MAX_FINALE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_FAIRY, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_HEAL_TEAM, + }, - [MOVE_G_MAX_STEELSURGE] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_STEEL, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_STEELSURGE, - }, + [MOVE_G_MAX_STEELSURGE] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_STEEL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_STEELSURGE, + }, - [MOVE_G_MAX_DEPLETION] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_DRAGON, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_SPITE, - }, + [MOVE_G_MAX_DEPLETION] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_DRAGON, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_SPITE, + }, - [MOVE_G_MAX_ONE_BLOW] = - { - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_DARK, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_BYPASS_PROTECT, //EFFECT TODO - }, + [MOVE_G_MAX_ONE_BLOW] = + { + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_DARK, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_BYPASS_PROTECT, //EFFECT TODO + }, - [MOVE_G_MAX_RAPID_FLOW] = - { //ANIM TODO - .effect = EFFECT_MAX_MOVE, - .power = 10, - .type = TYPE_WATER, - .accuracy = 0, - .pp = 10, - .secondaryEffectChance = 100, - .target = MOVE_TARGET_SELECTED, - .priority = 0, - .split = SPLIT_PHYSICAL, - .argument = MAX_EFFECT_BYPASS_PROTECT, //EFFECT TODO - }, + [MOVE_G_MAX_RAPID_FLOW] = + { //ANIM TODO + .effect = EFFECT_MAX_MOVE, + .power = 10, + .type = TYPE_WATER, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .category = BATTLE_CATEGORY_PHYSICAL, + .argument = MAX_EFFECT_BYPASS_PROTECT, //EFFECT TODO + }, }; diff --git a/src/data/battle_partners.h b/src/data/battle_partners.h new file mode 100644 index 0000000000..806a50bdf6 --- /dev/null +++ b/src/data/battle_partners.h @@ -0,0 +1,21 @@ +const struct Trainer gBattlePartners[] = { + [PARTNER_NONE] = + { + .party = NULL, + .trainerClass = TRAINER_CLASS_PKMN_TRAINER_1, + .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, + .trainerPic = TRAINER_PIC_HIKER, + .trainerName = _(""), + .items = {}, + }, + + [PARTNER_STEVEN] = + { + .party = TRAINER_PARTY(sParty_StevenPartner), + .trainerClass = TRAINER_CLASS_RIVAL, + .encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE, + .trainerPic = TRAINER_BACK_PIC_STEVEN, + .trainerName = _("STEVEN"), + }, + +}; diff --git a/src/data/graphics/items.h b/src/data/graphics/items.h index e853c40bc1..f273b6d3b0 100644 --- a/src/data/graphics/items.h +++ b/src/data/graphics/items.h @@ -1918,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"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 176ccce380..68dc952952 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -1,8322 +1,10912 @@ 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_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 u8 gMonFootprint_TaurosPaldeanCombatBreed[] = INCBIN_U8("graphics/pokemon/tauros/combat/footprint.1bpp"); - -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 u8 gMonFootprint_TaurosPaldeanBlazeBreed[] = INCBIN_U8("graphics/pokemon/tauros/blaze/footprint.1bpp"); - -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"); -// const u8 gMonFootprint_TaurosPaldeanAquaBreed[] = INCBIN_U8("graphics/pokemon/tauros/aqua/footprint.1bpp"); - -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_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 u8 gMonFootprint_WooperPaldean[] = INCBIN_U8("graphics/pokemon/wooper/wooper_paldea/footprint.1bpp"); - -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/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/anim_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/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/anim_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/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/anim_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/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/anim_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/anim_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/anim_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_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"); -// const u8 gMonFootprint_UrsalunaBloodmoon[] = INCBIN_U8("graphics/pokemon/ursaluna/bloodmoon/footprint.1bpp"); - -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/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/anim_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_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_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_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 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_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"); -#if P_CUSTOM_GENDER_DIFF_ICONS == TRUE -const u8 gMonIcon_PikachuF[] = INCBIN_U8("graphics/pokemon/pikachu/iconf.4bpp"); -#endif -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"); -#if P_CUSTOM_GENDER_DIFF_ICONS == TRUE -const u8 gMonIcon_WobbuffetF[] = INCBIN_U8("graphics/pokemon/wobbuffet/iconf.4bpp"); -#endif -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_CUSTOM_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_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 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_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 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"); +#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_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_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_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_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_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_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/backf.4bpp.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"); +#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 -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"); +#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 -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_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 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"); + 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_GEN_9_POKEMON == TRUE -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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"); - -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 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"); - -// const u8 gMonFootprint_Ogerpon[] = INCBIN_U8("graphics/pokemon/ogerpon/footprint.1bpp"); - +#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/paldean_combat_breed/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeanCombatBreed[] = INCBIN_U8("graphics/pokemon/tauros/paldean_combat_breed/icon.4bpp"); + + const u32 gMonFrontPic_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeanBlazeBreed[] = INCBIN_U8("graphics/pokemon/tauros/paldean_blaze_breed/icon.4bpp"); + + const u32 gMonFrontPic_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeanAquaBreed[] = INCBIN_U8("graphics/pokemon/tauros/paldean_aqua_breed/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_paldean/front.4bpp.lz"); + const u32 gMonPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/normal.gbapal.lz"); + const u32 gMonBackPic_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/back.4bpp.lz"); + const u32 gMonShinyPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/shiny.gbapal.lz"); + // const u8 gMonIcon_WooperPaldean[] = INCBIN_U8("graphics/pokemon/wooper/wooper_paldean/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"); +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY + 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"); + + 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/graphics/trainers.h b/src/data/graphics/trainers.h index fbdea74729..57269f0723 100644 --- a/src/data/graphics/trainers.h +++ b/src/data/graphics/trainers.h @@ -1,3 +1,6 @@ +#include "constants/trainers.h" +#include "data.h" + const u32 gTrainerFrontPic_Hiker[] = INCBIN_U32("graphics/trainers/front_pics/hiker.4bpp.lz"); const u32 gTrainerPalette_Hiker[] = INCBIN_U32("graphics/trainers/front_pics/hiker.gbapal.lz"); @@ -288,3 +291,235 @@ const u8 gTrainerBackPic_Steven[] = INCBIN_U8("graphics/trainers/back_pics/steve const u32 gTrainerBackPicPalette_Red[] = INCBIN_U32("graphics/trainers/back_pics/red.gbapal.lz"); const u32 gTrainerBackPicPalette_Leaf[] = INCBIN_U32("graphics/trainers/back_pics/leaf.gbapal.lz"); + +static const union AnimCmd *const sAnims_Trainer[] ={ + sAnim_GeneralFrame0, +}; + +#define TRAINER_SPRITE(trainerPic, file) \ + [TRAINER_PIC_##trainerPic] = \ + { \ + .y_offset = 8, \ + .frontPic = {gTrainerFrontPic_##file, TRAINER_PIC_SIZE, TRAINER_PIC_##trainerPic},\ + .palette = {gTrainerPalette_##file, TRAINER_PIC_##trainerPic}, \ + .animation = sAnims_Trainer, \ + } + +const struct TrainerSprite gTrainerSprites[] = +{ + TRAINER_SPRITE(HIKER, Hiker), + TRAINER_SPRITE(AQUA_GRUNT_M, AquaGruntM), + TRAINER_SPRITE(POKEMON_BREEDER_F, PokemonBreederF), + TRAINER_SPRITE(COOLTRAINER_M, CoolTrainerM), + TRAINER_SPRITE(BIRD_KEEPER, BirdKeeper), + TRAINER_SPRITE(COLLECTOR, Collector), + TRAINER_SPRITE(AQUA_GRUNT_F, AquaGruntF), + TRAINER_SPRITE(SWIMMER_M, SwimmerM), + TRAINER_SPRITE(MAGMA_GRUNT_M, MagmaGruntM), + TRAINER_SPRITE(EXPERT_M, ExpertM), + TRAINER_SPRITE(AQUA_ADMIN_M, AquaAdminM), + TRAINER_SPRITE(BLACK_BELT, BlackBelt), + TRAINER_SPRITE(AQUA_ADMIN_F, AquaAdminF), + TRAINER_SPRITE(AQUA_LEADER_ARCHIE, AquaLeaderArchie), + TRAINER_SPRITE(HEX_MANIAC, HexManiac), + TRAINER_SPRITE(AROMA_LADY, AromaLady), + TRAINER_SPRITE(RUIN_MANIAC, RuinManiac), + TRAINER_SPRITE(INTERVIEWER, Interviewer), + TRAINER_SPRITE(TUBER_F, TuberF), + TRAINER_SPRITE(TUBER_M, TuberM), + TRAINER_SPRITE(COOLTRAINER_F, CoolTrainerF), + TRAINER_SPRITE(LADY, Lady), + TRAINER_SPRITE(BEAUTY, Beauty), + TRAINER_SPRITE(RICH_BOY, RichBoy), + TRAINER_SPRITE(EXPERT_F, ExpertF), + TRAINER_SPRITE(POKEMANIAC, Pokemaniac), + TRAINER_SPRITE(MAGMA_GRUNT_F, MagmaGruntF), + TRAINER_SPRITE(GUITARIST, Guitarist), + TRAINER_SPRITE(KINDLER, Kindler), + TRAINER_SPRITE(CAMPER, Camper), + TRAINER_SPRITE(PICNICKER, Picnicker), + TRAINER_SPRITE(BUG_MANIAC, BugManiac), + TRAINER_SPRITE(POKEMON_BREEDER_M, PokemonBreederM), + TRAINER_SPRITE(PSYCHIC_M, PsychicM), + TRAINER_SPRITE(PSYCHIC_F, PsychicF), + TRAINER_SPRITE(GENTLEMAN, Gentleman), + TRAINER_SPRITE(ELITE_FOUR_SIDNEY, EliteFourSidney), + TRAINER_SPRITE(ELITE_FOUR_PHOEBE, EliteFourPhoebe), + TRAINER_SPRITE(ELITE_FOUR_GLACIA, EliteFourGlacia), + TRAINER_SPRITE(ELITE_FOUR_DRAKE, EliteFourDrake), + TRAINER_SPRITE(LEADER_ROXANNE, LeaderRoxanne), + TRAINER_SPRITE(LEADER_BRAWLY, LeaderBrawly), + TRAINER_SPRITE(LEADER_WATTSON, LeaderWattson), + TRAINER_SPRITE(LEADER_FLANNERY, LeaderFlannery), + TRAINER_SPRITE(LEADER_NORMAN, LeaderNorman), + TRAINER_SPRITE(LEADER_WINONA, LeaderWinona), + TRAINER_SPRITE(LEADER_TATE_AND_LIZA, LeaderTateAndLiza), + TRAINER_SPRITE(LEADER_JUAN, LeaderJuan), + TRAINER_SPRITE(SCHOOL_KID_M, SchoolKidM), + TRAINER_SPRITE(SCHOOL_KID_F, SchoolKidF), + TRAINER_SPRITE(SR_AND_JR, SrAndJr), + TRAINER_SPRITE(POKEFAN_M, PokefanM), + TRAINER_SPRITE(POKEFAN_F, PokefanF), + TRAINER_SPRITE(YOUNGSTER, Youngster), + TRAINER_SPRITE(CHAMPION_WALLACE, ChampionWallace), + TRAINER_SPRITE(FISHERMAN, Fisherman), + TRAINER_SPRITE(CYCLING_TRIATHLETE_M, CyclingTriathleteM), + TRAINER_SPRITE(CYCLING_TRIATHLETE_F, CyclingTriathleteF), + TRAINER_SPRITE(RUNNING_TRIATHLETE_M, RunningTriathleteM), + TRAINER_SPRITE(RUNNING_TRIATHLETE_F, RunningTriathleteF), + TRAINER_SPRITE(SWIMMING_TRIATHLETE_M, SwimmingTriathleteM), + TRAINER_SPRITE(SWIMMING_TRIATHLETE_F, SwimmingTriathleteF), + TRAINER_SPRITE(DRAGON_TAMER, DragonTamer), + TRAINER_SPRITE(NINJA_BOY, NinjaBoy), + TRAINER_SPRITE(BATTLE_GIRL, BattleGirl), + TRAINER_SPRITE(PARASOL_LADY, ParasolLady), + TRAINER_SPRITE(SWIMMER_F, SwimmerF), + TRAINER_SPRITE(TWINS, Twins), + TRAINER_SPRITE(SAILOR, Sailor), + TRAINER_SPRITE(MAGMA_ADMIN, MagmaAdmin), + TRAINER_SPRITE(WALLY, Wally), + TRAINER_SPRITE(BRENDAN, Brendan), + TRAINER_SPRITE(MAY, May), + TRAINER_SPRITE(BUG_CATCHER, BugCatcher), + TRAINER_SPRITE(POKEMON_RANGER_M, PokemonRangerM), + TRAINER_SPRITE(POKEMON_RANGER_F, PokemonRangerF), + TRAINER_SPRITE(MAGMA_LEADER_MAXIE, MagmaLeaderMaxie), + TRAINER_SPRITE(LASS, Lass), + TRAINER_SPRITE(YOUNG_COUPLE, YoungCouple), + TRAINER_SPRITE(OLD_COUPLE, OldCouple), + TRAINER_SPRITE(SIS_AND_BRO, SisAndBro), + TRAINER_SPRITE(STEVEN, Steven), + TRAINER_SPRITE(SALON_MAIDEN_ANABEL, SalonMaidenAnabel), + TRAINER_SPRITE(DOME_ACE_TUCKER, DomeAceTucker), + TRAINER_SPRITE(PALACE_MAVEN_SPENSER, PalaceMavenSpenser), + TRAINER_SPRITE(ARENA_TYCOON_GRETA, ArenaTycoonGreta), + TRAINER_SPRITE(FACTORY_HEAD_NOLAND, FactoryHeadNoland), + TRAINER_SPRITE(PIKE_QUEEN_LUCY, PikeQueenLucy), + TRAINER_SPRITE(PYRAMID_KING_BRANDON, PyramidKingBrandon), + TRAINER_SPRITE(RED, Red), + TRAINER_SPRITE(LEAF, Leaf), + TRAINER_SPRITE(RS_BRENDAN, RubySapphireBrendan), + TRAINER_SPRITE(RS_MAY, RubySapphireMay), +}; + +static const union AnimCmd sAnimCmd_Hoenn[] = +{ + ANIMCMD_FRAME(0, 24), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(2, 24), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(3, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnimCmd_Kanto[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(2, 6), + ANIMCMD_FRAME(3, 6), + ANIMCMD_FRAME(4, 24), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd *const sBackAnims_Hoenn[] = +{ + sAnim_GeneralFrame3, + sAnimCmd_Hoenn, +}; + +static const union AnimCmd *const sBackAnims_Kanto[] = +{ + sAnim_GeneralFrame0, + sAnimCmd_Kanto, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Brendan[] = +{ + {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Brendan + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_May[] = +{ + {gTrainerBackPic_May + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_May + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_May + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_May + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Red[] = +{ + {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Red + TRAINER_PIC_SIZE * 4, TRAINER_PIC_SIZE}, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] = +{ + {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Leaf + TRAINER_PIC_SIZE * 4, TRAINER_PIC_SIZE}, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[] = +{ + {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_RubySapphireBrendan + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[] = +{ + {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_RubySapphireMay + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Wally[] = +{ + {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Wally + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, +}; + +const struct SpriteFrameImage gTrainerBackPicTable_Steven[] = +{ + {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 0, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 1, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 2, TRAINER_PIC_SIZE}, + {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, +}; + +// .backPic goes functionally unused, since none of these pics are compressed +// and the place they would get extracted to gets overwritten later anyway +// the casts are so they'll play nice with the strict struct definition +#define TRAINER_BACK_SPRITE(trainerPic, yOffset, sprite, pal, anim) \ + [TRAINER_BACK_PIC_##trainerPic] = \ + { \ + .coordinates = {.size = 8, .y_offset = yOffset}, \ + .backPic = {(const u32 *)gTrainerBackPic_##sprite, TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_##sprite), TRAINER_BACK_PIC_##trainerPic}, \ + .palette = {gTrainer##pal, TRAINER_BACK_PIC_##trainerPic}, \ + .animation = sBackAnims_##anim, \ + } + +const struct TrainerBacksprite gTrainerBacksprites[] = +{ + TRAINER_BACK_SPRITE(BRENDAN, 4, Brendan, Palette_Brendan, Hoenn), + TRAINER_BACK_SPRITE(MAY, 4, May, Palette_May, Hoenn), + TRAINER_BACK_SPRITE(RED, 5, Red, BackPicPalette_Red, Kanto), + TRAINER_BACK_SPRITE(LEAF, 5, Leaf, BackPicPalette_Leaf, Kanto), + TRAINER_BACK_SPRITE(RUBY_SAPPHIRE_BRENDAN, 4, RubySapphireBrendan, Palette_RubySapphireBrendan, Hoenn), + TRAINER_BACK_SPRITE(RUBY_SAPPHIRE_MAY, 4, RubySapphireMay, Palette_RubySapphireMay, Hoenn), + TRAINER_BACK_SPRITE(WALLY, 4, Wally, Palette_Wally, Hoenn), + TRAINER_BACK_SPRITE(STEVEN, 4, Steven, Palette_Steven, Hoenn), +}; diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h index ed9a158650..33ed4aed8d 100644 --- a/src/data/item_icon_table.h +++ b/src/data/item_icon_table.h @@ -791,7 +791,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}, diff --git a/src/data/items.h b/src/data/items.h index 004e0dc3d7..2114d1a4bd 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -20,13 +20,135 @@ #define TYPE_BOOST_PARAM 10 #endif +#define X_ITEM_STAGES (B_X_ITEMS_BUFF >= GEN_7) ? 2 : 1 + +// Shared Item Description entries + +static const u8 sFullHealDesc[] = _("Heals all the\n" + "status problems of\n" + "one Pokémon."); + +static const u8 sPokeDollDesc[] = _("Use to flee from\n" + "any battle with\n" + "a wild Pokémon."); + +static const u8 sMaxReviveDesc[] = _("Revives a fainted\n" + "Pokémon with all\n" + "its HP."); + +static const u8 sHealthFeatherDesc[] = _("An item that raises\n" + "the base HP of\n" + "a Pokémon."); + +static const u8 sMuscleFeatherDesc[] = _("An item that raises\n" + "the base Attack of\n" + "a Pokémon."); + +static const u8 sResistFeatherDesc[] = _("An item that raises\n" + "the base Defense\n" + "of a Pokémon."); + +static const u8 sGeniusFeatherDesc[] = _("An item that raises\n" + "the base Sp. Atk.\n" + "of a Pokémon."); + +static const u8 sCleverFeatherDesc[] = _("An item that raises\n" + "the base Sp. Def.\n" + "of a Pokémon."); + +static const u8 sSwiftFeatherDesc[] = _("An item that raises\n" + "the base Speed of\n" + "a Pokémon."); + +static const u8 sBigMushroomDesc[] = _("A rare mushroom\n" + "that would sell at a\n" + "high price."); + +static const u8 sShardsDesc[] = _("A shard from an\n" + "ancient item. Can\n" + "be sold cheaply."); + +static const u8 sRootFossilDesc[] = _("A fossil of an\n" + "ancient, seafloor-\n" + "dwelling Pokémon."); + +static const u8 sFossilizedFishDesc[] = _("A fossil of an\n" + "ancient, sea-\n" + "dwelling Pokémon."); + +static const u8 sBeadMailDesc[] = _("Mail featuring a\n" + "sketch of the\n" + "holding Pokémon."); + +static const u8 sEvolutionStoneDesc[] = _("Makes certain\n" + "species of Pokémon\n" + "evolve."); + +static const u8 sNectarDesc[] = _("Flower nectar that\n" + "changes the form\n" + "of certain Pokémon."); + +static const u8 sCharizarditeDesc[] = _("This stone enables\n" + "Charizard to Mega\n" + "Evolve in battle."); + +static const u8 sMewtwoniteDesc[] = _("This stone enables\n" + "Mewtwo to Mega\n" + "Evolve in battle."); + +static const u8 sSeaIncenseDesc[] = _("A hold item that\n" + "slightly boosts\n" + "Water-type moves."); + +static const u8 sOddIncenseDesc[] = _("A hold item that\n" + "boosts Psychic-\n" + "type moves."); + +static const u8 sRockIncenseDesc[] = _("A hold item that\n" + "raises the power of\n" + "Rock-type moves."); + +static const u8 sFullIncenseDesc[] = _("A held item that\n" + "makes the holder\n" + "move slower."); + +static const u8 sRoseIncenseDesc[] = _("A hold item that\n" + "raises the power of\n" + "Grass-type moves."); + +static const u8 sLuckIncenseDesc[] = _("Doubles money in\n" + "battle if the\n" + "holder takes part."); + +static const u8 sPureIncenseDesc[] = _("A hold item that\n" + "helps repel wild\n" + "Pokémon."); + +static const u8 sKingsRockDesc[] = _("A hold item that\n" + "may cause flinching\n" + "when the foe is hit."); + +static const u8 sFigyBerryDesc[] = _("A hold item that\n" + "restores HP but\n" + "may confuse."); + +static const u8 sQuestionMarksDesc[] = _("?????"); + +static const u8 sKeyToRoomDesc[] = _("A key that opens a\n" + "door inside the\n" + "Abandoned Ship."); + +static const u8 sTeraShardDesc[] = _("These shards may\n" + "form when a Tera\n" + "Pokémon faints."); + const struct Item gItems[] = { [ITEM_NONE] = { .name = _("????????"), .price = 0, - .description = sDummyDesc, + .description = sQuestionMarksDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -38,7 +160,9 @@ const struct Item gItems[] = { .name = _("Poké Ball"), .price = 200, - .description = sPokeBallDesc, + .description = COMPOUND_STRING("A tool used for\n" + "catching wild\n" + "Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -49,7 +173,9 @@ const struct Item gItems[] = { .name = _("Great Ball"), .price = 600, - .description = sGreatBallDesc, + .description = COMPOUND_STRING("A good Ball with a\n" + "higher catch rate\n" + "than a Poké Ball."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -60,7 +186,9 @@ const struct Item gItems[] = { .name = _("Ultra Ball"), .price = 800, - .description = sUltraBallDesc, + .description = COMPOUND_STRING("A better Ball with\n" + "a higher catch rate\n" + "than a Great Ball."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -71,7 +199,9 @@ const struct Item gItems[] = { .name = _("Master Ball"), .price = 0, - .description = sMasterBallDesc, + .description = COMPOUND_STRING("The best Ball that\n" + "catches a Pokémon\n" + "without fail."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -82,7 +212,9 @@ const struct Item gItems[] = { .name = _("Premier Ball"), .price = 20, - .description = sPremierBallDesc, + .description = COMPOUND_STRING("A rare Ball made\n" + "in commemoration\n" + "of some event."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -93,7 +225,9 @@ const struct Item gItems[] = { .name = _("Heal Ball"), .price = 300, - .description = sHealBallDesc, + .description = COMPOUND_STRING("A remedial Ball\n" + "that restores\n" + "caught Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -104,7 +238,9 @@ const struct Item gItems[] = { .name = _("Net Ball"), .price = 1000, - .description = sNetBallDesc, + .description = COMPOUND_STRING("A Ball that works\n" + "well on Water- and\n" + "Bug-type Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -115,7 +251,9 @@ const struct Item gItems[] = { .name = _("Nest Ball"), .price = 1000, - .description = sNestBallDesc, + .description = COMPOUND_STRING("A Ball that works\n" + "better on weaker\n" + "Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -126,7 +264,9 @@ const struct Item gItems[] = { .name = _("Dive Ball"), .price = 1000, - .description = sDiveBallDesc, + .description = COMPOUND_STRING("A Ball that works\n" + "better on Pokémon\n" + "on the ocean floor."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -137,7 +277,9 @@ const struct Item gItems[] = { .name = _("Dusk Ball"), .price = 1000, - .description = sDuskBallDesc, + .description = COMPOUND_STRING("Works well if\n" + "used in a\n" + "dark place."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -148,7 +290,9 @@ const struct Item gItems[] = { .name = _("Timer Ball"), .price = 1000, - .description = sTimerBallDesc, + .description = COMPOUND_STRING("A Ball that gains\n" + "power in battles\n" + "taking many turns."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -159,7 +303,9 @@ const struct Item gItems[] = { .name = _("Quick Ball"), .price = 1000, - .description = sQuickBallDesc, + .description = COMPOUND_STRING("Works well if\n" + "used on the\n" + "first turn."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -170,7 +316,9 @@ const struct Item gItems[] = { .name = _("Repeat Ball"), .price = 1000, - .description = sRepeatBallDesc, + .description = COMPOUND_STRING("A Ball that works\n" + "better on Pokémon\n" + "caught before."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -181,7 +329,9 @@ const struct Item gItems[] = { .name = _("Luxury Ball"), .price = 1000, - .description = sLuxuryBallDesc, + .description = COMPOUND_STRING("A cozy Ball that\n" + "makes Pokémon\n" + "more friendly."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -192,7 +342,9 @@ const struct Item gItems[] = { .name = _("Level Ball"), .price = 0, - .description = sLevelBallDesc, + .description = COMPOUND_STRING("A Ball that works\n" + "well on lower\n" + "level Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -203,7 +355,9 @@ const struct Item gItems[] = { .name = _("Lure Ball"), .price = 0, - .description = sLureBallDesc, + .description = COMPOUND_STRING("A Ball that works\n" + "well on fished\n" + "up Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -214,7 +368,9 @@ const struct Item gItems[] = { .name = _("Moon Ball"), .price = 0, - .description = sMoonBallDesc, + .description = COMPOUND_STRING("A Ball that works\n" + "well on Moon\n" + "Stone users."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -225,7 +381,9 @@ const struct Item gItems[] = { .name = _("Friend Ball"), .price = 0, - .description = sFriendBallDesc, + .description = COMPOUND_STRING("A Ball that makes\n" + "a Pokémon friendly\n" + "when caught."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -236,7 +394,9 @@ const struct Item gItems[] = { .name = _("Love Ball"), .price = 0, - .description = sLoveBallDesc, + .description = COMPOUND_STRING("Works well on\n" + "Pokémon of the\n" + "opposite gender."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -247,7 +407,9 @@ const struct Item gItems[] = { .name = _("Fast Ball"), .price = 0, - .description = sFastBallDesc, + .description = COMPOUND_STRING("Works well on\n" + "very fast\n" + "Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -258,7 +420,9 @@ const struct Item gItems[] = { .name = _("Heavy Ball"), .price = 0, - .description = sHeavyBallDesc, + .description = COMPOUND_STRING("Works well on\n" + "very heavy\n" + "Pokémon."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -269,7 +433,14 @@ const struct Item gItems[] = { .name = _("Dream Ball"), .price = 0, - .description = sDreamBallDesc, + #if B_DREAM_BALL_MODIFIER >= GEN_8 + .description = COMPOUND_STRING("A Ball that works\n" + "well on sleeping\n" + "Pokémon."), + #else + .description = COMPOUND_STRING("A Poké Ball used in\n" + "the Entree Forest."), + #endif .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -280,7 +451,9 @@ const struct Item gItems[] = { .name = _("Safari Ball"), .price = 0, - .description = sSafariBallDesc, + .description = COMPOUND_STRING("A special Ball that\n" + "is used only in the\n" + "Safari Zone."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -291,7 +464,9 @@ const struct Item gItems[] = { .name = _("Sport Ball"), .price = 0, - .description = sSportBallDesc, + .description = COMPOUND_STRING("A special Ball used\n" + "in the Bug-Catching\n" + "Contest."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -302,7 +477,8 @@ const struct Item gItems[] = { .name = _("Park Ball"), .price = 0, - .description = sParkBallDesc, + .description = COMPOUND_STRING("A special Ball for\n" + "the Pal Park."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -313,7 +489,8 @@ const struct Item gItems[] = { .name = _("Beast Ball"), .price = 0, - .description = sBeastBallDesc, + .description = COMPOUND_STRING("A Ball designed to\n" + "catch Ultra Beasts."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -324,7 +501,9 @@ const struct Item gItems[] = { .name = _("Cherish Ball"), .price = 0, - .description = sCherishBallDesc, + .description = COMPOUND_STRING("A rare Ball made\n" + "in commemoration\n" + "of some event."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, @@ -338,7 +517,9 @@ const struct Item gItems[] = .name = _("Potion"), .price = 200, .holdEffectParam = 20, - .description = sPotionDesc, + .description = COMPOUND_STRING("Restores the HP of\n" + "a Pokémon by\n" + "20 points."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -351,7 +532,15 @@ const struct Item gItems[] = .name = _("Super Potion"), .price = 700, .holdEffectParam = 60, - .description = sSuperPotionDesc, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("Restores the HP of\n" + "a Pokémon by\n" + "60 points."), + #else + .description = COMPOUND_STRING("Restores the HP of\n" + "a Pokémon by\n" + "50 points."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -364,7 +553,15 @@ const struct Item gItems[] = .name = _("Hyper Potion"), .price = 1500, .holdEffectParam = 120, - .description = sHyperPotionDesc, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("Restores the HP of\n" + "a Pokémon by\n" + "120 points."), + #else + .description = COMPOUND_STRING("Restores the HP of\n" + "a Pokémon by\n" + "200 points."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -377,7 +574,8 @@ const struct Item gItems[] = .name = _("Max Potion"), .price = 2500, .holdEffectParam = 255, - .description = sMaxPotionDesc, + .description = COMPOUND_STRING("Fully restores the\n" + "HP of a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -390,7 +588,9 @@ const struct Item gItems[] = .name = _("Full Restore"), .price = 3000, .holdEffectParam = 255, - .description = sFullRestoreDesc, + .description = COMPOUND_STRING("Fully restores the\n" + "HP and status of a\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -402,7 +602,9 @@ const struct Item gItems[] = { .name = _("Revive"), .price = 2000, - .description = sReviveDesc, + .description = COMPOUND_STRING("Revives a fainted\n" + "Pokémon with half\n" + "its HP."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -427,7 +629,15 @@ const struct Item gItems[] = .name = _("Fresh Water"), .price = 200, .holdEffectParam = 30, - .description = sFreshWaterDesc, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("A mineral water\n" + "that restores HP\n" + "by 30 points."), + #else + .description = COMPOUND_STRING("A mineral water\n" + "that restores HP\n" + "by 50 points."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -440,7 +650,15 @@ const struct Item gItems[] = .name = _("Soda Pop"), .price = 300, .holdEffectParam = 50, - .description = sSodaPopDesc, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("A fizzy soda drink\n" + "that restores HP\n" + "by 50 points."), + #else + .description = COMPOUND_STRING("A fizzy soda drink\n" + "that restores HP\n" + "by 60 points."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -453,7 +671,15 @@ const struct Item gItems[] = .name = _("Lemonade"), .price = 400, .holdEffectParam = 70, - .description = sLemonadeDesc, +#if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("A very sweet drink\n" + "that restores HP\n" + "by 70 points."), +#else + .description = COMPOUND_STRING("A very sweet drink\n" + "that restores HP\n" + "by 80 points."), +#endif .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -466,7 +692,9 @@ const struct Item gItems[] = .name = _("Moomoo Milk"), .price = 600, .holdEffectParam = 100, - .description = sMoomooMilkDesc, + .description = COMPOUND_STRING("A nutritious milk\n" + "that restores HP\n" + "by 100 points."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -478,7 +706,15 @@ const struct Item gItems[] = { .name = _("Energy Powder"), .price = 500, - .description = sEnergyPowderDesc, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("A bitter powder\n" + "that restores HP\n" + "by 60 points."), + #else + .description = COMPOUND_STRING("A bitter powder\n" + "that restores HP\n" + "by 50 points."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -490,7 +726,15 @@ const struct Item gItems[] = { .name = _("Energy Root"), .price = 1200, - .description = sEnergyRootDesc, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("A bitter root\n" + "that restores HP\n" + "by 120 points."), + #else + .description = COMPOUND_STRING("A bitter root\n" + "that restores HP\n" + "by 200 points."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -502,7 +746,9 @@ const struct Item gItems[] = { .name = _("Heal Powder"), .price = 300, - .description = sHealPowderDesc, + .description = COMPOUND_STRING("A bitter powder\n" + "that heals all\n" + "status problems."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -514,7 +760,9 @@ const struct Item gItems[] = { .name = _("Revival Herb"), .price = 2800, - .description = sRevivalHerbDesc, + .description = COMPOUND_STRING("A very bitter herb\n" + "that revives a\n" + "fainted Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -526,7 +774,8 @@ const struct Item gItems[] = { .name = _("Antidote"), .price = 200, - .description = sAntidoteDesc, + .description = COMPOUND_STRING("Heals a poisoned\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -538,7 +787,8 @@ const struct Item gItems[] = { .name = _("Paralyze Heal"), .price = 300, - .description = sParalyzeHealDesc, + .description = COMPOUND_STRING("Heals a paralyzed\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -550,7 +800,8 @@ const struct Item gItems[] = { .name = _("Burn Heal"), .price = 300, - .description = sBurnHealDesc, + .description = COMPOUND_STRING("Heals Pokémon\n" + "of a burn."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -562,7 +813,8 @@ const struct Item gItems[] = { .name = _("Ice Heal"), .price = 100, - .description = sIceHealDesc, + .description = COMPOUND_STRING("Defrosts a frozen\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -574,7 +826,8 @@ const struct Item gItems[] = { .name = _("Awakening"), .price = 100, - .description = sAwakeningDesc, + .description = COMPOUND_STRING("Awakens a sleeping\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -599,7 +852,9 @@ const struct Item gItems[] = .name = _("Ether"), .price = 1200, .holdEffectParam = 10, - .description = sEtherDesc, + .description = COMPOUND_STRING("Restores the PP\n" + "of a selected move\n" + "by 10."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU_MOVES, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, @@ -612,7 +867,9 @@ const struct Item gItems[] = .name = _("Max Ether"), .price = 2000, .holdEffectParam = 255, - .description = sMaxEtherDesc, + .description = COMPOUND_STRING("Fully restores the\n" + "PP of a selected\n" + "move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU_MOVES, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, @@ -625,7 +882,8 @@ const struct Item gItems[] = .name = _("Elixir"), .price = 3000, .holdEffectParam = 10, - .description = sElixirDesc, + .description = COMPOUND_STRING("Restores the PP\n" + "of all moves by 10."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, @@ -638,7 +896,9 @@ const struct Item gItems[] = .name = _("Max Elixir"), .price = 4500, .holdEffectParam = 255, - .description = sMaxElixirDesc, + .description = COMPOUND_STRING("Fully restores the\n" + "PP of a Pokémon's\n" + "moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, @@ -652,7 +912,9 @@ const struct Item gItems[] = .price = 200, .holdEffect = HOLD_EFFECT_RESTORE_HP, .holdEffectParam = 20, - .description = sBerryJuiceDesc, + .description = COMPOUND_STRING("A 100% pure juice\n" + "that restores HP\n" + "by 20 points."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -664,7 +926,9 @@ const struct Item gItems[] = { .name = _("Sacred Ash"), .price = 50000, - .description = sSacredAshDesc, + .description = COMPOUND_STRING("Fully revives and\n" + "restores all\n" + "fainted Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_SacredAsh, @@ -676,7 +940,9 @@ const struct Item gItems[] = .name = _("Sweet Heart"), .price = 3000, .holdEffectParam = 20, - .description = sSweetHeartDesc, + .description = COMPOUND_STRING("A sweet chocolate\n" + "that restores HP\n" + "by 20 points."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -688,7 +954,7 @@ const struct Item gItems[] = { .name = _("Max Honey"), .price = 8000, - .description = sMaxHoneyDesc, + .description = sMaxReviveDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -702,7 +968,7 @@ const struct Item gItems[] = { .name = _("PewtrCrnches"), .price = 250, - .description = sPewterCrunchiesDesc, + .description = sFullHealDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -714,7 +980,7 @@ const struct Item gItems[] = { .name = _("RageCandyBar"), .price = 350, - .description = sRageCandyBarDesc, + .description = sFullHealDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -726,7 +992,9 @@ const struct Item gItems[] = { .name = _("Lava Cookie"), .price = 350, - .description = sLavaCookieDesc, + .description = COMPOUND_STRING("A local specialty\n" + "that heals all\n" + "status problems."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -738,7 +1006,7 @@ const struct Item gItems[] = { .name = _("Old Gateau"), .price = 350, - .description = sOldGateauDesc, + .description = sFullHealDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -750,7 +1018,7 @@ const struct Item gItems[] = { .name = _("Casteliacone"), .price = 350, - .description = sCasteliaconeDesc, + .description = sFullHealDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -762,7 +1030,7 @@ const struct Item gItems[] = { .name = _("LumioseGlete"), .price = 350, - .description = sLumioseGaletteDesc, + .description = sFullHealDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -774,7 +1042,7 @@ const struct Item gItems[] = { .name = _("ShalourSable"), .price = 350, - .description = sShalourSableDesc, + .description = sFullHealDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -786,7 +1054,7 @@ const struct Item gItems[] = { .name = _("Big Malasada"), .price = 350, - .description = sBigMalasadaDesc, + .description = sFullHealDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -800,7 +1068,8 @@ const struct Item gItems[] = { .name = _("HP Up"), .price = 10000, - .description = sHPUpDesc, + .description = COMPOUND_STRING("Raises the base HP\n" + "of one Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -811,7 +1080,9 @@ const struct Item gItems[] = { .name = _("Protein"), .price = 10000, - .description = sProteinDesc, + .description = COMPOUND_STRING("Raises the base\n" + "Attack stat of one\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -822,7 +1093,9 @@ const struct Item gItems[] = { .name = _("Iron"), .price = 10000, - .description = sIronDesc, + .description = COMPOUND_STRING("Raises the base\n" + "Defense stat of\n" + "one Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -833,7 +1106,9 @@ const struct Item gItems[] = { .name = _("Calcium"), .price = 10000, - .description = sCalciumDesc, + .description = COMPOUND_STRING("Raises the base\n" + "Sp. Atk stat of one\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -844,7 +1119,9 @@ const struct Item gItems[] = { .name = _("Zinc"), .price = 10000, - .description = sZincDesc, + .description = COMPOUND_STRING("Raises the base\n" + "Sp. Def stat of one\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -855,7 +1132,9 @@ const struct Item gItems[] = { .name = _("Carbos"), .price = 10000, - .description = sCarbosDesc, + .description = COMPOUND_STRING("Raises the base\n" + "Speed stat of one\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -866,7 +1145,9 @@ const struct Item gItems[] = { .name = _("PP Up"), .price = 10000, - .description = sPPUpDesc, + .description = COMPOUND_STRING("Raises the maximum\n" + "PP of a selected\n" + "move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPUp, @@ -877,7 +1158,9 @@ const struct Item gItems[] = { .name = _("PP Max"), .price = 10000, - .description = sPPMaxDesc, + .description = COMPOUND_STRING("Raises the PP of a\n" + "move to its maximum\n" + "points."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_PPUp, @@ -959,7 +1242,8 @@ const struct Item gItems[] = .name = _("AbilityCapsle"), .price = 10000, .holdEffectParam = 0, - .description = sAbilityCapsuleDesc, + .description = COMPOUND_STRING("Switches a Poké-\n" + "mon's ability."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_AbilityCapsule, @@ -970,7 +1254,9 @@ const struct Item gItems[] = .name = _("AbilityPatch"), .price = 0, .holdEffectParam = 0, - .description = sAbilityPatchDesc, + .description = COMPOUND_STRING("Turns the ability\n" + "of a Pokémon into\n" + "a rare ability."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_AbilityPatch, @@ -982,7 +1268,9 @@ const struct Item gItems[] = { .name = _("Lonely Mint"), .price = 20, - .description = sLonelyMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Attack, but\n" + "reduces Defense."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -993,7 +1281,9 @@ const struct Item gItems[] = { .name = _("Adamant Mint"), .price = 20, - .description = sAdamantMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Attack, but\n" + "reduces Sp. Atk."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1004,7 +1294,9 @@ const struct Item gItems[] = { .name = _("Naughty Mint"), .price = 20, - .description = sNaughtyMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Attack, but\n" + "reduces Sp. Def."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1015,7 +1307,9 @@ const struct Item gItems[] = { .name = _("Brave Mint"), .price = 20, - .description = sBraveMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Attack, but\n" + "reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1026,7 +1320,9 @@ const struct Item gItems[] = { .name = _("Bold Mint"), .price = 20, - .description = sBoldMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Defense, but\n" + "reduces Attack."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1037,7 +1333,9 @@ const struct Item gItems[] = { .name = _("Impish Mint"), .price = 20, - .description = sImpishMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Defense, but\n" + "reduces Sp. Atk."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1048,7 +1346,9 @@ const struct Item gItems[] = { .name = _("Lax Mint"), .price = 20, - .description = sLaxMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Defense, but\n" + "reduces Sp. Def."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1059,7 +1359,9 @@ const struct Item gItems[] = { .name = _("Relaxed Mint"), .price = 20, - .description = sRelaxedMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Defense, but\n" + "reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1070,7 +1372,9 @@ const struct Item gItems[] = { .name = _("Modest Mint"), .price = 20, - .description = sModestMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Atk, but\n" + "reduces Attack."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1081,7 +1385,9 @@ const struct Item gItems[] = { .name = _("Mild Mint"), .price = 20, - .description = sMildMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Atk, but\n" + "reduces Defense."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1092,7 +1398,9 @@ const struct Item gItems[] = { .name = _("Rash Mint"), .price = 20, - .description = sRashMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Atk, but\n" + "reduces Sp. Def."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1103,7 +1411,9 @@ const struct Item gItems[] = { .name = _("Quiet Mint"), .price = 20, - .description = sQuietMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Atk, but\n" + "reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1114,7 +1424,9 @@ const struct Item gItems[] = { .name = _("Calm Mint"), .price = 20, - .description = sCalmMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Def, but\n" + "reduces Attack."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1125,7 +1437,9 @@ const struct Item gItems[] = { .name = _("Gentle Mint"), .price = 20, - .description = sGentleMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Def, but\n" + "reduces Defense."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1136,7 +1450,9 @@ const struct Item gItems[] = { .name = _("Careful Mint"), .price = 20, - .description = sCarefulMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Def, but\n" + "reduces Sp. Atk."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1147,7 +1463,9 @@ const struct Item gItems[] = { .name = _("Sassy Mint"), .price = 20, - .description = sSassyMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Sp. Def, but\n" + "reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1158,7 +1476,9 @@ const struct Item gItems[] = { .name = _("Timid Mint"), .price = 20, - .description = sTimidMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Speed, but\n" + "reduces Attack."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1169,7 +1489,9 @@ const struct Item gItems[] = { .name = _("Hasty Mint"), .price = 20, - .description = sHastyMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Speed, but\n" + "reduces Defense."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1180,7 +1502,9 @@ const struct Item gItems[] = { .name = _("Jolly Mint"), .price = 20, - .description = sJollyMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Speed, but\n" + "reduces Sp. Atk."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1191,7 +1515,9 @@ const struct Item gItems[] = { .name = _("Naive Mint"), .price = 20, - .description = sNaiveMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "ups Speed, but\n" + "reduces Sp. Def."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1202,7 +1528,9 @@ const struct Item gItems[] = { .name = _("Serious Mint"), .price = 20, - .description = sSeriousMintDesc, + .description = COMPOUND_STRING("Can be smelled. It\n" + "makes each stat\n" + "grow equally."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1215,7 +1543,9 @@ const struct Item gItems[] = { .name = _("Rare Candy"), .price = 10000, - .description = sRareCandyDesc, + .description = COMPOUND_STRING("Raises the level\n" + "of a Pokémon by\n" + "one."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, @@ -1227,7 +1557,9 @@ const struct Item gItems[] = .name = _("Exp.Candy XS"), .price = 20, .holdEffectParam = EXP_100, - .description = sExpCandyXSDesc, + .description = COMPOUND_STRING("Gives a very small\n" + "amount of Exp. to\n" + "a single Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, @@ -1239,7 +1571,9 @@ const struct Item gItems[] = .name = _("Exp.Candy S"), .price = 240, .holdEffectParam = EXP_800, - .description = sExpCandySDesc, + .description = COMPOUND_STRING("Gives a small\n" + "amount of Exp. to\n" + "a single Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, @@ -1251,7 +1585,9 @@ const struct Item gItems[] = .name = _("Exp.Candy M"), .price = 1000, .holdEffectParam = EXP_3000, - .description = sExpCandyMDesc, + .description = COMPOUND_STRING("Gives a moderate\n" + "amount of Exp. to\n" + "a single Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, @@ -1263,7 +1599,9 @@ const struct Item gItems[] = .name = _("Exp.Candy L"), .price = 3000, .holdEffectParam = EXP_10000, - .description = sExpCandyLDesc, + .description = COMPOUND_STRING("Gives a large\n" + "amount of Exp. to\n" + "a single Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, @@ -1275,7 +1613,9 @@ const struct Item gItems[] = .name = _("Exp.Candy XL"), .price = 10000, .holdEffectParam = EXP_30000, - .description = sExpCandyXLDesc, + .description = COMPOUND_STRING("Gives a very large\n" + "amount of Exp. to\n" + "a single Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RareCandy, @@ -1286,7 +1626,9 @@ const struct Item gItems[] = { .name = _("DynamaxCandy"), .price = 0, - .description = sDynamaxCandyDesc, + .description = COMPOUND_STRING("Raises the Dynamax\n" + "Level of a single\n" + "Pokémon by one."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -1299,7 +1641,9 @@ const struct Item gItems[] = { .name = _("Blue Flute"), .price = 20, - .description = sBlueFluteDesc, + .description = COMPOUND_STRING("A glass flute that\n" + "awakens sleeping\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -1311,7 +1655,9 @@ const struct Item gItems[] = { .name = _("Yellow Flute"), .price = 20, - .description = sYellowFluteDesc, + .description = COMPOUND_STRING("A glass flute that\n" + "snaps Pokémon\n" + "out of confusion."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1323,7 +1669,9 @@ const struct Item gItems[] = { .name = _("Red Flute"), .price = 20, - .description = sRedFluteDesc, + .description = COMPOUND_STRING("A glass flute that\n" + "snaps Pokémon\n" + "out of attraction."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1338,7 +1686,9 @@ const struct Item gItems[] = .name = _("Black Flute"), .price = 20, .holdEffectParam = 50, - .description = sBlackFluteDesc, + .description = COMPOUND_STRING("A glass flute that\n" + "keeps away wild\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, @@ -1350,7 +1700,8 @@ const struct Item gItems[] = .name = _("White Flute"), .price = 20, .holdEffectParam = 150, - .description = sWhiteFluteDesc, + .description = COMPOUND_STRING("A glass flute that\n" + "lures wild Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, @@ -1364,7 +1715,9 @@ const struct Item gItems[] = .name = _("Repel"), .price = 400, .holdEffectParam = 100, - .description = sRepelDesc, + .description = COMPOUND_STRING("Repels weak wild\n" + "Pokémon for 100\n" + "steps."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Repel, @@ -1376,7 +1729,9 @@ const struct Item gItems[] = .name = _("Super Repel"), .price = 700, .holdEffectParam = 200, - .description = sSuperRepelDesc, + .description = COMPOUND_STRING("Repels weak wild\n" + "Pokémon for 200\n" + "steps."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Repel, @@ -1388,7 +1743,9 @@ const struct Item gItems[] = .name = _("Max Repel"), .price = 900, .holdEffectParam = 250, - .description = sMaxRepelDesc, + .description = COMPOUND_STRING("Repels weak wild\n" + "Pokémon for 250\n" + "steps."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Repel, @@ -1400,7 +1757,9 @@ const struct Item gItems[] = .name = _("Lure"), .price = 400, .holdEffectParam = 100, - .description = sLureDesc, + .description = COMPOUND_STRING("Makes Pokémon more\n" + "likely to appear\n" + "for 100 steps."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Lure, @@ -1413,7 +1772,9 @@ const struct Item gItems[] = .name = _("Super Lure"), .price = 700, .holdEffectParam = 200, - .description = sSuperLureDesc, + .description = COMPOUND_STRING("Makes Pokémon more\n" + "likely to appear\n" + "for 200 steps."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Lure, @@ -1426,7 +1787,9 @@ const struct Item gItems[] = .name = _("Max Lure"), .price = 900, .holdEffectParam = 250, - .description = sMaxLureDesc, + .description = COMPOUND_STRING("Makes Pokémon more\n" + "likely to appear\n" + "for 250 steps."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_Lure, @@ -1437,7 +1800,9 @@ const struct Item gItems[] = [ITEM_ESCAPE_ROPE] = { .name = _("Escape Rope"), - .description = sEscapeRopeDesc, + .description = COMPOUND_STRING("Use to escape\n" + "instantly from a\n" + "cave or a dungeon."), #if I_KEY_ESCAPE_ROPE >= GEN_8 .price = 0, .importance = 1, @@ -1453,14 +1818,20 @@ const struct Item gItems[] = // X Items -#define X_ITEM_STAGES (B_X_ITEMS_BUFF >= GEN_7) ? 2 : 1 - [ITEM_X_ATTACK] = { .name = _("X Attack"), .price = 1000, .holdEffectParam = X_ITEM_STAGES, - .description = sXAttackDesc, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises stat\n" + "Attack during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises the stat\n" + "Attack during one\n" + "battle."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1473,7 +1844,15 @@ const struct Item gItems[] = .name = _("X Defense"), .price = 2000, .holdEffectParam = X_ITEM_STAGES, - .description = sXDefenseDesc, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises stat\n" + "Defense during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises the stat\n" + "Defense during one\n" + "battle."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1486,7 +1865,15 @@ const struct Item gItems[] = .name = _("X Sp. Atk"), .price = 1000, .holdEffectParam = X_ITEM_STAGES, - .description = sXSpAtkDesc, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises stat\n" + "Sp. Atk during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises the stat\n" + "Sp. Atk during one\n" + "battle."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1499,7 +1886,15 @@ const struct Item gItems[] = .name = _("X Sp. Def"), .price = 2000, .holdEffectParam = X_ITEM_STAGES, - .description = sXSpDefDesc, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises stat\n" + "Sp. Def during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises the stat\n" + "Sp. Def during one\n" + "battle."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1512,7 +1907,15 @@ const struct Item gItems[] = .name = _("X Speed"), .price = 1000, .holdEffectParam = X_ITEM_STAGES, - .description = sXSpeedDesc, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises stat\n" + "Speed during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises the stat\n" + "Speed during one\n" + "battle."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1525,7 +1928,15 @@ const struct Item gItems[] = .name = _("X Accuracy"), .price = 1000, .holdEffectParam = X_ITEM_STAGES, - .description = sXAccuracyDesc, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises move\n" + "accuracy during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises accuracy\n" + "of attack moves\n" + "during one battle."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1537,7 +1948,9 @@ const struct Item gItems[] = { .name = _("Dire Hit"), .price = 1000, - .description = sDireHitDesc, + .description = COMPOUND_STRING("Raises the\n" + "critical-hit ratio\n" + "during one battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1549,7 +1962,9 @@ const struct Item gItems[] = { .name = _("Guard Spec."), .price = 1500, - .description = sGuardSpecDesc, + .description = COMPOUND_STRING("Prevents stat\n" + "reduction when\n" + "used in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1573,7 +1988,7 @@ const struct Item gItems[] = { .name = _("Fluffy Tail"), .price = 100, - .description = sFluffyTailDesc, + .description = sPokeDollDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1585,7 +2000,7 @@ const struct Item gItems[] = { .name = _("Poké Toy"), .price = 100, - .description = sPokeToyDesc, + .description = sPokeDollDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1597,7 +2012,9 @@ const struct Item gItems[] = { .name = _("MaxMushrooms"), .price = 8000, - .description = sMaxMushroomsDesc, + .description = COMPOUND_STRING("Raises every stat\n" + "during one battle\n" + "by one stage."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1605,15 +2022,15 @@ const struct Item gItems[] = .flingPower = 30, }, -#undef X_ITEM_STAGES - // Treasures [ITEM_BOTTLE_CAP] = { .name = _("Bottle Cap"), .price = 5000, - .description = sBottleCapDesc, + .description = COMPOUND_STRING("A beautiful bottle\n" + "cap that gives off\n" + "a silver gleam."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1624,7 +2041,9 @@ const struct Item gItems[] = { .name = _("GoldBottlCap"), .price = 10000, - .description = sGoldBottleCapDesc, + .description = COMPOUND_STRING("A beautiful bottle\n" + "cap that gives off\n" + "a golden gleam."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1635,7 +2054,9 @@ const struct Item gItems[] = { .name = _("Nugget"), .price = 10000, - .description = sNuggetDesc, + .description = COMPOUND_STRING("A nugget of pure\n" + "gold. Can be sold at\n" + "a high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1646,7 +2067,9 @@ const struct Item gItems[] = { .name = _("Big Nugget"), .price = 40000, - .description = sBigNuggetDesc, + .description = COMPOUND_STRING("A big nugget made\n" + "of gold, sellable\n" + "at a high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1657,7 +2080,9 @@ const struct Item gItems[] = { .name = _("Tiny Mushroom"), .price = 500, - .description = sTinyMushroomDesc, + .description = COMPOUND_STRING("A plain mushroom\n" + "that would sell\n" + "at a cheap price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1679,7 +2104,7 @@ const struct Item gItems[] = { .name = _("Balm Mushroom"), .price = 15000, - .description = sBalmMushroomDesc, + .description = sBigMushroomDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1690,7 +2115,9 @@ const struct Item gItems[] = { .name = _("Pearl"), .price = 2000, - .description = sPearlDesc, + .description = COMPOUND_STRING("A pretty pearl\n" + "that would sell at a\n" + "cheap price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1701,7 +2128,9 @@ const struct Item gItems[] = { .name = _("Big Pearl"), .price = 8000, - .description = sBigPearlDesc, + .description = COMPOUND_STRING("A lovely large pearl\n" + "that would sell at a\n" + "high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1712,7 +2141,9 @@ const struct Item gItems[] = { .name = _("Pearl String"), .price = 20000, - .description = sPearlStringDesc, + .description = COMPOUND_STRING("Very large pearls\n" + "that would sell at a\n" + "high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1723,7 +2154,9 @@ const struct Item gItems[] = { .name = _("Stardust"), .price = 3000, - .description = sStardustDesc, + .description = COMPOUND_STRING("Beautiful red sand.\n" + "Can be sold at a\n" + "high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1734,7 +2167,9 @@ const struct Item gItems[] = { .name = _("Star Piece"), .price = 12000, - .description = sStarPieceDesc, + .description = COMPOUND_STRING("A red gem shard.\n" + "It would sell for a\n" + "very high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1745,7 +2180,9 @@ const struct Item gItems[] = { .name = _("Comet Shard"), .price = 25000, - .description = sCometShardDesc, + .description = COMPOUND_STRING("A comet's shard.\n" + "It would sell for a\n" + "high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1756,7 +2193,9 @@ const struct Item gItems[] = { .name = _("Shoal Salt"), .price = 20, - .description = sShoalSaltDesc, + .description = COMPOUND_STRING("Salt obtained from\n" + "deep inside the\n" + "Shoal Cave."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1767,7 +2206,9 @@ const struct Item gItems[] = { .name = _("Shoal Shell"), .price = 20, - .description = sShoalShellDesc, + .description = COMPOUND_STRING("A seashell found\n" + "deep inside the\n" + "Shoal Cave."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1778,7 +2219,7 @@ const struct Item gItems[] = { .name = _("Red Shard"), .price = 1000, - .description = sRedShardDesc, + .description = sShardsDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1789,7 +2230,7 @@ const struct Item gItems[] = { .name = _("Blue Shard"), .price = 1000, - .description = sBlueShardDesc, + .description = sShardsDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1800,7 +2241,7 @@ const struct Item gItems[] = { .name = _("Yellow Shard"), .price = 1000, - .description = sYellowShardDesc, + .description = sShardsDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1811,7 +2252,7 @@ const struct Item gItems[] = { .name = _("Green Shard"), .price = 1000, - .description = sGreenShardDesc, + .description = sShardsDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1822,7 +2263,9 @@ const struct Item gItems[] = { .name = _("Heart Scale"), .price = 100, - .description = sHeartScaleDesc, + .description = COMPOUND_STRING("A lovely scale.\n" + "It is coveted by\n" + "collectors."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1833,7 +2276,9 @@ const struct Item gItems[] = { .name = _("Honey"), .price = 300, - .description = sHoneyDesc, + .description = COMPOUND_STRING("Sweet honey that\n" + "attracts wild\n" + "Pokémon when used."), .pocket = POCKET_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_Honey, @@ -1844,7 +2289,9 @@ const struct Item gItems[] = { .name = _("Rare Bone"), .price = 5000, - .description = sRareBoneDesc, + .description = COMPOUND_STRING("A very rare bone.\n" + "It can be sold at\n" + "a high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1855,7 +2302,9 @@ const struct Item gItems[] = { .name = _("Odd Keystone"), .price = 2100, - .description = sOddKeystoneDesc, + .description = COMPOUND_STRING("Voices can be heard\n" + "from this odd stone\n" + "occasionally."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1866,7 +2315,9 @@ const struct Item gItems[] = { .name = _("PrettyFeather"), .price = 1000, - .description = sPrettyFeatherDesc, + .description = COMPOUND_STRING("A beautiful yet\n" + "plain feather that\n" + "does nothing."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1877,7 +2328,9 @@ const struct Item gItems[] = { .name = _("Relic Copper"), .price = 0, - .description = sRelicCopperDesc, + .description = COMPOUND_STRING("A copper coin used\n" + "long ago. It sells\n" + "at a high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1888,7 +2341,9 @@ const struct Item gItems[] = { .name = _("Relic Silver"), .price = 0, - .description = sRelicSilverDesc, + .description = COMPOUND_STRING("A silver coin used\n" + "long ago. It sells\n" + "at a high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1899,7 +2354,9 @@ const struct Item gItems[] = { .name = _("Relic Gold"), .price = 0, - .description = sRelicGoldDesc, + .description = COMPOUND_STRING("A gold coin used\n" + "long ago. It sells\n" + "at a high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1910,7 +2367,9 @@ const struct Item gItems[] = { .name = _("Relic Vase"), .price = 0, - .description = sRelicVaseDesc, + .description = COMPOUND_STRING("A vase made long\n" + "ago. It sells at\n" + "a high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1921,7 +2380,9 @@ const struct Item gItems[] = { .name = _("Relic Band"), .price = 0, - .description = sRelicBandDesc, + .description = COMPOUND_STRING("An old bracelet.\n" + "It sells at a\n" + "high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1932,7 +2393,9 @@ const struct Item gItems[] = { .name = _("Relic Statue"), .price = 0, - .description = sRelicStatueDesc, + .description = COMPOUND_STRING("An old statue.\n" + "It sells at a\n" + "high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1943,7 +2406,9 @@ const struct Item gItems[] = { .name = _("Relic Crown"), .price = 0, - .description = sRelicCrownDesc, + .description = COMPOUND_STRING("An old crown.\n" + "It sells at a\n" + "high price."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1954,7 +2419,9 @@ const struct Item gItems[] = { .name = _("StrngeSouvnr"), .price = 3000, - .description = sStrangeSouvenirDesc, + .description = COMPOUND_STRING("An ornament that\n" + "depicts a Pokémon\n" + "from Alola."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -1966,7 +2433,9 @@ const struct Item gItems[] = [ITEM_HELIX_FOSSIL] = { .name = _("Helix Fossil"), - .description = sHelixFossilDesc, + .description = COMPOUND_STRING("A piece of an\n" + "ancient marine\n" + "Pokémon's seashell."), #if I_KEY_FOSSILS >= GEN_4 .price = 7000, .pocket = POCKET_ITEMS, @@ -1983,7 +2452,9 @@ const struct Item gItems[] = [ITEM_DOME_FOSSIL] = { .name = _("Dome Fossil"), - .description = sDomeFossilDesc, + .description = COMPOUND_STRING("A piece of an\n" + "ancient marine\n" + "Pokémon's shell."), #if I_KEY_FOSSILS >= GEN_4 .price = 7000, .pocket = POCKET_ITEMS, @@ -2000,7 +2471,9 @@ const struct Item gItems[] = [ITEM_OLD_AMBER] = { .name = _("Old Amber"), - .description = sOldAmberDesc, + .description = COMPOUND_STRING("A stone containing\n" + "the genes of an\n" + "ancient Pokémon."), #if I_KEY_FOSSILS >= GEN_4 .price = 10000, .pocket = POCKET_ITEMS, @@ -2034,7 +2507,7 @@ const struct Item gItems[] = [ITEM_CLAW_FOSSIL] = { .name = _("Claw Fossil"), - .description = sClawFossilDesc, + .description = sRootFossilDesc, #if I_KEY_FOSSILS >= GEN_4 .price = 7000, .pocket = POCKET_ITEMS, @@ -2052,7 +2525,9 @@ const struct Item gItems[] = { .name = _("Armor Fossil"), .price = 7000, - .description = sArmorFossilDesc, + .description = COMPOUND_STRING("A piece of a\n" + "prehistoric Poké-\n" + "mon's head."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2063,7 +2538,9 @@ const struct Item gItems[] = { .name = _("Skull Fossil"), .price = 7000, - .description = sSkullFossilDesc, + .description = COMPOUND_STRING("A piece of a\n" + "prehistoric Poké-\n" + "mon's collar."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2074,7 +2551,9 @@ const struct Item gItems[] = { .name = _("Cover Fossil"), .price = 7000, - .description = sCoverFossilDesc, + .description = COMPOUND_STRING("A piece of a\n" + "prehistoric Poké-\n" + "mon's back."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2085,7 +2564,9 @@ const struct Item gItems[] = { .name = _("Plume Fossil"), .price = 7000, - .description = sPlumeFossilDesc, + .description = COMPOUND_STRING("A piece of a\n" + "prehistoric Poké-\n" + "mon's wing."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2096,7 +2577,9 @@ const struct Item gItems[] = { .name = _("Jaw Fossil"), .price = 7000, - .description = sJawFossilDesc, + .description = COMPOUND_STRING("A piece of a prehis-\n" + "toric Pokémon's\n" + "large jaw."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2107,7 +2590,9 @@ const struct Item gItems[] = { .name = _("Sail Fossil"), .price = 7000, - .description = sSailFossilDesc, + .description = COMPOUND_STRING("A piece of a prehis-\n" + "toric Pokémon's\n" + "skin sail."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2118,7 +2603,9 @@ const struct Item gItems[] = { .name = _("FosslzedBird"), .price = 5000, - .description = sFossilizedBirdDesc, + .description = COMPOUND_STRING("A fossil of an\n" + "ancient, sky-\n" + "soaring Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2140,7 +2627,9 @@ const struct Item gItems[] = { .name = _("FosslzedDrke"), .price = 5000, - .description = sFossilizedDrakeDesc, + .description = COMPOUND_STRING("A fossil of an\n" + "ancient, land-\n" + "roaming Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2151,7 +2640,7 @@ const struct Item gItems[] = { .name = _("FosslzedDino"), .price = 5000, - .description = sFossilizedDinoDesc, + .description = sFossilizedFishDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2164,7 +2653,9 @@ const struct Item gItems[] = { .name = _("Growth Mulch"), .price = 200, - .description = sGrowthMulchDesc, + .description = COMPOUND_STRING("A fertilizer that\n" + "accelerates the\n" + "growth of Berries."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2175,7 +2666,9 @@ const struct Item gItems[] = { .name = _("Damp Mulch"), .price = 200, - .description = sDampMulchDesc, + .description = COMPOUND_STRING("A fertilizer that\n" + "decelerates the\n" + "growth of Berries."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2186,7 +2679,9 @@ const struct Item gItems[] = { .name = _("Stable Mulch"), .price = 200, - .description = sStableMulchDesc, + .description = COMPOUND_STRING("A fertilizer that\n" + "ups the life time\n" + "of Berry trees."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2197,7 +2692,9 @@ const struct Item gItems[] = { .name = _("Gooey Mulch"), .price = 200, - .description = sGooeyMulchDesc, + .description = COMPOUND_STRING("A fertilizer that\n" + "makes more Berries\n" + "regrow after fall."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2208,7 +2705,9 @@ const struct Item gItems[] = { .name = _("Rich Mulch"), .price = 200, - .description = sRichMulchDesc, + .description = COMPOUND_STRING("A fertilizer that\n" + "ups the number of\n" + "Berries harvested."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2219,7 +2718,9 @@ const struct Item gItems[] = { .name = _("SurprseMulch"), .price = 200, - .description = sSurpriseMulchDesc, + .description = COMPOUND_STRING("A fertilizer that\n" + "ups the chance of\n" + "Berry mutations."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2230,7 +2731,9 @@ const struct Item gItems[] = { .name = _("Boost Mulch"), .price = 200, - .description = sBoostMulchDesc, + .description = COMPOUND_STRING("A fertilizer that\n" + "ups the dry speed\n" + "of soft soil."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2241,7 +2744,9 @@ const struct Item gItems[] = { .name = _("Amaze Mulch"), .price = 200, - .description = sAmazeMulchDesc, + .description = COMPOUND_STRING("A fertilizer Rich\n" + "Surprising and\n" + "Boosting as well."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2254,7 +2759,9 @@ const struct Item gItems[] = { .name = _("Red Apricorn"), .price = 200, - .description = sRedApricornDesc, + .description = COMPOUND_STRING("A red apricorn.\n" + "It assails your\n" + "nostrils."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2264,7 +2771,9 @@ const struct Item gItems[] = { .name = _("Blue Apricorn"), .price = 200, - .description = sBlueApricornDesc, + .description = COMPOUND_STRING("A blue apricorn.\n" + "It smells a bit\n" + "like grass."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2274,7 +2783,9 @@ const struct Item gItems[] = { .name = _("YellwApricorn"), .price = 200, - .description = sYellowApricornDesc, + .description = COMPOUND_STRING("A yellow apricorn.\n" + "It has an invigor-\n" + "ating scent."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2284,7 +2795,9 @@ const struct Item gItems[] = { .name = _("GreenApricorn"), .price = 200, - .description = sGreenApricornDesc, + .description = COMPOUND_STRING("A green apricorn.\n" + "It has a strange,\n" + "aromatic scent."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2294,7 +2807,9 @@ const struct Item gItems[] = { .name = _("Pink Apricorn"), .price = 200, - .description = sPinkApricornDesc, + .description = COMPOUND_STRING("A pink apricorn.\n" + "It has a nice,\n" + "sweet scent."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2304,7 +2819,9 @@ const struct Item gItems[] = { .name = _("WhiteApricorn"), .price = 200, - .description = sWhiteApricornDesc, + .description = COMPOUND_STRING("A white apricorn.\n" + "It doesn't smell\n" + "like anything."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2314,7 +2831,9 @@ const struct Item gItems[] = { .name = _("BlackApricorn"), .price = 200, - .description = sBlackApricornDesc, + .description = COMPOUND_STRING("A black apricorn.\n" + "It has an inde-\n" + "scribable scent."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2324,7 +2843,9 @@ const struct Item gItems[] = { .name = _("WishingPiece"), .price = 20, - .description = sWishingPieceDesc, + .description = COMPOUND_STRING("Throw into a\n" + "{PKMN} Den to attract\n" + "Dynamax Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo @@ -2335,7 +2856,9 @@ const struct Item gItems[] = { .name = _("GalaricaTwig"), .price = 40, - .description = sGalaricaTwigDesc, + .description = COMPOUND_STRING("A twig from a tree\n" + "in Galar called\n" + "Galarica."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2346,7 +2869,9 @@ const struct Item gItems[] = { .name = _("Armorite Ore"), .price = 40, - .description = sArmoriteOreDesc, + .description = COMPOUND_STRING("A rare ore. Can be\n" + "found in the Isle\n" + "of Armor at Galar."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2357,7 +2882,9 @@ const struct Item gItems[] = { .name = _("Dynite Ore"), .price = 20, - .description = sDyniteOreDesc, + .description = COMPOUND_STRING("A mysterious ore.\n" + "It can be found in\n" + "Galar's Max Lair."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2370,7 +2897,9 @@ const struct Item gItems[] = { .name = _("Orange Mail"), .price = 50, - .description = sOrangeMailDesc, + .description = COMPOUND_STRING("A Zigzagoon-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2381,7 +2910,9 @@ const struct Item gItems[] = { .name = _("Harbor Mail"), .price = 50, - .description = sHarborMailDesc, + .description = COMPOUND_STRING("A Wingull-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2392,7 +2923,9 @@ const struct Item gItems[] = { .name = _("Glitter Mail"), .price = 50, - .description = sGlitterMailDesc, + .description = COMPOUND_STRING("A Pikachu-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2403,7 +2936,9 @@ const struct Item gItems[] = { .name = _("Mech Mail"), .price = 50, - .description = sMechMailDesc, + .description = COMPOUND_STRING("A Magnemite-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2414,7 +2949,9 @@ const struct Item gItems[] = { .name = _("Wood Mail"), .price = 50, - .description = sWoodMailDesc, + .description = COMPOUND_STRING("A Slakoth-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2425,7 +2962,9 @@ const struct Item gItems[] = { .name = _("Wave Mail"), .price = 50, - .description = sWaveMailDesc, + .description = COMPOUND_STRING("A Wailmer-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2447,7 +2986,9 @@ const struct Item gItems[] = { .name = _("Shadow Mail"), .price = 50, - .description = sShadowMailDesc, + .description = COMPOUND_STRING("A Duskull-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2458,7 +2999,9 @@ const struct Item gItems[] = { .name = _("Tropic Mail"), .price = 50, - .description = sTropicMailDesc, + .description = COMPOUND_STRING("A Bellossom-print\n" + "Mail to be held by\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2469,7 +3012,7 @@ const struct Item gItems[] = { .name = _("Dream Mail"), .price = 50, - .description = sDreamMailDesc, + .description = sBeadMailDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2480,7 +3023,9 @@ const struct Item gItems[] = { .name = _("Fab Mail"), .price = 50, - .description = sFabMailDesc, + .description = COMPOUND_STRING("A gorgeous-print\n" + "Mail to be held\n" + "by a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2491,7 +3036,9 @@ const struct Item gItems[] = { .name = _("Retro Mail"), .price = 50, - .description = sRetroMailDesc, + .description = COMPOUND_STRING("Mail featuring the\n" + "drawings of three\n" + "Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_MAIL, .fieldUseFunc = ItemUseOutOfBattle_Mail, @@ -2504,7 +3051,7 @@ const struct Item gItems[] = { .name = _("Fire Stone"), .price = 3000, - .description = sFireStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2515,7 +3062,7 @@ const struct Item gItems[] = { .name = _("Water Stone"), .price = 3000, - .description = sWaterStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2526,7 +3073,7 @@ const struct Item gItems[] = { .name = _("Thunder Stone"), .price = 3000, - .description = sThunderStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2537,7 +3084,7 @@ const struct Item gItems[] = { .name = _("Leaf Stone"), .price = 3000, - .description = sLeafStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2548,7 +3095,7 @@ const struct Item gItems[] = { .name = _("Ice Stone"), .price = 3000, - .description = sIceStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2559,7 +3106,7 @@ const struct Item gItems[] = { .name = _("Sun Stone"), .price = 3000, - .description = sSunStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2570,7 +3117,7 @@ const struct Item gItems[] = { .name = _("Moon Stone"), .price = 3000, - .description = sMoonStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2581,7 +3128,7 @@ const struct Item gItems[] = { .name = _("Shiny Stone"), .price = 3000, - .description = sShinyStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2592,7 +3139,7 @@ const struct Item gItems[] = { .name = _("Dusk Stone"), .price = 3000, - .description = sDuskStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2603,7 +3150,7 @@ const struct Item gItems[] = { .name = _("Dawn Stone"), .price = 3000, - .description = sDawnStoneDesc, + .description = sEvolutionStoneDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2614,7 +3161,9 @@ const struct Item gItems[] = { .name = _("Sweet Apple"), .price = 2200, - .description = sSweetAppleDesc, + .description = COMPOUND_STRING("A very sweet apple\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2625,7 +3174,9 @@ const struct Item gItems[] = { .name = _("Tart Apple"), .price = 2200, - .description = sTartAppleDesc, + .description = COMPOUND_STRING("A very tart apple\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2636,7 +3187,9 @@ const struct Item gItems[] = { .name = _("Cracked Pot"), .price = 1600, - .description = sCrackedPotDesc, + .description = COMPOUND_STRING("A cracked teapot\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2647,7 +3200,9 @@ const struct Item gItems[] = { .name = _("Chipped Pot"), .price = 38000, - .description = sChippedPotDesc, + .description = COMPOUND_STRING("A chipped teapot\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2658,7 +3213,9 @@ const struct Item gItems[] = { .name = _("GalaricaCuff"), .price = 6000, - .description = sGalaricaCuffDesc, + .description = COMPOUND_STRING("A cuff from Galar\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2669,7 +3226,9 @@ const struct Item gItems[] = { .name = _("GalrcaWreath"), .price = 6000, - .description = sGalaricaWreathDesc, + .description = COMPOUND_STRING("A wreath made in\n" + "Galar. Makes some\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -2682,7 +3241,9 @@ const struct Item gItems[] = .price = 2000, .holdEffect = HOLD_EFFECT_DRAGON_SCALE, .holdEffectParam = 10, - .description = sDragonScaleDesc, + .description = COMPOUND_STRING("A strange scale\n" + "held by Dragon-\n" + "type Pokémon."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2694,7 +3255,8 @@ const struct Item gItems[] = .name = _("Upgrade"), .price = 2000, .holdEffect = HOLD_EFFECT_UPGRADE, - .description = sUpgradeDesc, + .description = COMPOUND_STRING("A peculiar box made\n" + "by Silph Co."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2705,7 +3267,9 @@ const struct Item gItems[] = { .name = _("Protector"), .price = 2000, - .description = sProtectorDesc, + .description = COMPOUND_STRING("Loved by a certain\n" + "Pokémon. It's stiff\n" + "and heavy."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2716,7 +3280,9 @@ const struct Item gItems[] = { .name = _("Electirizer"), .price = 2000, - .description = sElectirizerDesc, + .description = COMPOUND_STRING("Loved by a certain\n" + "Pokémon. It's full\n" + "of electric energy."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2727,7 +3293,9 @@ const struct Item gItems[] = { .name = _("Magmarizer"), .price = 2000, - .description = sMagmarizerDesc, + .description = COMPOUND_STRING("Loved by a certain\n" + "Pokémon. It's full\n" + "of magma energy."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2738,7 +3306,9 @@ const struct Item gItems[] = { .name = _("Dubious Disc"), .price = 2000, - .description = sDubiousDiscDesc, + .description = COMPOUND_STRING("A transparent device\n" + "overflowing with\n" + "dubious data."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2749,7 +3319,9 @@ const struct Item gItems[] = { .name = _("Reaper Cloth"), .price = 2000, - .description = sReaperClothDesc, + .description = COMPOUND_STRING("Loved by a certain\n" + "Pokémon. Imbued with\n" + "spiritual energy."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2760,7 +3332,9 @@ const struct Item gItems[] = { .name = _("Prism Scale"), .price = 2000, - .description = sPrismScaleDesc, + .description = COMPOUND_STRING("A mysterious scale\n" + "that evolves certain\n" + "Pokémon. It shines."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2771,7 +3345,9 @@ const struct Item gItems[] = { .name = _("Whipped Dream"), .price = 2000, - .description = sWhippedDreamDesc, + .description = COMPOUND_STRING("A soft and sweet\n" + "treat loved by\n" + "a certain Pokémon."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2782,7 +3358,9 @@ const struct Item gItems[] = { .name = _("Sachet"), .price = 2000, - .description = sSachetDesc, + .description = COMPOUND_STRING("A sachet filled with\n" + "perfumes loved by\n" + "a certain Pokémon."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2793,7 +3371,9 @@ const struct Item gItems[] = { .name = _("Oval Stone"), .price = 2000, - .description = sOvalStoneDesc, + .description = COMPOUND_STRING("Makes a certain\n" + "Pokémon evolve. It's\n" + "shaped like an egg."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -2804,7 +3384,9 @@ const struct Item gItems[] = { .name = _("StrwbrySweet"), .price = 500, - .description = sStrawberrySweetDesc, + .description = COMPOUND_STRING("Strawberry-shaped\n" + "sweet loved by\n" + "Milcery."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2815,7 +3397,9 @@ const struct Item gItems[] = { .name = _("Love Sweet"), .price = 500, - .description = sLoveSweetDesc, + .description = COMPOUND_STRING("A heart-shaped\n" + "sweet loved by\n" + "Milcery."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2826,7 +3410,9 @@ const struct Item gItems[] = { .name = _("Berry Sweet"), .price = 500, - .description = sBerrySweetDesc, + .description = COMPOUND_STRING("A berry-shaped\n" + "sweet loved by\n" + "Milcery."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2837,7 +3423,9 @@ const struct Item gItems[] = { .name = _("Clover Sweet"), .price = 500, - .description = sCloverSweetDesc, + .description = COMPOUND_STRING("A clover-shaped\n" + "sweet loved by\n" + "Milcery."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2848,7 +3436,9 @@ const struct Item gItems[] = { .name = _("Flower Sweet"), .price = 500, - .description = sFlowerSweetDesc, + .description = COMPOUND_STRING("A flower-shaped\n" + "sweet loved by\n" + "Milcery."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2859,7 +3449,9 @@ const struct Item gItems[] = { .name = _("Star Sweet"), .price = 500, - .description = sStarSweetDesc, + .description = COMPOUND_STRING("A star-shaped\n" + "sweet loved by\n" + "Milcery."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2870,7 +3462,9 @@ const struct Item gItems[] = { .name = _("Ribbon Sweet"), .price = 500, - .description = sRibbonSweetDesc, + .description = COMPOUND_STRING("A ribbon-shaped\n" + "sweet loved by\n" + "Milcery."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2882,7 +3476,9 @@ const struct Item gItems[] = .name = _("Everstone"), .price = 3000, .holdEffect = HOLD_EFFECT_PREVENT_EVOLVE, - .description = sEverstoneDesc, + .description = COMPOUND_STRING("A wondrous hold\n" + "item that prevents\n" + "evolution."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2896,7 +3492,7 @@ const struct Item gItems[] = .name = _("Red Nectar"), .price = 300, .holdEffectParam = 0, - .description = sRedNectarDesc, + .description = sNectarDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, @@ -2908,7 +3504,7 @@ const struct Item gItems[] = .name = _("Yellow Nectar"), .price = 300, .holdEffectParam = 0, - .description = sYellowNectarDesc, + .description = sNectarDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, @@ -2920,7 +3516,7 @@ const struct Item gItems[] = .name = _("Pink Nectar"), .price = 300, .holdEffectParam = 0, - .description = sPinkNectarDesc, + .description = sNectarDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, @@ -2932,7 +3528,7 @@ const struct Item gItems[] = .name = _("Purple Nectar"), .price = 300, .holdEffectParam = 0, - .description = sPurpleNectarDesc, + .description = sNectarDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, @@ -2947,7 +3543,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sFlamePlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Fire-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2961,7 +3559,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sSplashPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Water-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2975,7 +3575,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sZapPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of Elec-\n" + "tric-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2989,7 +3591,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sMeadowPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Grass-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3003,7 +3607,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sIciclePlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Ice-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3017,7 +3623,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sFistPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of Fight-\n" + "ing-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3031,7 +3639,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sToxicPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Poison-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3045,7 +3655,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sEarthPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Ground-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3059,7 +3671,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sSkyPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Flying-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3073,7 +3687,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sMindPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of Psy\n" + "chic-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3087,7 +3703,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sInsectPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Bug-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3101,7 +3719,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sStonePlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Rock-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3115,7 +3735,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sSpookyPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Ghost-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3129,7 +3751,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sDracoPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Dragon-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3143,7 +3767,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sDreadPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Dark-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3157,7 +3783,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sIronPlateDesc, + .description = COMPOUND_STRING("A tablet that ups\n" + "the power of\n" + "Steel-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3171,7 +3799,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, - .description = sPixiePlateDesc, + .description = COMPOUND_STRING("A stone tablet that\n" + "boosts the power of\n" + "Fairy-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3186,7 +3816,9 @@ const struct Item gItems[] = .name = _("Douse Drive"), .price = 0, .holdEffect = HOLD_EFFECT_DRIVE, - .description = sDouseDriveDesc, + .description = COMPOUND_STRING("Changes Genesect's\n" + "Techno Blast to\n" + "Water-type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3199,7 +3831,9 @@ const struct Item gItems[] = .name = _("Shock Drive"), .price = 0, .holdEffect = HOLD_EFFECT_DRIVE, - .description = sShockDriveDesc, + .description = COMPOUND_STRING("Changes Genesect's\n" + "Techno Blast to\n" + "Electric-type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3212,7 +3846,9 @@ const struct Item gItems[] = .name = _("Burn Drive"), .price = 0, .holdEffect = HOLD_EFFECT_DRIVE, - .description = sBurnDriveDesc, + .description = COMPOUND_STRING("Changes Genesect's\n" + "Techno Blast to\n" + "Fire-type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3225,7 +3861,9 @@ const struct Item gItems[] = .name = _("Chill Drive"), .price = 0, .holdEffect = HOLD_EFFECT_DRIVE, - .description = sChillDriveDesc, + .description = COMPOUND_STRING("Changes Genesect's\n" + "Techno Blast to\n" + "Ice-type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3241,7 +3879,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sFireMemoryDesc, + .description = COMPOUND_STRING("A disc with Fire\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3255,7 +3895,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sWaterMemoryDesc, + .description = COMPOUND_STRING("A disc with Water\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3269,7 +3911,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sElectricMemoryDesc, + .description = COMPOUND_STRING("A disc with Electric\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3283,7 +3927,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sGrassMemoryDesc, + .description = COMPOUND_STRING("A disc with Grass\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3297,7 +3943,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sIceMemoryDesc, + .description = COMPOUND_STRING("A disc with Ice\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3311,7 +3959,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sFightingMemoryDesc, + .description = COMPOUND_STRING("A disc with Fighting\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3325,7 +3975,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sPoisonMemoryDesc, + .description = COMPOUND_STRING("A disc with Poison\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3339,7 +3991,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sGroundMemoryDesc, + .description = COMPOUND_STRING("A disc with Ground\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3353,7 +4007,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sFlyingMemoryDesc, + .description = COMPOUND_STRING("A disc with Flying\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3367,7 +4023,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sPsychicMemoryDesc, + .description = COMPOUND_STRING("A disc with Psychic\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3381,7 +4039,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sBugMemoryDesc, + .description = COMPOUND_STRING("A disc with Bug\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3395,7 +4055,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sRockMemoryDesc, + .description = COMPOUND_STRING("A disc with Rock\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3409,7 +4071,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sGhostMemoryDesc, + .description = COMPOUND_STRING("A disc with Ghost\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3423,7 +4087,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sDragonMemoryDesc, + .description = COMPOUND_STRING("A disc with Dragon\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3437,7 +4103,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sDarkMemoryDesc, + .description = COMPOUND_STRING("A disc with Dark\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3451,7 +4119,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sSteelMemoryDesc, + .description = COMPOUND_STRING("A disc with Steel\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3465,7 +4135,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, - .description = sFairyMemoryDesc, + .description = COMPOUND_STRING("A disc with Fairy\n" + "type data. It swaps\n" + "Silvally's type."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3477,7 +4149,9 @@ const struct Item gItems[] = { .name = _("RustedSword"), .price = 0, - .description = sRustedSwordDesc, + .description = COMPOUND_STRING("A rusty sword. A\n" + "hero used it to\n" + "halt a disaster."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3487,7 +4161,9 @@ const struct Item gItems[] = { .name = _("RustedShield"), .price = 0, - .description = sRustedShieldDesc, + .description = COMPOUND_STRING("A rusty shield. A\n" + "hero used it to\n" + "halt a disaster."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3500,7 +4176,9 @@ const struct Item gItems[] = .name = _("Red Orb"), .price = 0, .holdEffect = HOLD_EFFECT_PRIMAL_ORB, - .description = sRedOrbDesc, + .description = COMPOUND_STRING("A red, glowing orb\n" + "said to contain an\n" + "ancient power."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3511,7 +4189,9 @@ const struct Item gItems[] = .name = _("Blue Orb"), .price = 0, .holdEffect = HOLD_EFFECT_PRIMAL_ORB, - .description = sBlueOrbDesc, + .description = COMPOUND_STRING("A blue, glowing orb\n" + "said to contain an\n" + "ancient power."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3524,7 +4204,9 @@ const struct Item gItems[] = .name = _("Venusaurite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sVenusauriteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Venusaur to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3560,7 +4242,9 @@ const struct Item gItems[] = .name = _("Blastoisinite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sBlastoisiniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Blastoise to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3572,7 +4256,9 @@ const struct Item gItems[] = .name = _("Beedrillite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sBeedrilliteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Beedrill to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3584,7 +4270,9 @@ const struct Item gItems[] = .name = _("Pidgeotite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sPidgeotiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Pidgeot to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3596,7 +4284,9 @@ const struct Item gItems[] = .name = _("Alakazite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAlakaziteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Alakazam to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3608,7 +4298,9 @@ const struct Item gItems[] = .name = _("Slowbronite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sSlowbroniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Slowbro to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3620,7 +4312,9 @@ const struct Item gItems[] = .name = _("Gengarite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sGengariteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Gengar to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3632,7 +4326,9 @@ const struct Item gItems[] = .name = _("Kangaskhanite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sKangaskhaniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Kangaskhan to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3644,7 +4340,9 @@ const struct Item gItems[] = .name = _("Pinsirite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sPinsiriteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Pinsir to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3656,7 +4354,9 @@ const struct Item gItems[] = .name = _("Gyaradosite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sGyaradositeDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Gyarados to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3668,7 +4368,9 @@ const struct Item gItems[] = .name = _("Aerodactylite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAerodactyliteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Aerodactyl to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3704,7 +4406,9 @@ const struct Item gItems[] = .name = _("Ampharosite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAmpharositeDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Ampharos to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3716,7 +4420,9 @@ const struct Item gItems[] = .name = _("Steelixite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sSteelixiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Steelix to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3728,7 +4434,9 @@ const struct Item gItems[] = .name = _("Scizorite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sScizoriteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Scizor to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3740,7 +4448,9 @@ const struct Item gItems[] = .name = _("Heracronite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sHeracroniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Heracross to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3752,7 +4462,9 @@ const struct Item gItems[] = .name = _("Houndoominite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sHoundoominiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Houndoom to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3764,7 +4476,9 @@ const struct Item gItems[] = .name = _("Tyranitarite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sTyranitariteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Tyranitar to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3776,7 +4490,9 @@ const struct Item gItems[] = .name = _("Sceptilite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sSceptiliteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Sceptile to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3788,7 +4504,9 @@ const struct Item gItems[] = .name = _("Blazikenite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sBlazikeniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Blaziken to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3800,7 +4518,9 @@ const struct Item gItems[] = .name = _("Swampertite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sSwampertiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Swampert to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3812,7 +4532,9 @@ const struct Item gItems[] = .name = _("Gardevoirite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sGardevoiriteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Gardevoir to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3824,7 +4546,9 @@ const struct Item gItems[] = .name = _("Sablenite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sSableniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Sableye to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3836,7 +4560,9 @@ const struct Item gItems[] = .name = _("Mawilite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sMawiliteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Mawile to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3848,7 +4574,9 @@ const struct Item gItems[] = .name = _("Aggronite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAggroniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Aggron to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3860,7 +4588,9 @@ const struct Item gItems[] = .name = _("Medichamite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sMedichamiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Medicham to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3872,7 +4602,9 @@ const struct Item gItems[] = .name = _("Manectite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sManectiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Manectric to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3884,7 +4616,9 @@ const struct Item gItems[] = .name = _("Sharpedonite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sSharpedoniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Sharpedo to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3896,7 +4630,9 @@ const struct Item gItems[] = .name = _("Cameruptite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sCameruptiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Camerupt to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3908,7 +4644,9 @@ const struct Item gItems[] = .name = _("Altarianite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAltarianiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Altaria to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3920,7 +4658,9 @@ const struct Item gItems[] = .name = _("Banettite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sBanettiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Banette to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3932,7 +4672,9 @@ const struct Item gItems[] = .name = _("Absolite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAbsoliteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Absol to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3944,7 +4686,9 @@ const struct Item gItems[] = .name = _("Glalitite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sGlalititeDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Glalie to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3956,7 +4700,9 @@ const struct Item gItems[] = .name = _("Salamencite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sSalamenciteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Salamence to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3968,7 +4714,9 @@ const struct Item gItems[] = .name = _("Metagrossite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sMetagrossiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Metagross to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3980,7 +4728,9 @@ const struct Item gItems[] = .name = _("Latiasite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sLatiasiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Latias to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3992,7 +4742,9 @@ const struct Item gItems[] = .name = _("Latiosite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sLatiositeDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Latios to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4004,7 +4756,9 @@ const struct Item gItems[] = .name = _("Lopunnite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sLopunniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Lopunny to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4016,7 +4770,9 @@ const struct Item gItems[] = .name = _("Garchompite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sGarchompiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Garchomp to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4028,7 +4784,9 @@ const struct Item gItems[] = .name = _("Lucarionite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sLucarioniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Lucario to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4040,7 +4798,9 @@ const struct Item gItems[] = .name = _("Abomasite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAbomasiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Abomasnow to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4052,7 +4812,9 @@ const struct Item gItems[] = .name = _("Galladite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sGalladiteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Gallade to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4064,7 +4826,9 @@ const struct Item gItems[] = .name = _("Audinite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sAudiniteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Audino to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4076,7 +4840,9 @@ const struct Item gItems[] = .name = _("Diancite"), .price = 0, .holdEffect = HOLD_EFFECT_MEGA_STONE, - .description = sDianciteDesc, + .description = COMPOUND_STRING("This stone enables\n" + "Diancie to Mega\n" + "Evolve in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4091,7 +4857,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sNormalGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Normal\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4104,7 +4872,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sFireGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Fire\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4117,7 +4887,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sWaterGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Water\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4130,7 +4902,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sElectricGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Electric\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4143,7 +4917,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sGrassGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Grass\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4156,7 +4932,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sIceGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Ice\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4169,7 +4947,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sFightingGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Fighting\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4182,7 +4962,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sPoisonGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Poison\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4195,7 +4977,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sGroundGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Ground\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4208,7 +4992,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sFlyingGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Flying\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4221,7 +5007,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sPsychicGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Psychic\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4234,7 +5022,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sBugGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Bug\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4247,7 +5037,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sRockGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Rock\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4260,7 +5052,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sGhostGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Ghost\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4273,7 +5067,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sDragonGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Dragon\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4286,7 +5082,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sDarkGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Dark\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4299,7 +5097,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sSteelGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Steel\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4312,7 +5112,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_GEMS, .holdEffectParam = GEM_BOOST_PARAM, - .description = sFairyGemDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of Fairy\n" + "Type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4326,7 +5128,9 @@ const struct Item gItems[] = .name = _("Normalium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sNormaliumZDesc, + .description = COMPOUND_STRING("Upgrade Normal-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4338,7 +5142,9 @@ const struct Item gItems[] = .name = _("Firium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sFiriumZDesc, + .description = COMPOUND_STRING("Upgrade Fire-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4350,7 +5156,9 @@ const struct Item gItems[] = .name = _("Waterium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sWateriumZDesc, + .description = COMPOUND_STRING("Upgrade Water-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4362,7 +5170,9 @@ const struct Item gItems[] = .name = _("Electrium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sElectriumZDesc, + .description = COMPOUND_STRING("Upgrade Electric-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4374,7 +5184,9 @@ const struct Item gItems[] = .name = _("Grassium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sGrassiumZDesc, + .description = COMPOUND_STRING("Upgrade Grass-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4386,7 +5198,9 @@ const struct Item gItems[] = .name = _("Icium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sIciumZDesc, + .description = COMPOUND_STRING("Upgrade Ice-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4398,7 +5212,9 @@ const struct Item gItems[] = .name = _("Fightinium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sFightiniumZDesc, + .description = COMPOUND_STRING("Upgrade Fighting-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4410,7 +5226,9 @@ const struct Item gItems[] = .name = _("Poisonium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sPoisoniumZDesc, + .description = COMPOUND_STRING("Upgrade Poison-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4422,7 +5240,9 @@ const struct Item gItems[] = .name = _("Groundium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sGroundiumZDesc, + .description = COMPOUND_STRING("Upgrade Ground-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4434,7 +5254,9 @@ const struct Item gItems[] = .name = _("Flyinium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sFlyiniumZDesc, + .description = COMPOUND_STRING("Upgrade Flying-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4446,7 +5268,9 @@ const struct Item gItems[] = .name = _("Psychium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sPsychiumZDesc, + .description = COMPOUND_STRING("Upgrade Psychic-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4458,7 +5282,9 @@ const struct Item gItems[] = .name = _("Buginium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sBuginiumZDesc, + .description = COMPOUND_STRING("Upgrade Bug-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4470,7 +5296,9 @@ const struct Item gItems[] = .name = _("Rockium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sRockiumZDesc, + .description = COMPOUND_STRING("Upgrade Rock-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4482,7 +5310,9 @@ const struct Item gItems[] = .name = _("Ghostium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sGhostiumZDesc, + .description = COMPOUND_STRING("Upgrade Ghost-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4494,7 +5324,9 @@ const struct Item gItems[] = .name = _("Dragonium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sDragoniumZDesc, + .description = COMPOUND_STRING("Upgrade Dragon-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4506,7 +5338,9 @@ const struct Item gItems[] = .name = _("Darkinium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sDarkiniumZDesc, + .description = COMPOUND_STRING("Upgrade Dark-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4518,7 +5352,9 @@ const struct Item gItems[] = .name = _("Steelium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sSteeliumZDesc, + .description = COMPOUND_STRING("Upgrade Steel-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4530,7 +5366,9 @@ const struct Item gItems[] = .name = _("Fairium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sFairiumZDesc, + .description = COMPOUND_STRING("Upgrade Fairy-\n" + "type moves into\n" + "Z-Moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4542,7 +5380,9 @@ const struct Item gItems[] = .name = _("Pikanium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sPikaniumZDesc, + .description = COMPOUND_STRING("Upgrade Pikachu's\n" + "Volt Tackle\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4554,7 +5394,9 @@ const struct Item gItems[] = .name = _("Eevium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sEeviumZDesc, + .description = COMPOUND_STRING("Upgrade Eevee's\n" + "Last Resort\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4566,7 +5408,9 @@ const struct Item gItems[] = .name = _("Snorlium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sSnorliumZDesc, + .description = COMPOUND_STRING("Upgrade Snorlax's\n" + "Giga Impact\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4578,7 +5422,9 @@ const struct Item gItems[] = .name = _("Mewnium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sMewniumZDesc, + .description = COMPOUND_STRING("Upgrade Mew's\n" + "Psychic into\n" + "a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4590,7 +5436,9 @@ const struct Item gItems[] = .name = _("Decidium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sDecidiumZDesc, + .description = COMPOUND_STRING("Upgrade Decidu-\n" + "eye's Spirit Sha-\n" + "ckle into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4602,7 +5450,9 @@ const struct Item gItems[] = .name = _("Incinium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sInciniumZDesc, + .description = COMPOUND_STRING("Upgrade Incine-\n" + "roar's Darkest La-\n" + "riat into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4614,7 +5464,9 @@ const struct Item gItems[] = .name = _("Primarium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sPrimariumZDesc, + .description = COMPOUND_STRING("Upgrade Primarina's\n" + "Sparkling Aria\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4626,7 +5478,9 @@ const struct Item gItems[] = .name = _("Lycanium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sLycaniumZDesc, + .description = COMPOUND_STRING("Upgrade Lycanroc's\n" + "Stone Edge\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4638,7 +5492,9 @@ const struct Item gItems[] = .name = _("Mimikium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sMimikiumZDesc, + .description = COMPOUND_STRING("Upgrade Mimikyu's\n" + "Play Rough\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4650,7 +5506,9 @@ const struct Item gItems[] = .name = _("Kommonium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sKommoniumZDesc, + .description = COMPOUND_STRING("Upgrade Kommo-o's\n" + "Clanging Scales\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4662,7 +5520,9 @@ const struct Item gItems[] = .name = _("Tapunium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sTapuniumZDesc, + .description = COMPOUND_STRING("Upgrade the tapus'\n" + "Nature's Madness\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4674,7 +5534,9 @@ const struct Item gItems[] = .name = _("Solganium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sSolganiumZDesc, + .description = COMPOUND_STRING("Upgrade Solgaleo's\n" + "Sunsteel Strike\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4686,7 +5548,9 @@ const struct Item gItems[] = .name = _("Lunalium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sLunaliumZDesc, + .description = COMPOUND_STRING("Upgrade Lunala's\n" + "Moongeist Beam\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4698,7 +5562,9 @@ const struct Item gItems[] = .name = _("Marshadium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sMarshadiumZDesc, + .description = COMPOUND_STRING("Upgrade Marsha-\n" + "dow's Spectral Thi-\n" + "ef into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4710,7 +5576,9 @@ const struct Item gItems[] = .name = _("Aloraichium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sAloraichiumZDesc, + .description = COMPOUND_STRING("Upgrade Alolan\n" + "Raichu's Thunder-\n" + "bolt into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4722,7 +5590,9 @@ const struct Item gItems[] = .name = _("Pikashunium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sPikashuniumZDesc, + .description = COMPOUND_STRING("Upgrade Pikachu w/\n" + "a cap's Thunderbolt\n" + "into a Z-Move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4734,7 +5604,9 @@ const struct Item gItems[] = .name = _("U-Necrozium Z"), .price = 0, .holdEffect = HOLD_EFFECT_Z_CRYSTAL, - .description = sUltranecroziumZDesc, + .description = COMPOUND_STRING("A crystal to turn\n" + "fused Necrozma\n" + "into a new form."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4748,7 +5620,9 @@ const struct Item gItems[] = .name = _("Light Ball"), .price = 1000, .holdEffect = HOLD_EFFECT_LIGHT_BALL, - .description = sLightBallDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the Atk and\n" + "Sp. Atk of Pikachu."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4760,7 +5634,9 @@ const struct Item gItems[] = .name = _("Leek"), .price = 1000, .holdEffect = HOLD_EFFECT_LEEK, - .description = sLeekDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Farfetch'd's\n" + "critical-hit ratio."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4772,7 +5648,9 @@ const struct Item gItems[] = .name = _("Thick Club"), .price = 1000, .holdEffect = HOLD_EFFECT_THICK_CLUB, - .description = sThickClubDesc, + .description = COMPOUND_STRING("A hold item that \n" + "raises Cubone or\n" + "Marowak's Attack."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4784,7 +5662,9 @@ const struct Item gItems[] = .name = _("Lucky Punch"), .price = 1000, .holdEffect = HOLD_EFFECT_LUCKY_PUNCH, - .description = sLuckyPunchDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Chansey's\n" + "critical-hit rate."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4796,7 +5676,9 @@ const struct Item gItems[] = .name = _("Metal Powder"), .price = 1000, .holdEffect = HOLD_EFFECT_METAL_POWDER, - .description = sMetalPowderDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Ditto's\n" + "Defense."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4808,7 +5690,9 @@ const struct Item gItems[] = .name = _("Quick Powder"), .price = 1000, .holdEffect = HOLD_EFFECT_QUICK_POWDER, - .description = sQuickPowderDesc, + .description = COMPOUND_STRING("An item to be held\n" + "by Ditto. This odd\n" + "powder boosts Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4820,7 +5704,9 @@ const struct Item gItems[] = .name = _("DeepSeaScale"), .price = 2000, .holdEffect = HOLD_EFFECT_DEEP_SEA_SCALE, - .description = sDeepSeaScaleDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the Sp. Def\n" + "of Clamperl."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -4832,7 +5718,9 @@ const struct Item gItems[] = .name = _("DeepSeaTooth"), .price = 2000, .holdEffect = HOLD_EFFECT_DEEP_SEA_TOOTH, - .description = sDeepSeaToothDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the Sp. Atk\n" + "of Clamperl."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -4845,7 +5733,15 @@ const struct Item gItems[] = .price = 0, .holdEffect = HOLD_EFFECT_SOUL_DEW, .holdEffectParam = B_SOUL_DEW_BOOST >= GEN_7 ? 20 : 50, - .description = sSoulDewDesc, + #if B_SOUL_DEW_BOOST >= GEN_7 + .description = COMPOUND_STRING("Powers up Latios' &\n" + "Latias' Psychic and\n" + "Dragon-type moves."), + #else + .description = COMPOUND_STRING("Hold item: raises\n" + "Sp. Atk & Sp. Def of\n" + "Latios & Latias."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4858,7 +5754,9 @@ const struct Item gItems[] = .price = 0, .holdEffect = HOLD_EFFECT_ADAMANT_ORB, .holdEffectParam = 20, - .description = sAdamantOrbDesc, + .description = COMPOUND_STRING("Boosts the power of\n" + "Dialga's Dragon and\n" + "Steel-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4871,7 +5769,9 @@ const struct Item gItems[] = .price = 0, .holdEffect = HOLD_EFFECT_LUSTROUS_ORB, .holdEffectParam = 20, - .description = sLustrousOrbDesc, + .description = COMPOUND_STRING("Boosts the power of\n" + "Palkia's Dragon and\n" + "Water-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4884,7 +5784,9 @@ const struct Item gItems[] = .price = 0, .holdEffect = HOLD_EFFECT_GRISEOUS_ORB, .holdEffectParam = 20, - .description = sGriseousOrbDesc, + .description = COMPOUND_STRING("Powers up Giratina's\n" + "Dragon and Ghost-\n" + "type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4912,7 +5814,9 @@ const struct Item gItems[] = .price = 5000, .holdEffect = HOLD_EFFECT_EVASION_UP, .holdEffectParam = 10, - .description = sLaxIncenseDesc, + .description = COMPOUND_STRING("A hold item that\n" + "slightly lowers the\n" + "foe's accuracy."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4964,7 +5868,7 @@ const struct Item gItems[] = .price = 2000, .holdEffect = HOLD_EFFECT_WATER_POWER, .holdEffectParam = 20, - .description = sWaveIncenseDesc, + .description = sSeaIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5014,7 +5918,9 @@ const struct Item gItems[] = { .name = _("Red Scarf"), .price = 100, - .description = sRedScarfDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Cool in\n" + "Contests."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5025,7 +5931,9 @@ const struct Item gItems[] = { .name = _("Blue Scarf"), .price = 100, - .description = sBlueScarfDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Beauty in\n" + "Contests."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5036,7 +5944,9 @@ const struct Item gItems[] = { .name = _("Pink Scarf"), .price = 100, - .description = sPinkScarfDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Cute in\n" + "Contests."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5047,7 +5957,9 @@ const struct Item gItems[] = { .name = _("Green Scarf"), .price = 100, - .description = sGreenScarfDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Smart in\n" + "Contests."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5058,7 +5970,9 @@ const struct Item gItems[] = { .name = _("Yellow Scarf"), .price = 100, - .description = sYellowScarfDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Tough in\n" + "Contests."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5072,7 +5986,9 @@ const struct Item gItems[] = .name = _("Macho Brace"), .price = 3000, .holdEffect = HOLD_EFFECT_MACHO_BRACE, - .description = sMachoBraceDesc, + .description = COMPOUND_STRING("A hold item that\n" + "promotes growth,\n" + "but reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5085,7 +6001,9 @@ const struct Item gItems[] = .price = 3000, .holdEffect = HOLD_EFFECT_POWER_ITEM, .holdEffectParam = 8, - .description = sPowerWeightDesc, + .description = COMPOUND_STRING("A hold item that\n" + "promotes HP gain,\n" + "but reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5099,7 +6017,9 @@ const struct Item gItems[] = .price = 3000, .holdEffect = HOLD_EFFECT_POWER_ITEM, .holdEffectParam = 8, - .description = sPowerBracerDesc, + .description = COMPOUND_STRING("A hold item that\n" + "promotes Atk gain,\n" + "but reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5113,7 +6033,9 @@ const struct Item gItems[] = .price = 3000, .holdEffect = HOLD_EFFECT_POWER_ITEM, .holdEffectParam = 8, - .description = sPowerBeltDesc, + .description = COMPOUND_STRING("A hold item that\n" + "promotes Def gain,\n" + "but reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5127,7 +6049,9 @@ const struct Item gItems[] = .price = 3000, .holdEffect = HOLD_EFFECT_POWER_ITEM, .holdEffectParam = 8, - .description = sPowerLensDesc, + .description = COMPOUND_STRING("Hold item that pro-\n" + "motes Sp. Atk gain,\n" + "but reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5141,7 +6065,9 @@ const struct Item gItems[] = .price = 3000, .holdEffect = HOLD_EFFECT_POWER_ITEM, .holdEffectParam = 8, - .description = sPowerBandDesc, + .description = COMPOUND_STRING("Hold item that pro-\n" + "motes Sp. Def gain,\n" + "but reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5155,7 +6081,9 @@ const struct Item gItems[] = .price = 3000, .holdEffect = HOLD_EFFECT_POWER_ITEM, .holdEffectParam = 8, - .description = sPowerAnkletDesc, + .description = COMPOUND_STRING("A hold item that\n" + "promotes Spd gain,\n" + "but reduces Speed."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5171,7 +6099,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_NORMAL_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sSilkScarfDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Normal-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5184,7 +6114,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_FIRE_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sCharcoalDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Fire-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5197,7 +6129,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_WATER_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sMysticWaterDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Water-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5210,7 +6144,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_ELECTRIC_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sMagnetDesc, + .description = COMPOUND_STRING("A hold item that\n" + "boosts Electric-\n" + "type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5223,7 +6159,7 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_GRASS_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sMiracleSeedDesc, + .description = sRoseIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5236,7 +6172,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_ICE_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sNeverMeltIceDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Ice-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5249,7 +6187,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_FIGHTING_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sBlackBeltDesc, + .description = COMPOUND_STRING("A hold item that\n" + "boosts Fighting-\n" + "type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5262,7 +6202,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_POISON_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sPoisonBarbDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Poison-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5275,7 +6217,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_GROUND_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sSoftSandDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Ground-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5288,7 +6232,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_FLYING_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sSharpBeakDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Flying-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5301,7 +6247,7 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_PSYCHIC_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sTwistedSpoonDesc, + .description = sOddIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5314,7 +6260,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_BUG_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sSilverPowderDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Bug-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5327,7 +6275,7 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_ROCK_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sHardStoneDesc, + .description = sRockIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5340,7 +6288,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_GHOST_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sSpellTagDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Ghost-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5353,7 +6303,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_DRAGON_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sDragonFangDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Dragon-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5366,7 +6318,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_DARK_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sBlackGlassesDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Dark-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5379,7 +6333,9 @@ const struct Item gItems[] = .price = 2000, .holdEffect = HOLD_EFFECT_STEEL_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sMetalCoatDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Steel-type moves."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -5393,7 +6349,9 @@ const struct Item gItems[] = .name = _("Choice Band"), .price = 4000, .holdEffect = HOLD_EFFECT_CHOICE_BAND, - .description = sChoiceBandDesc, + .description = COMPOUND_STRING("Raises a move's\n" + "power, but permits\n" + "only that move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5405,7 +6363,9 @@ const struct Item gItems[] = .name = _("Choice Specs"), .price = 4000, .holdEffect = HOLD_EFFECT_CHOICE_SPECS, - .description = sChoiceSpecsDesc, + .description = COMPOUND_STRING("Boosts Sp. Atk, but\n" + "allows the use of\n" + "only one move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5417,7 +6377,9 @@ const struct Item gItems[] = .name = _("Choice Scarf"), .price = 4000, .holdEffect = HOLD_EFFECT_CHOICE_SCARF, - .description = sChoiceScarfDesc, + .description = COMPOUND_STRING("Boosts Speed, but\n" + "allows the use of\n" + "only one move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5431,7 +6393,9 @@ const struct Item gItems[] = .name = _("Flame Orb"), .price = 4000, .holdEffect = HOLD_EFFECT_FLAME_ORB, - .description = sFlameOrbDesc, + .description = COMPOUND_STRING("A bizarre orb that\n" + "inflicts a burn on\n" + "holder in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5443,7 +6407,9 @@ const struct Item gItems[] = .name = _("Toxic Orb"), .price = 4000, .holdEffect = HOLD_EFFECT_TOXIC_ORB, - .description = sToxicOrbDesc, + .description = COMPOUND_STRING("A bizarre orb that\n" + "badly poisons the\n" + "holder in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5457,7 +6423,9 @@ const struct Item gItems[] = .name = _("Damp Rock"), .price = 4000, .holdEffect = HOLD_EFFECT_DAMP_ROCK, - .description = sDampRockDesc, + .description = COMPOUND_STRING("Extends the length\n" + "of Rain Dance if\n" + "used by the holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5469,7 +6437,9 @@ const struct Item gItems[] = .name = _("Heat Rock"), .price = 4000, .holdEffect = HOLD_EFFECT_HEAT_ROCK, - .description = sHeatRockDesc, + .description = COMPOUND_STRING("Extends the length\n" + "of Sunny Day if\n" + "used by the holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5481,7 +6451,9 @@ const struct Item gItems[] = .name = _("Smooth Rock"), .price = 4000, .holdEffect = HOLD_EFFECT_SMOOTH_ROCK, - .description = sSmoothRockDesc, + .description = COMPOUND_STRING("Extends the length\n" + "of Sandstorm if\n" + "used by the holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5493,7 +6465,9 @@ const struct Item gItems[] = .name = _("Icy Rock"), .price = 4000, .holdEffect = HOLD_EFFECT_ICY_ROCK, - .description = sIcyRockDesc, + .description = COMPOUND_STRING("Extends the length\n" + "of the move Hail\n" + "used by the holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5508,7 +6482,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_SEEDS, .holdEffectParam = HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN, - .description = sElectricSeedDesc, + .description = COMPOUND_STRING("Boosts Defense on\n" + "Electric Terrain,\n" + "but only one time."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5521,7 +6497,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_SEEDS, .holdEffectParam = HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN, - .description = sPsychicSeedDesc, + .description = COMPOUND_STRING("Boosts Sp. Def. on\n" + "Psychic Terrain,\n" + "but only one time."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5534,7 +6512,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_SEEDS, .holdEffectParam = HOLD_EFFECT_PARAM_MISTY_TERRAIN, - .description = sMistySeedDesc, + .description = COMPOUND_STRING("Boosts Sp. Def. on\n" + "Misty Terrain,\n" + "but only one time."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5547,7 +6527,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_SEEDS, .holdEffectParam = HOLD_EFFECT_PARAM_GRASSY_TERRAIN, - .description = sGrassySeedDesc, + .description = COMPOUND_STRING("Boosts Defense on\n" + "Grassy Terrain,\n" + "but only one time."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5562,7 +6544,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_ABSORB_BULB, .holdEffectParam = 0, - .description = sAbsorbBulbDesc, + .description = COMPOUND_STRING("Raises Sp. Atk if\n" + "the holder is hit by\n" + "a Water-type move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5575,7 +6559,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_CELL_BATTERY, .holdEffectParam = 0, - .description = sCellBatteryDesc, + .description = COMPOUND_STRING("Raises Atk if the\n" + "holder is hit by an\n" + "Electric-type move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5588,7 +6574,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_LUMINOUS_MOSS, .holdEffectParam = 0, - .description = sLuminousMossDesc, + .description = COMPOUND_STRING("Raises Sp. Def if\n" + "the holder is hit by\n" + "a Water-type move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5601,7 +6589,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_SNOWBALL, .holdEffectParam = 0, - .description = sSnowballDesc, + .description = COMPOUND_STRING("Raises Atk if its\n" + "holder is hit by an\n" + "Ice-type move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5616,7 +6606,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_EVASION_UP, .holdEffectParam = 10, - .description = sBrightPowderDesc, + .description = COMPOUND_STRING("A hold item that\n" + "casts a glare to\n" + "reduce accuracy."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5628,7 +6620,9 @@ const struct Item gItems[] = .name = _("White Herb"), .price = 4000, .holdEffect = HOLD_EFFECT_RESTORE_STATS, - .description = sWhiteHerbDesc, + .description = COMPOUND_STRING("A hold item that\n" + "restores any\n" + "lowered stat."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5640,7 +6634,15 @@ const struct Item gItems[] = .name = _("Exp. Share"), .price = 3000, .holdEffect = HOLD_EFFECT_EXP_SHARE, - .description = sExpShareDesc, + #if I_EXP_SHARE_ITEM >= GEN_6 + .description = COMPOUND_STRING("This device gives\n" + "exp. to other\n" + "party members."), + #else + .description = COMPOUND_STRING("A hold item that\n" + "gets Exp. points\n" + "from battles."), + #endif .pocket = I_EXP_SHARE_ITEM >= GEN_6 ? POCKET_KEY_ITEMS : POCKET_ITEMS, .type = ITEM_USE_FIELD, .fieldUseFunc = ItemUseOutOfBattle_ExpShare, @@ -5653,7 +6655,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_QUICK_CLAW, .holdEffectParam = 20, - .description = sQuickClawDesc, + .description = COMPOUND_STRING("A hold item that\n" + "occasionally allows\n" + "the first strike."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5665,7 +6669,9 @@ const struct Item gItems[] = .name = _("Soothe Bell"), .price = 4000, .holdEffect = HOLD_EFFECT_FRIENDSHIP_UP, - .description = sSootheBellDesc, + .description = COMPOUND_STRING("A hold item that\n" + "calms spirits and\n" + "fosters friendship."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5677,7 +6683,15 @@ const struct Item gItems[] = .name = _("Mental Herb"), .price = 4000, .holdEffect = HOLD_EFFECT_MENTAL_HERB, - .description = sMentalHerbDesc, + #if B_MENTAL_HERB >= GEN_5 + .description = COMPOUND_STRING("Snaps Pokémon out\n" + "of move-binding\n" + "effects."), + #else + .description = COMPOUND_STRING("A hold item that\n" + "snaps Pokémon out\n" + "of infatuation."), + #endif .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5702,7 +6716,7 @@ const struct Item gItems[] = .name = _("Amulet Coin"), .price = 10000, .holdEffect = HOLD_EFFECT_DOUBLE_PRIZE, - .description = sAmuletCoinDesc, + .description = sLuckIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5714,7 +6728,7 @@ const struct Item gItems[] = .name = _("Cleanse Tag"), .price = 5000, .holdEffect = HOLD_EFFECT_REPEL, - .description = sCleanseTagDesc, + .description = sPureIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5726,7 +6740,9 @@ const struct Item gItems[] = .name = _("Smoke Ball"), .price = 4000, .holdEffect = HOLD_EFFECT_CAN_ALWAYS_RUN, - .description = sSmokeBallDesc, + .description = COMPOUND_STRING("A hold item that\n" + "assures fleeing\n" + "from wild Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5739,7 +6755,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_FOCUS_BAND, .holdEffectParam = 10, - .description = sFocusBandDesc, + .description = COMPOUND_STRING("A hold item that\n" + "occasionally\n" + "prevents fainting."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5751,7 +6769,9 @@ const struct Item gItems[] = .name = _("Lucky Egg"), .price = 10000, .holdEffect = HOLD_EFFECT_LUCKY_EGG, - .description = sLuckyEggDesc, + .description = COMPOUND_STRING("A hold item that\n" + "boosts Exp. points\n" + "earned in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5763,7 +6783,9 @@ const struct Item gItems[] = .name = _("Scope Lens"), .price = 4000, .holdEffect = HOLD_EFFECT_SCOPE_LENS, - .description = sScopeLensDesc, + .description = COMPOUND_STRING("A hold item that\n" + "improves the\n" + "critical-hit rate."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5776,7 +6798,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_LEFTOVERS, .holdEffectParam = 10, - .description = sLeftoversDesc, + .description = COMPOUND_STRING("A hold item that\n" + "gradually restores\n" + "HP in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5789,7 +6813,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_SHELL_BELL, .holdEffectParam = 8, - .description = sShellBellDesc, + .description = COMPOUND_STRING("A hold item that\n" + "restores HP upon\n" + "striking the foe."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5802,7 +6828,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_WIDE_LENS, .holdEffectParam = 10, - .description = sWideLensDesc, + .description = COMPOUND_STRING("A magnifying lens\n" + "that boosts the\n" + "accuracy of moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5815,7 +6843,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_MUSCLE_BAND, .holdEffectParam = 10, - .description = sMuscleBandDesc, + .description = COMPOUND_STRING("A headband that\n" + "boosts the power of\n" + "physical moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5828,7 +6858,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_WISE_GLASSES, .holdEffectParam = 10, - .description = sWiseGlassesDesc, + .description = COMPOUND_STRING("A pair of glasses\n" + "that ups the power\n" + "of special moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5841,7 +6873,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_EXPERT_BELT, .holdEffectParam = 20, - .description = sExpertBeltDesc, + .description = COMPOUND_STRING("A belt that boosts\n" + "the power of super\n" + "effective moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5853,7 +6887,9 @@ const struct Item gItems[] = .name = _("Light Clay"), .price = 4000, .holdEffect = HOLD_EFFECT_LIGHT_CLAY, - .description = sLightClayDesc, + .description = COMPOUND_STRING("Extends the length\n" + "of barrier moves\n" + "used by the holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5865,7 +6901,9 @@ const struct Item gItems[] = .name = _("Life Orb"), .price = 4000, .holdEffect = HOLD_EFFECT_LIFE_ORB, - .description = sLifeOrbDesc, + .description = COMPOUND_STRING("Boosts the power of\n" + "moves at the cost\n" + "of some HP per turn."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5877,7 +6915,9 @@ const struct Item gItems[] = .name = _("Power Herb"), .price = 4000, .holdEffect = HOLD_EFFECT_POWER_HERB, - .description = sPowerHerbDesc, + .description = COMPOUND_STRING("Allows immediate\n" + "use of a move that\n" + "charges first."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5889,7 +6929,9 @@ const struct Item gItems[] = .name = _("Focus Sash"), .price = 4000, .holdEffect = HOLD_EFFECT_FOCUS_SASH, - .description = sFocusSashDesc, + .description = COMPOUND_STRING("If the holder has\n" + "full HP, it endures\n" + "KO hits with 1 HP."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5902,7 +6944,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_ZOOM_LENS, .holdEffectParam = 20, - .description = sZoomLensDesc, + .description = COMPOUND_STRING("If the holder moves\n" + "after the foe, it'll\n" + "boost accuracy."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5915,7 +6959,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_METRONOME, .holdEffectParam = 20, - .description = sMetronomeDesc, + .description = COMPOUND_STRING("A held item that\n" + "boosts a move used\n" + "consecutively."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5927,7 +6973,9 @@ const struct Item gItems[] = .name = _("Iron Ball"), .price = 4000, .holdEffect = HOLD_EFFECT_IRON_BALL, - .description = sIronBallDesc, + .description = COMPOUND_STRING("Cuts Speed and lets\n" + "Flying-types be hit\n" + "by Ground moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5939,7 +6987,7 @@ const struct Item gItems[] = .name = _("Lagging Tail"), .price = 4000, .holdEffect = HOLD_EFFECT_LAGGING_TAIL, - .description = sLaggingTailDesc, + .description = sFullIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5951,7 +6999,9 @@ const struct Item gItems[] = .name = _("Destiny Knot"), .price = 4000, .holdEffect = HOLD_EFFECT_DESTINY_KNOT, - .description = sDestinyKnotDesc, + .description = COMPOUND_STRING("If the holder falls\n" + "in love, the foe\n" + "does too."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5963,7 +7013,9 @@ const struct Item gItems[] = .name = _("Black Sludge"), .price = 4000, .holdEffect = HOLD_EFFECT_BLACK_SLUDGE, - .description = sBlackSludgeDesc, + .description = COMPOUND_STRING("Gradually restores\n" + "HP of Poison-types.\n" + "Damages others."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5975,7 +7027,9 @@ const struct Item gItems[] = .name = _("Grip Claw"), .price = 4000, .holdEffect = HOLD_EFFECT_GRIP_CLAW, - .description = sGripClawDesc, + .description = COMPOUND_STRING("Makes binding moves\n" + "used by the holder\n" + "go on for 7 turns."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5987,7 +7041,9 @@ const struct Item gItems[] = .name = _("Sticky Barb"), .price = 4000, .holdEffect = HOLD_EFFECT_STICKY_BARB, - .description = sStickyBarbDesc, + .description = COMPOUND_STRING("Damages the holder\n" + "each turn. May latch\n" + "on to foes."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -5999,7 +7055,9 @@ const struct Item gItems[] = .name = _("Shed Shell"), .price = 4000, .holdEffect = HOLD_EFFECT_SHED_SHELL, - .description = sShedShellDesc, + .description = COMPOUND_STRING("Enables the holder\n" + "to switch out of\n" + "battle without fail."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6012,7 +7070,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_BIG_ROOT, .holdEffectParam = 30, - .description = sBigRootDesc, + .description = COMPOUND_STRING("A held item that\n" + "boosts the power of\n" + "HP-stealing moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6024,7 +7084,9 @@ const struct Item gItems[] = .name = _("Razor Claw"), .price = 5000, .holdEffect = HOLD_EFFECT_SCOPE_LENS, - .description = sRazorClawDesc, + .description = COMPOUND_STRING("A hooked claw that\n" + "ups the holder's\n" + "critical-hit ratio."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -6037,7 +7099,7 @@ const struct Item gItems[] = .price = 5000, .holdEffect = HOLD_EFFECT_FLINCH, .holdEffectParam = 10, - .description = sRazorFangDesc, + .description = sKingsRockDesc, .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -6050,7 +7112,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_EVIOLITE, .holdEffectParam = 50, - .description = sEvioliteDesc, + .description = COMPOUND_STRING("Raises the Def and\n" + "Sp. Def of Pokémon\n" + "that can evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6062,7 +7126,9 @@ const struct Item gItems[] = .name = _("Float Stone"), .price = 4000, .holdEffect = HOLD_EFFECT_FLOAT_STONE, - .description = sFloatStoneDesc, + .description = COMPOUND_STRING("It's so light that\n" + "when held, it halves\n" + "a Pokémon's weight."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6075,7 +7141,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_ROCKY_HELMET, .holdEffectParam = 0, - .description = sRockyHelmetDesc, + .description = COMPOUND_STRING("Hurts the foe if\n" + "they touch its\n" + "holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6088,7 +7156,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_AIR_BALLOON, .holdEffectParam = 0, - .description = sAirBalloonDesc, + .description = COMPOUND_STRING("Elevates the holder\n" + "in the air. If hit,\n" + "this item will burst."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6101,7 +7171,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_RED_CARD, .holdEffectParam = 0, - .description = sRedCardDesc, + .description = COMPOUND_STRING("Switches out the\n" + "foe if they hit the\n" + "holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6114,7 +7186,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_RING_TARGET, .holdEffectParam = 0, - .description = sRingTargetDesc, + .description = COMPOUND_STRING("Moves that wouldn't\n" + "have effect will\n" + "land on its holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6126,7 +7200,9 @@ const struct Item gItems[] = .name = _("Binding Band"), .price = 4000, .holdEffect = HOLD_EFFECT_BINDING_BAND, - .description = sBindingBandDesc, + .description = COMPOUND_STRING("Increases the\n" + "power of binding\n" + "moves when held."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6139,7 +7215,9 @@ const struct Item gItems[] = .price = 4000, .holdEffect = HOLD_EFFECT_EJECT_BUTTON, .holdEffectParam = 0, - .description = sEjectButtonDesc, + .description = COMPOUND_STRING("Switches out the\n" + "user if they're hit\n" + "by the foe."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6152,7 +7230,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_WEAKNESS_POLICY, .holdEffectParam = 0, - .description = sWeaknessPolicyDesc, + .description = COMPOUND_STRING("If hit by a Super\n" + "Effective move, ups\n" + "Atk and Sp. Atk."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6165,7 +7245,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_ASSAULT_VEST, .holdEffectParam = 50, - .description = sAssaultVestDesc, + .description = COMPOUND_STRING("Raises Sp. Def but\n" + "prevents the use\n" + "of status moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6177,7 +7259,9 @@ const struct Item gItems[] = .name = _("SafetyGoggles"), .price = 4000, .holdEffect = HOLD_EFFECT_SAFETY_GOGGLES, - .description = sSafetyGogglesDesc, + .description = COMPOUND_STRING("Protect from\n" + "weather damage and\n" + "powder moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6189,7 +7273,9 @@ const struct Item gItems[] = .name = _("AdrenalineOrb"), .price = 300, .holdEffect = HOLD_EFFECT_ADRENALINE_ORB, - .description = sAdrenalineOrbDesc, + .description = COMPOUND_STRING("Boosts Speed if the\n" + "user is intimidated,\n" + "but only one time."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6201,7 +7287,9 @@ const struct Item gItems[] = .name = _("TerainExtendr"), .price = 4000, .holdEffect = HOLD_EFFECT_TERRAIN_EXTENDER, - .description = sTerrainExtenderDesc, + .description = COMPOUND_STRING("Extends the length\n" + "of the active\n" + "battle terrain."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6213,7 +7301,9 @@ const struct Item gItems[] = .name = _("ProtectvePads"), .price = 4000, .holdEffect = HOLD_EFFECT_PROTECTIVE_PADS, - .description = sProtectivePadsDesc, + .description = COMPOUND_STRING("Guard the holder\n" + "from contact move\n" + "effects."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6225,7 +7315,9 @@ const struct Item gItems[] = .name = _("Throat Spray"), .price = 4000, .holdEffect = HOLD_EFFECT_THROAT_SPRAY, - .description = sThroatSprayDesc, + .description = COMPOUND_STRING("Raises Sp. Atk. if\n" + "the holder uses a\n" + "sound-based move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6237,7 +7329,9 @@ const struct Item gItems[] = .name = _("Eject Pack"), .price = 4000, .holdEffect = HOLD_EFFECT_EJECT_PACK, - .description = sEjectPackDesc, + .description = COMPOUND_STRING("Forces the user to\n" + "switch if its stats\n" + "are lowered."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6249,7 +7343,9 @@ const struct Item gItems[] = .name = _("Heavy-DtyBts"), .price = 4000, .holdEffect = HOLD_EFFECT_HEAVY_DUTY_BOOTS, - .description = sHeavyDutyBootsDesc, + .description = COMPOUND_STRING("Boots that prevent\n" + "effects of traps\n" + "set in the field."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6261,7 +7357,9 @@ const struct Item gItems[] = .name = _("BlundrPolicy"), .price = 4000, .holdEffect = HOLD_EFFECT_BLUNDER_POLICY, - .description = sBlunderPolicyDesc, + .description = COMPOUND_STRING("Raises Speed if\n" + "the user misses\n" + "due to Accuracy."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6273,7 +7371,9 @@ const struct Item gItems[] = .name = _("Room Service"), .price = 4000, .holdEffect = HOLD_EFFECT_ROOM_SERVICE, - .description = sRoomServiceDesc, + .description = COMPOUND_STRING("Lowers Speed if\n" + "Trick Room is\n" + "active."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6285,7 +7385,9 @@ const struct Item gItems[] = .name = _("UtltyUmbrlla"), .price = 4000, .holdEffect = HOLD_EFFECT_UTILITY_UMBRELLA, - .description = sUtilityUmbrellaDesc, + .description = COMPOUND_STRING("An umbrella that\n" + "protects from\n" + "weather effects."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6299,7 +7401,9 @@ const struct Item gItems[] = .name = _("Cheri Berry"), .price = 20, .holdEffect = HOLD_EFFECT_CURE_PAR, - .description = sCheriBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "heals paralysis\n" + "in battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6312,7 +7416,9 @@ const struct Item gItems[] = .name = _("Chesto Berry"), .price = 20, .holdEffect = HOLD_EFFECT_CURE_SLP, - .description = sChestoBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "awakens Pokémon\n" + "in battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6325,7 +7431,9 @@ const struct Item gItems[] = .name = _("Pecha Berry"), .price = 20, .holdEffect = HOLD_EFFECT_CURE_PSN, - .description = sPechaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "heals poisoning\n" + "in battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6338,7 +7446,9 @@ const struct Item gItems[] = .name = _("Rawst Berry"), .price = 20, .holdEffect = HOLD_EFFECT_CURE_BRN, - .description = sRawstBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "heals a burn in\n" + "battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6351,7 +7461,9 @@ const struct Item gItems[] = .name = _("Aspear Berry"), .price = 20, .holdEffect = HOLD_EFFECT_CURE_FRZ, - .description = sAspearBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "defrosts Pokémon\n" + "in battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6365,7 +7477,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESTORE_PP, .holdEffectParam = 10, - .description = sLeppaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "restores 10 PP in\n" + "battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU_MOVES, .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, @@ -6379,7 +7493,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESTORE_HP, .holdEffectParam = 10, - .description = sOranBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "restores 10 HP in\n" + "battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6392,7 +7508,9 @@ const struct Item gItems[] = .name = _("Persim Berry"), .price = 20, .holdEffect = HOLD_EFFECT_CURE_CONFUSION, - .description = sPersimBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "heals confusion\n" + "in battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6405,7 +7523,9 @@ const struct Item gItems[] = .name = _("Lum Berry"), .price = 20, .holdEffect = HOLD_EFFECT_CURE_STATUS, - .description = sLumBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "heals any status\n" + "problem in battle."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6420,11 +7540,16 @@ const struct Item gItems[] = #if I_SITRUS_BERRY_HEAL >= GEN_4 .holdEffect = HOLD_EFFECT_RESTORE_PCT_HP, .holdEffectParam = 25, + .description = COMPOUND_STRING("A hold item that\n" + "restores the user's\n" + "HP a little."), #else .holdEffect = HOLD_EFFECT_RESTORE_HP, .holdEffectParam = 30, + .description = COMPOUND_STRING("A hold item that\n" + "restores 30 HP in\n" + "battle."), #endif - .description = sSitrusBerryDesc, .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -6451,7 +7576,7 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_CONFUSE_DRY, .holdEffectParam = CONFUSE_BERRY_HEAL_FRACTION, - .description = sWikiBerryDesc, + .description = sFigyBerryDesc, .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6464,7 +7589,7 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_CONFUSE_SWEET, .holdEffectParam = CONFUSE_BERRY_HEAL_FRACTION, - .description = sMagoBerryDesc, + .description = sFigyBerryDesc, .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6477,7 +7602,7 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_CONFUSE_BITTER, .holdEffectParam = CONFUSE_BERRY_HEAL_FRACTION, - .description = sAguavBerryDesc, + .description = sFigyBerryDesc, .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6490,7 +7615,7 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_CONFUSE_SOUR, .holdEffectParam = CONFUSE_BERRY_HEAL_FRACTION, - .description = sIapapaBerryDesc, + .description = sFigyBerryDesc, .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6501,7 +7626,9 @@ const struct Item gItems[] = { .name = _("Razz Berry"), .price = 20, - .description = sRazzBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Razz."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6512,7 +7639,9 @@ const struct Item gItems[] = { .name = _("Bluk Berry"), .price = 20, - .description = sBlukBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Bluk."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6523,7 +7652,9 @@ const struct Item gItems[] = { .name = _("Nanab Berry"), .price = 20, - .description = sNanabBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Nanab."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6534,7 +7665,9 @@ const struct Item gItems[] = { .name = _("Wepear Berry"), .price = 20, - .description = sWepearBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Wepear."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6545,7 +7678,9 @@ const struct Item gItems[] = { .name = _("Pinap Berry"), .price = 20, - .description = sPinapBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Pinap."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6556,7 +7691,9 @@ const struct Item gItems[] = { .name = _("Pomeg Berry"), .price = 20, - .description = sPomegBerryDesc, + .description = COMPOUND_STRING("Makes a Pokémon\n" + "friendly but lowers\n" + "base HP."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, @@ -6567,7 +7704,9 @@ const struct Item gItems[] = { .name = _("Kelpsy Berry"), .price = 20, - .description = sKelpsyBerryDesc, + .description = COMPOUND_STRING("Makes a Pokémon\n" + "friendly but lowers\n" + "base Attack."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, @@ -6578,7 +7717,9 @@ const struct Item gItems[] = { .name = _("Qualot Berry"), .price = 20, - .description = sQualotBerryDesc, + .description = COMPOUND_STRING("Makes a Pokémon\n" + "friendly but lowers\n" + "base Defense."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, @@ -6589,7 +7730,9 @@ const struct Item gItems[] = { .name = _("Hondew Berry"), .price = 20, - .description = sHondewBerryDesc, + .description = COMPOUND_STRING("Makes a Pokémon\n" + "friendly but lowers\n" + "base Sp. Atk."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, @@ -6600,7 +7743,9 @@ const struct Item gItems[] = { .name = _("Grepa Berry"), .price = 20, - .description = sGrepaBerryDesc, + .description = COMPOUND_STRING("Makes a Pokémon\n" + "friendly but lowers\n" + "base Sp. Def."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, @@ -6611,7 +7756,9 @@ const struct Item gItems[] = { .name = _("Tamato Berry"), .price = 20, - .description = sTamatoBerryDesc, + .description = COMPOUND_STRING("Makes a Pokémon\n" + "friendly but lowers\n" + "base Speed."), .pocket = POCKET_BERRIES, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ReduceEV, @@ -6622,7 +7769,9 @@ const struct Item gItems[] = { .name = _("Cornn Berry"), .price = 20, - .description = sCornnBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Cornn."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6633,7 +7782,9 @@ const struct Item gItems[] = { .name = _("Magost Berry"), .price = 20, - .description = sMagostBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Magost."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6644,7 +7795,9 @@ const struct Item gItems[] = { .name = _("Rabuta Berry"), .price = 20, - .description = sRabutaBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Rabuta."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6655,7 +7808,9 @@ const struct Item gItems[] = { .name = _("Nomel Berry"), .price = 20, - .description = sNomelBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Nomel."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6666,7 +7821,9 @@ const struct Item gItems[] = { .name = _("Spelon Berry"), .price = 20, - .description = sSpelonBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Spelon."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6677,7 +7834,9 @@ const struct Item gItems[] = { .name = _("Pamtre Berry"), .price = 20, - .description = sPamtreBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Pamtre."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6688,7 +7847,9 @@ const struct Item gItems[] = { .name = _("Watmel Berry"), .price = 20, - .description = sWatmelBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Watmel."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6699,7 +7860,9 @@ const struct Item gItems[] = { .name = _("Durin Berry"), .price = 20, - .description = sDurinBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Durin."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6710,7 +7873,9 @@ const struct Item gItems[] = { .name = _("Belue Berry"), .price = 20, - .description = sBelueBerryDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow Belue."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6723,7 +7888,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_NORMAL, - .description = sChilanBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Normal\n" + "move."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6736,7 +7903,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_FIRE, - .description = sOccaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Fire\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6749,7 +7918,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_WATER, - .description = sPasshoBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Water\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6762,7 +7933,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_ELECTRIC, - .description = sWacanBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Electric\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6775,7 +7948,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_GRASS, - .description = sRindoBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Grass\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6788,7 +7963,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_ICE, - .description = sYacheBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Ice\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6801,7 +7978,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_FIGHTING, - .description = sChopleBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Fighting\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6814,7 +7993,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_POISON, - .description = sKebiaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Poison\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6827,7 +8008,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_GROUND, - .description = sShucaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Ground\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6840,7 +8023,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_FLYING, - .description = sCobaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Flying\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6853,7 +8038,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_PSYCHIC, - .description = sPayapaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Psychic\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6866,7 +8053,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_BUG, - .description = sTangaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Bug\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6879,7 +8068,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_ROCK, - .description = sChartiBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Rock\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6892,7 +8083,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_GHOST, - .description = sKasibBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Ghost\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6905,7 +8098,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_DRAGON, - .description = sHabanBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Dragon\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6918,7 +8113,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_DARK, - .description = sColburBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Dark\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6931,7 +8128,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_STEEL, - .description = sBabiriBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Steel\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6944,7 +8143,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RESIST_BERRY, .holdEffectParam = TYPE_FAIRY, - .description = sRoseliBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "weakens a Fairy\n" + "move if weak to it."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6957,7 +8158,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_ATTACK_UP, .holdEffectParam = 4, - .description = sLiechiBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Attack in\n" + "a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6970,7 +8173,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_DEFENSE_UP, .holdEffectParam = 4, - .description = sGanlonBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Defense in\n" + "a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6983,7 +8188,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_SPEED_UP, .holdEffectParam = 4, - .description = sSalacBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Speed in\n" + "a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -6996,7 +8203,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_SP_ATTACK_UP, .holdEffectParam = 4, - .description = sPetayaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Sp. Atk in\n" + "a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7009,7 +8218,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_SP_DEFENSE_UP, .holdEffectParam = 4, - .description = sApicotBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises Sp. Def in\n" + "a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7022,7 +8233,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_CRITICAL_UP, .holdEffectParam = 4, - .description = sLansatBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "ups the critical-\n" + "hit rate in a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7035,7 +8248,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_RANDOM_STAT_UP, .holdEffectParam = 4, - .description = sStarfBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "sharply boosts a\n" + "stat in a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7047,7 +8262,9 @@ const struct Item gItems[] = .name = _("Enigma Berry"), .price = 20, .holdEffect = HOLD_EFFECT_ENIGMA_BERRY, - .description = sEnigmaBerryDesc, + .description = COMPOUND_STRING("A hold item that\n" + "heals from super\n" + "effective moves."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7060,7 +8277,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_MICLE_BERRY, .holdEffectParam = 4, - .description = sMicleBerryDesc, + .description = COMPOUND_STRING("When held, it ups\n" + "the Accuracy of a\n" + "move in a pinch."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7073,7 +8292,9 @@ const struct Item gItems[] = .price = 20, .holdEffect = HOLD_EFFECT_CUSTAP_BERRY, .holdEffectParam = 4, - .description = sCustapBerryDesc, + .description = COMPOUND_STRING("It allows a Pokémon\n" + "in a pinch to move\n" + "first just once."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7085,7 +8306,9 @@ const struct Item gItems[] = .name = _("Jaboca Berry"), .price = 20, .holdEffect = HOLD_EFFECT_JABOCA_BERRY, - .description = sJabocaBerryDesc, + .description = COMPOUND_STRING("If hit by a physical\n" + "move, it will hurt\n" + "the attacker a bit."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7097,7 +8320,9 @@ const struct Item gItems[] = .name = _("Rowap Berry"), .price = 20, .holdEffect = HOLD_EFFECT_ROWAP_BERRY, - .description = sRowapBerryDesc, + .description = COMPOUND_STRING("If hit by a special\n" + "move, it will hurt\n" + "the attacker a bit."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7109,7 +8334,9 @@ const struct Item gItems[] = .name = _("Kee Berry"), .price = 20, .holdEffect = HOLD_EFFECT_KEE_BERRY, - .description = sKeeBerryDesc, + .description = COMPOUND_STRING("If hit by a physical\n" + "move, it raises the\n" + "Defense a bit."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7121,7 +8348,9 @@ const struct Item gItems[] = .name = _("Maranga Berry"), .price = 20, .holdEffect = HOLD_EFFECT_MARANGA_BERRY, - .description = sMarangaBerryDesc, + .description = COMPOUND_STRING("If hit by a special\n" + "move, it raises the\n" + "Sp. Def. a bit."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7132,7 +8361,9 @@ const struct Item gItems[] = { .name = _("Enigma Berry"), .price = 20, - .description = sEnigmaBerryEReaderDesc, + .description = COMPOUND_STRING("{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow a mystery."), .pocket = POCKET_BERRIES, .type = ITEM_USE_BAG_MENU, // Type handled by ItemUseOutOfBattle_EnigmaBerry .fieldUseFunc = ItemUseOutOfBattle_EnigmaBerry, @@ -7146,7 +8377,9 @@ const struct Item gItems[] = { .name = _("TM01"), .price = 3000, - .description = sTM01Desc, + .description = COMPOUND_STRING("Powerful, but makes\n" + "the user flinch if\n" + "hit by the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7158,7 +8391,9 @@ const struct Item gItems[] = { .name = _("TM02"), .price = 3000, - .description = sTM02Desc, + .description = COMPOUND_STRING("Hooks and slashes\n" + "the foe with long,\n" + "sharp claws."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7170,7 +8405,9 @@ const struct Item gItems[] = { .name = _("TM03"), .price = 3000, - .description = sTM03Desc, + .description = COMPOUND_STRING("Generates an\n" + "ultrasonic wave\n" + "that may confuse."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7182,7 +8419,9 @@ const struct Item gItems[] = { .name = _("TM04"), .price = 3000, - .description = sTM04Desc, + .description = COMPOUND_STRING("Raises Sp. Atk and\n" + "Sp. Def by focusing\n" + "the mind."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7194,7 +8433,9 @@ const struct Item gItems[] = { .name = _("TM05"), .price = 1000, - .description = sTM05Desc, + .description = COMPOUND_STRING("A savage roar that\n" + "makes the foe flee \n" + "to end the battle."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7206,7 +8447,9 @@ const struct Item gItems[] = { .name = _("TM06"), .price = 3000, - .description = sTM06Desc, + .description = COMPOUND_STRING("Poisons the foe\n" + "with a toxin that\n" + "gradually worsens."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7218,7 +8461,9 @@ const struct Item gItems[] = { .name = _("TM07"), .price = 3000, - .description = sTM07Desc, + .description = COMPOUND_STRING("Creates a hailstorm\n" + "that damages all\n" + "types except Ice."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7230,7 +8475,9 @@ const struct Item gItems[] = { .name = _("TM08"), .price = 3000, - .description = sTM08Desc, + .description = COMPOUND_STRING("Bulks up the body\n" + "to boost both\n" + "Attack & Defense."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7242,7 +8489,9 @@ const struct Item gItems[] = { .name = _("TM09"), .price = 3000, - .description = sTM09Desc, + .description = COMPOUND_STRING("Shoots 2 to 5 seeds\n" + "in a row to strike\n" + "the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7254,7 +8503,9 @@ const struct Item gItems[] = { .name = _("TM10"), .price = 3000, - .description = sTM10Desc, + .description = COMPOUND_STRING("The attack power\n" + "varies among\n" + "different Pokémon."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7266,7 +8517,9 @@ const struct Item gItems[] = { .name = _("TM11"), .price = 2000, - .description = sTM11Desc, + .description = COMPOUND_STRING("Raises the power of\n" + "Fire-type moves\n" + "for 5 turns."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7278,7 +8531,9 @@ const struct Item gItems[] = { .name = _("TM12"), .price = 3000, - .description = sTM12Desc, + .description = COMPOUND_STRING("Enrages the foe so\n" + "it can only use\n" + "attack moves."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7290,7 +8545,9 @@ const struct Item gItems[] = { .name = _("TM13"), .price = 3000, - .description = sTM13Desc, + .description = COMPOUND_STRING("Fires an icy cold\n" + "beam that may\n" + "freeze the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7302,7 +8559,9 @@ const struct Item gItems[] = { .name = _("TM14"), .price = 5500, - .description = sTM14Desc, + .description = COMPOUND_STRING("A brutal snow-and-\n" + "wind attack that\n" + "may freeze the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7314,7 +8573,9 @@ const struct Item gItems[] = { .name = _("TM15"), .price = 7500, - .description = sTM15Desc, + .description = COMPOUND_STRING("Powerful, but needs\n" + "recharging the\n" + "next turn."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7326,7 +8587,9 @@ const struct Item gItems[] = { .name = _("TM16"), .price = 3000, - .description = sTM16Desc, + .description = COMPOUND_STRING("Creates a wall of\n" + "light that lowers\n" + "Sp. Atk damage."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7338,7 +8601,9 @@ const struct Item gItems[] = { .name = _("TM17"), .price = 3000, - .description = sTM17Desc, + .description = COMPOUND_STRING("Negates all damage,\n" + "but may fail if used\n" + "in succession."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7350,7 +8615,9 @@ const struct Item gItems[] = { .name = _("TM18"), .price = 2000, - .description = sTM18Desc, + .description = COMPOUND_STRING("Raises the power of\n" + "Water-type moves\n" + "for 5 turns."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7362,7 +8629,9 @@ const struct Item gItems[] = { .name = _("TM19"), .price = 3000, - .description = sTM19Desc, + .description = COMPOUND_STRING("Recovers half the\n" + "HP of the damage \n" + "this move inflicts."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7374,7 +8643,9 @@ const struct Item gItems[] = { .name = _("TM20"), .price = 3000, - .description = sTM20Desc, + .description = COMPOUND_STRING("Prevents status\n" + "abnormality with a\n" + "mystical power."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7386,7 +8657,9 @@ const struct Item gItems[] = { .name = _("TM21"), .price = 1000, - .description = sTM21Desc, + .description = COMPOUND_STRING("The less the user\n" + "likes you, the more\n" + "powerful this move."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7398,7 +8671,9 @@ const struct Item gItems[] = { .name = _("TM22"), .price = 3000, - .description = sTM22Desc, + .description = COMPOUND_STRING("Absorbs sunlight in\n" + "the 1st turn, then\n" + "attacks next turn."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7410,7 +8685,9 @@ const struct Item gItems[] = { .name = _("TM23"), .price = 3000, - .description = sTM23Desc, + .description = COMPOUND_STRING("Slams the foe with\n" + "a hard tail. It may\n" + "lower Defense."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7422,7 +8699,9 @@ const struct Item gItems[] = { .name = _("TM24"), .price = 3000, - .description = sTM24Desc, + .description = COMPOUND_STRING("A powerful electric\n" + "attack that may\n" + "cause paralysis."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7434,7 +8713,9 @@ const struct Item gItems[] = { .name = _("TM25"), .price = 5500, - .description = sTM25Desc, + .description = COMPOUND_STRING("Strikes the foe\n" + "with a thunderbolt.\n" + "It may paralyze."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7446,7 +8727,9 @@ const struct Item gItems[] = { .name = _("TM26"), .price = 3000, - .description = sTM26Desc, + .description = COMPOUND_STRING("Causes a quake\n" + "that has no effect\n" + "on flying foes."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7458,7 +8741,9 @@ const struct Item gItems[] = { .name = _("TM27"), .price = 1000, - .description = sTM27Desc, + .description = COMPOUND_STRING("The more the user\n" + "likes you, the more\n" + "powerful this move."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7470,7 +8755,9 @@ const struct Item gItems[] = { .name = _("TM28"), .price = 2000, - .description = sTM28Desc, + .description = COMPOUND_STRING("Digs underground\n" + "the 1st turn, then\n" + "strikes next turn."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7482,7 +8769,9 @@ const struct Item gItems[] = { .name = _("TM29"), .price = 2000, - .description = sTM29Desc, + .description = COMPOUND_STRING("A powerful psychic\n" + "attack that may\n" + "lower Sp. Def."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7494,7 +8783,9 @@ const struct Item gItems[] = { .name = _("TM30"), .price = 3000, - .description = sTM30Desc, + .description = COMPOUND_STRING("Hurls a dark lump\n" + "at the foe. It may\n" + "lower Sp. Def."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7506,7 +8797,9 @@ const struct Item gItems[] = { .name = _("TM31"), .price = 3000, - .description = sTM31Desc, + .description = COMPOUND_STRING("Destroys barriers\n" + "like Light Screen\n" + "and causes damage."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7518,7 +8811,9 @@ const struct Item gItems[] = { .name = _("TM32"), .price = 2000, - .description = sTM32Desc, + .description = COMPOUND_STRING("Creates illusory\n" + "copies to enhance\n" + "elusiveness."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7530,7 +8825,9 @@ const struct Item gItems[] = { .name = _("TM33"), .price = 3000, - .description = sTM33Desc, + .description = COMPOUND_STRING("Creates a wall of\n" + "light that weakens\n" + "physical attacks."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7542,7 +8839,9 @@ const struct Item gItems[] = { .name = _("TM34"), .price = 3000, - .description = sTM34Desc, + .description = COMPOUND_STRING("Zaps the foe with a\n" + "jolt of electricity\n" + "that never misses."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7554,7 +8853,9 @@ const struct Item gItems[] = { .name = _("TM35"), .price = 3000, - .description = sTM35Desc, + .description = COMPOUND_STRING("Looses a stream of\n" + "fire that may burn\n" + "the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7566,7 +8867,9 @@ const struct Item gItems[] = { .name = _("TM36"), .price = 1000, - .description = sTM36Desc, + .description = COMPOUND_STRING("Hurls sludge at the\n" + "foe. It may poison\n" + "the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7578,7 +8881,9 @@ const struct Item gItems[] = { .name = _("TM37"), .price = 2000, - .description = sTM37Desc, + .description = COMPOUND_STRING("Causes a sandstorm\n" + "that hits the foe\n" + "over several turns."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7590,7 +8895,9 @@ const struct Item gItems[] = { .name = _("TM38"), .price = 5500, - .description = sTM38Desc, + .description = COMPOUND_STRING("A powerful fire\n" + "attack that may\n" + "burn the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7602,7 +8909,9 @@ const struct Item gItems[] = { .name = _("TM39"), .price = 3000, - .description = sTM39Desc, + .description = COMPOUND_STRING("Stops the foe from\n" + "moving with rocks.\n" + "May lower Speed."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7614,7 +8923,9 @@ const struct Item gItems[] = { .name = _("TM40"), .price = 3000, - .description = sTM40Desc, + .description = COMPOUND_STRING("An extremely fast\n" + "attack that can't\n" + "be avoided."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7626,7 +8937,9 @@ const struct Item gItems[] = { .name = _("TM41"), .price = 3000, - .description = sTM41Desc, + .description = COMPOUND_STRING("Prevents the foe\n" + "from using the same\n" + "move in a row."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7638,7 +8951,9 @@ const struct Item gItems[] = { .name = _("TM42"), .price = 3000, - .description = sTM42Desc, + .description = COMPOUND_STRING("Raises Attack when\n" + "poisoned, burned,\n" + "or paralyzed."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7650,7 +8965,9 @@ const struct Item gItems[] = { .name = _("TM43"), .price = 3000, - .description = sTM43Desc, + .description = COMPOUND_STRING("Adds an effect to\n" + "attack depending\n" + "on the location."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7662,7 +8979,9 @@ const struct Item gItems[] = { .name = _("TM44"), .price = 3000, - .description = sTM44Desc, + .description = COMPOUND_STRING("The user sleeps for\n" + "2 turns to restore\n" + "health and status."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7674,7 +8993,9 @@ const struct Item gItems[] = { .name = _("TM45"), .price = 3000, - .description = sTM45Desc, + .description = COMPOUND_STRING("Makes it tough to\n" + "attack a foe of the\n" + "opposite gender."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7686,7 +9007,9 @@ const struct Item gItems[] = { .name = _("TM46"), .price = 3000, - .description = sTM46Desc, + .description = COMPOUND_STRING("While attacking,\n" + "it may steal the\n" + "foe's held item."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7698,7 +9021,9 @@ const struct Item gItems[] = { .name = _("TM47"), .price = 3000, - .description = sTM47Desc, + .description = COMPOUND_STRING("Spreads hard-\n" + "edged wings and\n" + "slams into the foe."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7710,7 +9035,9 @@ const struct Item gItems[] = { .name = _("TM48"), .price = 3000, - .description = sTM48Desc, + .description = COMPOUND_STRING("Switches abilities\n" + "with the foe on the\n" + "turn this is used."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7722,7 +9049,9 @@ const struct Item gItems[] = { .name = _("TM49"), .price = 3000, - .description = sTM49Desc, + .description = COMPOUND_STRING("Steals the effects\n" + "of the move the foe\n" + "is trying to use."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7734,7 +9063,9 @@ const struct Item gItems[] = { .name = _("TM50"), .price = 3000, - .description = sTM50Desc, + .description = COMPOUND_STRING("Enables full-power\n" + "attack, but sharply\n" + "lowers Sp. Atk."), .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7746,7 +9077,7 @@ const struct Item gItems[] = { .name = _("TM51"), .price = 3000, - .description = sTM51Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7758,7 +9089,7 @@ const struct Item gItems[] = { .name = _("TM52"), .price = 3000, - .description = sTM52Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7770,7 +9101,7 @@ const struct Item gItems[] = { .name = _("TM53"), .price = 3000, - .description = sTM53Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7782,7 +9113,7 @@ const struct Item gItems[] = { .name = _("TM54"), .price = 3000, - .description = sTM54Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7794,7 +9125,7 @@ const struct Item gItems[] = { .name = _("TM55"), .price = 3000, - .description = sTM55Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7806,7 +9137,7 @@ const struct Item gItems[] = { .name = _("TM56"), .price = 3000, - .description = sTM56Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7818,7 +9149,7 @@ const struct Item gItems[] = { .name = _("TM57"), .price = 3000, - .description = sTM57Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7830,7 +9161,7 @@ const struct Item gItems[] = { .name = _("TM58"), .price = 3000, - .description = sTM58Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7842,7 +9173,7 @@ const struct Item gItems[] = { .name = _("TM59"), .price = 3000, - .description = sTM59Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7854,7 +9185,7 @@ const struct Item gItems[] = { .name = _("TM60"), .price = 3000, - .description = sTM60Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7866,7 +9197,7 @@ const struct Item gItems[] = { .name = _("TM61"), .price = 3000, - .description = sTM61Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7878,7 +9209,7 @@ const struct Item gItems[] = { .name = _("TM62"), .price = 3000, - .description = sTM62Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7890,7 +9221,7 @@ const struct Item gItems[] = { .name = _("TM63"), .price = 3000, - .description = sTM63Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7902,7 +9233,7 @@ const struct Item gItems[] = { .name = _("TM64"), .price = 3000, - .description = sTM64Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7914,7 +9245,7 @@ const struct Item gItems[] = { .name = _("TM65"), .price = 3000, - .description = sTM65Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7926,7 +9257,7 @@ const struct Item gItems[] = { .name = _("TM66"), .price = 3000, - .description = sTM66Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7938,7 +9269,7 @@ const struct Item gItems[] = { .name = _("TM67"), .price = 3000, - .description = sTM67Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7950,7 +9281,7 @@ const struct Item gItems[] = { .name = _("TM68"), .price = 3000, - .description = sTM68Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7962,7 +9293,7 @@ const struct Item gItems[] = { .name = _("TM69"), .price = 3000, - .description = sTM69Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7974,7 +9305,7 @@ const struct Item gItems[] = { .name = _("TM70"), .price = 3000, - .description = sTM70Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7986,7 +9317,7 @@ const struct Item gItems[] = { .name = _("TM71"), .price = 3000, - .description = sTM71Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -7998,7 +9329,7 @@ const struct Item gItems[] = { .name = _("TM72"), .price = 3000, - .description = sTM72Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8010,7 +9341,7 @@ const struct Item gItems[] = { .name = _("TM73"), .price = 3000, - .description = sTM73Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8022,7 +9353,7 @@ const struct Item gItems[] = { .name = _("TM74"), .price = 3000, - .description = sTM74Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8034,7 +9365,7 @@ const struct Item gItems[] = { .name = _("TM75"), .price = 3000, - .description = sTM75Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8046,7 +9377,7 @@ const struct Item gItems[] = { .name = _("TM76"), .price = 3000, - .description = sTM76Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8058,7 +9389,7 @@ const struct Item gItems[] = { .name = _("TM77"), .price = 3000, - .description = sTM77Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8070,7 +9401,7 @@ const struct Item gItems[] = { .name = _("TM78"), .price = 3000, - .description = sTM78Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8082,7 +9413,7 @@ const struct Item gItems[] = { .name = _("TM79"), .price = 3000, - .description = sTM79Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8094,7 +9425,7 @@ const struct Item gItems[] = { .name = _("TM80"), .price = 3000, - .description = sTM80Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8106,7 +9437,7 @@ const struct Item gItems[] = { .name = _("TM81"), .price = 3000, - .description = sTM81Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8118,7 +9449,7 @@ const struct Item gItems[] = { .name = _("TM82"), .price = 3000, - .description = sTM82Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8130,7 +9461,7 @@ const struct Item gItems[] = { .name = _("TM83"), .price = 3000, - .description = sTM83Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8142,7 +9473,7 @@ const struct Item gItems[] = { .name = _("TM84"), .price = 3000, - .description = sTM84Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8154,7 +9485,7 @@ const struct Item gItems[] = { .name = _("TM85"), .price = 3000, - .description = sTM85Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8166,7 +9497,7 @@ const struct Item gItems[] = { .name = _("TM86"), .price = 3000, - .description = sTM86Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8178,7 +9509,7 @@ const struct Item gItems[] = { .name = _("TM87"), .price = 3000, - .description = sTM87Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8190,7 +9521,7 @@ const struct Item gItems[] = { .name = _("TM88"), .price = 3000, - .description = sTM88Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8202,7 +9533,7 @@ const struct Item gItems[] = { .name = _("TM89"), .price = 3000, - .description = sTM89Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8214,7 +9545,7 @@ const struct Item gItems[] = { .name = _("TM90"), .price = 3000, - .description = sTM90Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8226,7 +9557,7 @@ const struct Item gItems[] = { .name = _("TM91"), .price = 3000, - .description = sTM91Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8238,7 +9569,7 @@ const struct Item gItems[] = { .name = _("TM92"), .price = 3000, - .description = sTM92Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8250,7 +9581,7 @@ const struct Item gItems[] = { .name = _("TM93"), .price = 3000, - .description = sTM93Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8262,7 +9593,7 @@ const struct Item gItems[] = { .name = _("TM94"), .price = 3000, - .description = sTM94Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8274,7 +9605,7 @@ const struct Item gItems[] = { .name = _("TM95"), .price = 3000, - .description = sTM95Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8286,7 +9617,7 @@ const struct Item gItems[] = { .name = _("TM96"), .price = 3000, - .description = sTM96Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8298,7 +9629,7 @@ const struct Item gItems[] = { .name = _("TM97"), .price = 3000, - .description = sTM97Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8310,7 +9641,7 @@ const struct Item gItems[] = { .name = _("TM98"), .price = 3000, - .description = sTM98Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8322,7 +9653,7 @@ const struct Item gItems[] = { .name = _("TM99"), .price = 3000, - .description = sTM99Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8334,7 +9665,7 @@ const struct Item gItems[] = { .name = _("TM100"), .price = 3000, - .description = sTM100Desc, + .description = sQuestionMarksDesc, // Todo .importance = I_REUSABLE_TMS, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8346,7 +9677,9 @@ const struct Item gItems[] = { .name = _("HM01"), .price = 0, - .description = sHM01Desc, + .description = COMPOUND_STRING("Attacks the foe\n" + "with sharp blades\n" + "or claws."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8358,7 +9691,9 @@ const struct Item gItems[] = { .name = _("HM02"), .price = 0, - .description = sHM02Desc, + .description = COMPOUND_STRING("Flies up on the\n" + "first turn, then\n" + "attacks next turn."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8370,7 +9705,9 @@ const struct Item gItems[] = { .name = _("HM03"), .price = 0, - .description = sHM03Desc, + .description = COMPOUND_STRING("Creates a huge\n" + "wave, then crashes\n" + "it down on the foe."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8382,7 +9719,9 @@ const struct Item gItems[] = { .name = _("HM04"), .price = 0, - .description = sHM04Desc, + .description = COMPOUND_STRING("Builds enormous\n" + "power, then slams\n" + "the foe."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8394,7 +9733,9 @@ const struct Item gItems[] = { .name = _("HM05"), .price = 0, - .description = sHM05Desc, + .description = COMPOUND_STRING("Looses a powerful\n" + "blast of light that\n" + "reduces accuracy."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8406,7 +9747,9 @@ const struct Item gItems[] = { .name = _("HM06"), .price = 0, - .description = sHM06Desc, + .description = COMPOUND_STRING("A rock-crushingly\n" + "tough attack that\n" + "may lower Defense."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8418,7 +9761,9 @@ const struct Item gItems[] = { .name = _("HM07"), .price = 0, - .description = sHM07Desc, + .description = COMPOUND_STRING("Attacks the foe\n" + "with enough power\n" + "to climb waterfalls."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8430,7 +9775,9 @@ const struct Item gItems[] = { .name = _("HM08"), .price = 0, - .description = sHM08Desc, + .description = COMPOUND_STRING("Dives underwater\n" + "the 1st turn, then\n" + "attacks next turn."), .importance = 1, .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, @@ -8446,7 +9793,9 @@ const struct Item gItems[] = .name = _("Oval Charm"), .price = 0, .importance = 1, - .description = sOvalCharmDesc, + .description = COMPOUND_STRING("Raises the chance\n" + "of finding eggs\n" + "at the daycare."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8457,7 +9806,9 @@ const struct Item gItems[] = .name = _("Shiny Charm"), .price = 0, .importance = 1, - .description = sShinyCharmDesc, + .description = COMPOUND_STRING("A charm that will\n" + "raise the chance\n" + "of Shiny Pokémon."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8468,7 +9819,9 @@ const struct Item gItems[] = .name = _("CatchngCharm"), .price = 0, .importance = 1, - .description = sCatchingCharmDesc, + .description = COMPOUND_STRING("A charm that raises\n" + "the chance of\n" + "Critical Captures."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8479,7 +9832,9 @@ const struct Item gItems[] = .name = _("Exp. Charm"), .price = 0, .importance = 1, - .description = sExpCharmDesc, + .description = COMPOUND_STRING("A charm that raises\n" + "the amount of Exp.\n" + "earned in battle."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8492,7 +9847,9 @@ const struct Item gItems[] = .name = _("RotomCatalog"), .price = 0, .importance = 1, - .description = sRotomCatalogDesc, + .description = COMPOUND_STRING("A catalog full of\n" + "deviced liked by\n" + "Rotom."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_RotomCatalog, @@ -8502,7 +9859,10 @@ const struct Item gItems[] = { .name = _("Gracidea"), .price = 0, - .description = sGracideaDesc, + .importance = 1, + .description = COMPOUND_STRING("Bouquets made with\n" + "it are offered as a\n" + "token of gratitude."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange, @@ -8512,7 +9872,10 @@ const struct Item gItems[] = { .name = _("Reveal Glass"), .price = 0, - .description = sRevealGlassDesc, + .importance = 1, + .description = COMPOUND_STRING("This glass returns\n" + "a Pokémon back to\n" + "its original form."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange, @@ -8522,10 +9885,13 @@ const struct Item gItems[] = { .name = _("DNA Splicers"), .price = 0, - .description = sDNASplicersDesc, + .importance = 1, + .description = COMPOUND_STRING("Splicer that fuses\n" + "Kyurem and a\n" + "certain Pokémon."), .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] = @@ -8533,7 +9899,9 @@ const struct Item gItems[] = .name = _("Zygarde Cube"), .price = 0, .importance = 1, - .description = sZygardeCubeDesc, + .description = COMPOUND_STRING("An item to store\n" + "Zygarde Cores and\n" + "Cells."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ZygardeCube, @@ -8543,7 +9911,10 @@ const struct Item gItems[] = { .name = _("Prison Bottle"), .price = 0, - .description = sPrisonBottleDesc, + .importance = 1, + .description = COMPOUND_STRING("A bottle used to\n" + "seal a certain\n" + "Pokémon long ago."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange, @@ -8553,30 +9924,39 @@ const struct Item gItems[] = { .name = _("N-Solarizer"), .price = 0, - .description = sNSolarizerDesc, + .importance = 1, + .description = COMPOUND_STRING("A device to fuse\n" + "and split Necrozma\n" + "using a Solgaleo."), .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, - .description = sNLunarizerDesc, + .importance = 1, + .description = COMPOUND_STRING("A device to fuse\n" + "and split Necrozma\n" + "using a Lunala."), .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, - .description = sReinsOfUnityDesc, + .importance = 1, + .description = COMPOUND_STRING("Reins that unite\n" + "Calyrex with its\n" + "beloved steed."), .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 @@ -8586,7 +9966,9 @@ const struct Item gItems[] = .name = _("Mega Ring"), .price = 0, .importance = 1, - .description = sMegaRingDesc, + .description = COMPOUND_STRING("Enables {PKMN} holding\n" + "their Mega Stone to\n" + "Mega Evolve."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8597,7 +9979,9 @@ const struct Item gItems[] = .name = _("Z-Power Ring"), .price = 0, .importance = 1, - .description = sZPowerRingDesc, + .description = COMPOUND_STRING("A strange ring\n" + "that enables\n" + "Z-Move usage."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8607,7 +9991,9 @@ const struct Item gItems[] = { .name = _("Dynamax Band"), .price = 0, - .description = sDynamaxBandDesc, + .description = COMPOUND_STRING("A band carrying a\n" + "Wishing Star that\n" + "allows Dynamaxing."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8619,7 +10005,9 @@ const struct Item gItems[] = { .name = _("Bicycle"), .price = 0, - .description = sBicycleDesc, + .description = COMPOUND_STRING("A folding bicycle\n" + "that is faster than\n" + "the Running Shoes."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8630,7 +10018,9 @@ const struct Item gItems[] = { .name = _("Mach Bike"), .price = 0, - .description = sMachBikeDesc, + .description = COMPOUND_STRING("A folding bicycle\n" + "that doubles your\n" + "speed or better."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8642,7 +10032,9 @@ const struct Item gItems[] = { .name = _("Acro Bike"), .price = 0, - .description = sAcroBikeDesc, + .description = COMPOUND_STRING("A folding bicycle\n" + "capable of jumps\n" + "and wheelies."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8654,7 +10046,9 @@ const struct Item gItems[] = { .name = _("Old Rod"), .price = 0, - .description = sOldRodDesc, + .description = COMPOUND_STRING("Use by any body of\n" + "water to fish for\n" + "wild Pokémon."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8666,7 +10060,9 @@ const struct Item gItems[] = { .name = _("Good Rod"), .price = 0, - .description = sGoodRodDesc, + .description = COMPOUND_STRING("A decent fishing\n" + "rod for catching\n" + "wild Pokémon."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8678,7 +10074,9 @@ const struct Item gItems[] = { .name = _("Super Rod"), .price = 0, - .description = sSuperRodDesc, + .description = COMPOUND_STRING("The best fishing\n" + "rod for catching\n" + "wild Pokémon."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8690,7 +10088,9 @@ const struct Item gItems[] = { .name = _("Dowsing MCHN"), .price = 0, - .description = sDowsingMachineDesc, + .description = COMPOUND_STRING("A device that\n" + "signals an invisible\n" + "item by sound."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8701,7 +10101,9 @@ const struct Item gItems[] = { .name = _("Town Map"), .price = 0, - .description = sTownMapDesc, + .description = COMPOUND_STRING("Can be viewed\n" + "anytime. Shows your\n" + "present location."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8712,18 +10114,26 @@ const struct Item gItems[] = { .name = _("Vs. Seeker"), .price = 0, - .description = sVsSeekerDesc, + .description = COMPOUND_STRING("A rechargeable unit\n" + "that flags battle-\n" + "ready Trainers."), .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] = { .name = _("TM Case"), .price = 0, - .description = sTMCaseDesc, + .description = COMPOUND_STRING("A convenient case\n" + "that holds TMs and\n" + "HMs."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8734,7 +10144,9 @@ const struct Item gItems[] = { .name = _("Berry Pouch"), .price = 0, - .description = sBerryPouchDesc, + .description = COMPOUND_STRING("A convenient\n" + "container that\n" + "holds Berries."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8745,7 +10157,9 @@ const struct Item gItems[] = { .name = _("{PKMN} Box Link"), .price = 0, - .description = sPokemonBoxLinkDesc, + .description = COMPOUND_STRING("This device grants\n" + "access to the {PKMN}\n" + "Storage System."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8756,7 +10170,8 @@ const struct Item gItems[] = { .name = _("Coin Case"), .price = 0, - .description = sCoinCaseDesc, + .description = COMPOUND_STRING("A case that holds\n" + "up to 9,999 Coins."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8767,7 +10182,9 @@ const struct Item gItems[] = { .name = _("Powder Jar"), .price = 0, - .description = sPowderJarDesc, + .description = COMPOUND_STRING("Stores Berry\n" + "Powder made using\n" + "a Berry Crusher."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8778,7 +10195,9 @@ const struct Item gItems[] = { .name = _("Wailmer Pail"), .price = 0, - .description = sWailmerPailDesc, + .description = COMPOUND_STRING("A tool used for\n" + "watering Berries\n" + "and plants."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8789,7 +10208,9 @@ const struct Item gItems[] = { .name = _("Poké Radar"), .price = 0, - .description = sPokeRadarDesc, + .description = COMPOUND_STRING("A tool used to\n" + "search out Pokémon\n" + "hiding in grass."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8800,7 +10221,9 @@ const struct Item gItems[] = { .name = _("{POKEBLOCK} Case"), .price = 0, - .description = sPokeblockCaseDesc, + .description = COMPOUND_STRING("A case for holding\n" + "{POKEBLOCK}s made with\n" + "a Berry Blender."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PBLOCK_CASE, @@ -8811,7 +10234,9 @@ const struct Item gItems[] = { .name = _("Soot Sack"), .price = 0, - .description = sSootSackDesc, + .description = COMPOUND_STRING("A sack used to\n" + "gather and hold\n" + "volcanic ash."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8822,7 +10247,9 @@ const struct Item gItems[] = { .name = _("Poké Flute"), .price = 0, - .description = sPokeFluteDesc, + .description = COMPOUND_STRING("A sweet-sounding\n" + "flute that awakens\n" + "Pokémon."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8833,7 +10260,9 @@ const struct Item gItems[] = { .name = _("Fame Checker"), .price = 0, - .description = sFameCheckerDesc, + .description = COMPOUND_STRING("Stores information\n" + "on famous people\n" + "for instant recall."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8844,7 +10273,9 @@ const struct Item gItems[] = { .name = _("Teachy TV"), .price = 0, - .description = sTeachyTVDesc, + .description = COMPOUND_STRING("A TV set tuned to\n" + "an advice program\n" + "for Trainers."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, @@ -8857,7 +10288,9 @@ const struct Item gItems[] = { .name = _("S.S. Ticket"), .price = 0, - .description = sSSTicketDesc, + .description = COMPOUND_STRING("The ticket required\n" + "for sailing on a\n" + "ferry."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8868,7 +10301,9 @@ const struct Item gItems[] = { .name = _("Eon Ticket"), .price = 0, - .description = sEonTicketDesc, + .description = COMPOUND_STRING("The ticket for a\n" + "ferry to a distant\n" + "southern island."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8880,7 +10315,9 @@ const struct Item gItems[] = { .name = _("Mystic Ticket"), .price = 0, - .description = sMysticTicketDesc, + .description = COMPOUND_STRING("A ticket required\n" + "to board the ship\n" + "to Navel Rock."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8891,7 +10328,9 @@ const struct Item gItems[] = { .name = _("Aurora Ticket"), .price = 0, - .description = sAuroraTicketDesc, + .description = COMPOUND_STRING("A ticket required\n" + "to board the ship\n" + "to Birth Island."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8902,7 +10341,9 @@ const struct Item gItems[] = { .name = _("Old Sea Map"), .price = 0, - .description = sOldSeaMapDesc, + .description = COMPOUND_STRING("A faded sea chart\n" + "that shows the way\n" + "to a certain island."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8913,7 +10354,9 @@ const struct Item gItems[] = { .name = _("Letter"), .price = 0, - .description = sLetterDesc, + .description = COMPOUND_STRING("A letter to Steven\n" + "from the President\n" + "of the Devon Corp."), .importance = 2, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8924,7 +10367,9 @@ const struct Item gItems[] = { .name = _("Devon Parts"), .price = 0, - .description = sDevonPartsDesc, + .description = COMPOUND_STRING("A package that\n" + "contains Devon's\n" + "machine parts."), .importance = 2, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8935,7 +10380,9 @@ const struct Item gItems[] = { .name = _("Go-Goggles"), .price = 0, - .description = sGoGogglesDesc, + .description = COMPOUND_STRING("Nifty goggles that\n" + "protect eyes from\n" + "desert sandstorms."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8946,7 +10393,9 @@ const struct Item gItems[] = { .name = _("Devon Scope"), .price = 0, - .description = sDevonScopeDesc, + .description = COMPOUND_STRING("A device by Devon\n" + "that signals any\n" + "unseeable Pokémon."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8957,7 +10406,9 @@ const struct Item gItems[] = { .name = _("Basement Key"), .price = 0, - .description = sBasementKeyDesc, + .description = COMPOUND_STRING("The key for New\n" + "Mauville beneath\n" + "Mauville City."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8968,7 +10419,9 @@ const struct Item gItems[] = { .name = _("Scanner"), .price = 0, - .description = sScannerDesc, + .description = COMPOUND_STRING("A device found\n" + "inside the\n" + "Abandoned Ship."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8979,7 +10432,9 @@ const struct Item gItems[] = { .name = _("Storage Key"), .price = 0, - .description = sStorageKeyDesc, + .description = COMPOUND_STRING("The key to the\n" + "storage inside the\n" + "Abandoned Ship."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8990,7 +10445,7 @@ const struct Item gItems[] = { .name = _("Key to Room 1"), .price = 0, - .description = sKeyToRoom1Desc, + .description = sKeyToRoomDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9001,7 +10456,7 @@ const struct Item gItems[] = { .name = _("Key to Room 2"), .price = 0, - .description = sKeyToRoom2Desc, + .description = sKeyToRoomDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9012,7 +10467,7 @@ const struct Item gItems[] = { .name = _("Key to Room 4"), .price = 0, - .description = sKeyToRoom4Desc, + .description = sKeyToRoomDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9023,7 +10478,7 @@ const struct Item gItems[] = { .name = _("Key to Room 6"), .price = 0, - .description = sKeyToRoom6Desc, + .description = sKeyToRoomDesc, .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9034,18 +10489,21 @@ const struct Item gItems[] = { .name = _("Meteorite"), .price = 0, - .description = sMeteoriteDesc, + .description = COMPOUND_STRING("A meteorite found\n" + "at Meteor Falls."), .importance = 1, .pocket = POCKET_KEY_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_FormChange, }, [ITEM_MAGMA_EMBLEM] = { .name = _("Magma Emblem"), .price = 0, - .description = sMagmaEmblemDesc, + .description = COMPOUND_STRING("A medal-like item in\n" + "the same shape as\n" + "Team Magma's mark."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9056,18 +10514,22 @@ const struct Item gItems[] = { .name = _("Contest Pass"), .price = 0, - .description = sContestPassDesc, + .description = COMPOUND_STRING("The pass required\n" + "for entering\n" + "Pokémon Contests."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, }, - [ITEM_OAKS_PARCEL] = + [ITEM_PARCEL] = { - .name = _("Oak's Parcel"), + .name = _("Parcel"), .price = 0, - .description = sOaksParcelDesc, + .description = COMPOUND_STRING("A parcel for Prof.\n" + "Oak from a Pokémon\n" + "Mart's clerk."), .importance = 2, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9078,7 +10540,9 @@ const struct Item gItems[] = { .name = _("Secret Key"), .price = 0, - .description = sSecretKeyDesc, + .description = COMPOUND_STRING("The key to the\n" + "Cinnabar Island\n" + "Gym's entrance."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9089,7 +10553,9 @@ const struct Item gItems[] = { .name = _("Bike Voucher"), .price = 0, - .description = sBikeVoucherDesc, + .description = COMPOUND_STRING("A voucher for\n" + "obtaining a bicycle\n" + "from the Bike Shop."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9100,7 +10566,9 @@ const struct Item gItems[] = { .name = _("Gold Teeth"), .price = 0, - .description = sGoldTeethDesc, + .description = COMPOUND_STRING("Gold dentures lost\n" + "by the Safari\n" + "Zone's Warden."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9111,7 +10579,9 @@ const struct Item gItems[] = { .name = _("Card Key"), .price = 0, - .description = sCardKeyDesc, + .description = COMPOUND_STRING("A card-type door\n" + "key used in Silph\n" + "Co's office."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9122,7 +10592,9 @@ const struct Item gItems[] = { .name = _("Lift Key"), .price = 0, - .description = sLiftKeyDesc, + .description = COMPOUND_STRING("An elevator key\n" + "used in Team\n" + "Rocket's Hideout."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9133,7 +10605,9 @@ const struct Item gItems[] = { .name = _("Silph Scope"), .price = 0, - .description = sSilphScopeDesc, + .description = COMPOUND_STRING("Silph Co's scope\n" + "makes unseeable\n" + "POKéMON visible."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9144,7 +10618,9 @@ const struct Item gItems[] = { .name = _("Tri-Pass"), .price = 0, - .description = sTriPassDesc, + .description = COMPOUND_STRING("A pass for ferries\n" + "between One, Two,\n" + "and Three Island."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9155,7 +10631,9 @@ const struct Item gItems[] = { .name = _("Rainbow Pass"), .price = 0, - .description = sRainbowPassDesc, + .description = COMPOUND_STRING("For ferries serving\n" + "Vermilion and the\n" + "Sevii Islands."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9166,7 +10644,9 @@ const struct Item gItems[] = { .name = _("Tea"), .price = 0, - .description = sTeaDesc, + .description = COMPOUND_STRING("A thirst-quenching\n" + "tea prepared by an\n" + "old lady."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9177,7 +10657,9 @@ const struct Item gItems[] = { .name = _("Ruby"), .price = 0, - .description = sRubyDesc, + .description = COMPOUND_STRING("An exquisite, red-\n" + "glowing gem that\n" + "symbolizes passion."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9188,7 +10670,9 @@ const struct Item gItems[] = { .name = _("Sapphire"), .price = 0, - .description = sSapphireDesc, + .description = COMPOUND_STRING("A brilliant blue gem\n" + "that symbolizes\n" + "honesty."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9200,7 +10684,9 @@ const struct Item gItems[] = .name = _("AbilityShield"), .price = 20000, .holdEffect = HOLD_EFFECT_ABILITY_SHIELD, - .description = sAbilityShieldDesc, + .description = COMPOUND_STRING("Ability changes are\n" + "prevented for this\n" + "items's holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9212,7 +10698,9 @@ const struct Item gItems[] = .name = _("Clear Amulet"), .price = 30000, .holdEffect = HOLD_EFFECT_CLEAR_AMULET, - .description = sClearAmuletDesc, + .description = COMPOUND_STRING("Stat lowering is\n" + "prevented for this\n" + "items's holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9224,7 +10712,9 @@ const struct Item gItems[] = .name = _("PunchingGlove"), .price = 15000, .holdEffect = HOLD_EFFECT_PUNCHING_GLOVE, - .description = sPunchingGloveDesc, + .description = COMPOUND_STRING("Powers up punching\n" + "moves and removes\n" + "their contact."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9236,7 +10726,9 @@ const struct Item gItems[] = .name = _("Covert Cloak"), .price = 20000, .holdEffect = HOLD_EFFECT_COVERT_CLOAK, - .description = sCovertCloakDesc, + .description = COMPOUND_STRING("Protects the holder\n" + "from secondary\n" + "move effects."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9248,7 +10740,9 @@ const struct Item gItems[] = .name = _("Loaded Dice"), .price = 20000, .holdEffect = HOLD_EFFECT_LOADED_DICE, - .description = sLoadedDiceDesc, + .description = COMPOUND_STRING("Rolls high numbers.\n" + "Multihit strikes\n" + "hit more times."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9259,7 +10753,9 @@ const struct Item gItems[] = { .name = _("AuspciousArmr"), .price = 3000, - .description = sAuspiciousArmorDesc, + .description = COMPOUND_STRING("Armor inhabited by\n" + "auspicious wishes.\n" + "Causes evolution."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9271,7 +10767,9 @@ const struct Item gItems[] = .name = _("BoosterEnergy"), .price = 0, .holdEffect = HOLD_EFFECT_BOOSTER_ENERGY, - .description = sBoosterEnergyDesc, + .description = COMPOUND_STRING("Encapsuled energy\n" + "ups Pokémon with\n" + "certain Abilities."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9282,7 +10780,9 @@ const struct Item gItems[] = { .name = _("BigBmbooShoot"), .price = 3000, - .description = sBigBambooShootDesc, + .description = COMPOUND_STRING("A large and rare\n" + "bamboo shoot. Best\n" + "sold to gourmands."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9293,7 +10793,9 @@ const struct Item gItems[] = { .name = _("GimighoulCoin"), .price = 400, - .description = sGimmighoulCoinDesc, + .description = COMPOUND_STRING("Gimmighoul hoard\n" + "and treasure these\n" + "curious coins."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9303,7 +10805,9 @@ const struct Item gItems[] = { .name = _("Leader'sCrest"), .price = 3000, - .description = sLeadersCrestDesc, + .description = COMPOUND_STRING("A shard of an old\n" + "blade of some sort.\n" + "Held by Bisharp."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9313,7 +10817,9 @@ const struct Item gItems[] = { .name = _("MaliciousArmr"), .price = 3000, - .description = sMaliciousArmorDesc, + .description = COMPOUND_STRING("Armor inhabited by\n" + "malicious will.\n" + "Causes evolution."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9325,7 +10831,9 @@ const struct Item gItems[] = .name = _("Mirror Herb"), .price = 30000, .holdEffect = HOLD_EFFECT_MIRROR_HERB, - .description = sMirrorHerbDesc, + .description = COMPOUND_STRING("Mirrors an enemy's\n" + "stat increases\n" + "but only once."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9336,7 +10844,9 @@ const struct Item gItems[] = { .name = _("ScrllOfDrknss"), .price = 0, - .description = sScrollOfDarknessDesc, + .description = COMPOUND_STRING("A peculiar scroll\n" + "with secrets of\n" + "the dark path."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, @@ -9347,7 +10857,9 @@ const struct Item gItems[] = { .name = _("ScrollOfWatrs"), .price = 0, - .description = sScrollOfWatersDesc, + .description = COMPOUND_STRING("A peculiar scroll\n" + "with secrets of\n" + "the water path."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, @@ -9358,7 +10870,9 @@ const struct Item gItems[] = { .name = _("Tera Orb"), .price = 0, - .description = sTeraOrbDesc, + .description = COMPOUND_STRING("Energy charges can\n" + "be used to cause\n" + "Terastallization."), .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -9369,7 +10883,9 @@ const struct Item gItems[] = { .name = _("TinyBmbooShot"), .price = 750, - .description = sTinyBambooShootDesc, + .description = COMPOUND_STRING("A small and rare\n" + "bamboo shoot. Best\n" + "sold to gourmands."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9560,7 +11076,9 @@ const struct Item gItems[] = { .name = _("AdamantCrystl"), .price = 0, - .description = sAdamantCrystalDesc, + .description = COMPOUND_STRING("A large, glowing gem\n" + "that lets Dialga\n" + "change form."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9571,7 +11089,9 @@ const struct Item gItems[] = { .name = _("Griseous Core"), .price = 0, - .description = sGriseousCoreDesc, + .description = COMPOUND_STRING("A large, glowing gem\n" + "that lets Giratina\n" + "change form."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9582,7 +11102,9 @@ const struct Item gItems[] = { .name = _("LustrousGlobe"), .price = 0, - .description = sLustrousGlobeDesc, + .description = COMPOUND_STRING("A large, glowing gem\n" + "that lets Palkia\n" + "change form."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9593,7 +11115,9 @@ const struct Item gItems[] = { .name = _("BlackAugurite"), .price = 8000, - .description = sBlackAuguriteDesc, + .description = COMPOUND_STRING("A black stone that\n" + "makes some Pokémon\n" + "evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9604,7 +11128,9 @@ const struct Item gItems[] = { .name = _("Linking Cord"), .price = 8000, - .description = sLinkingCordDesc, + .description = COMPOUND_STRING("A mysterious string\n" + "that makes some\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9615,7 +11141,9 @@ const struct Item gItems[] = { .name = _("Peat Block"), .price = 10000, - .description = sPeatBlockDesc, + .description = COMPOUND_STRING("A block of material\n" + "that makes some\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9627,7 +11155,9 @@ const struct Item gItems[] = .name = _("Berserk Gene"), .price = 20, .holdEffect = HOLD_EFFECT_BERSERK_GENE, - .description = sBerserkGene, + .description = COMPOUND_STRING("Sharply boosts\n" + "Attack, but causes\n" + "lasting confusion."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9640,7 +11170,9 @@ const struct Item gItems[] = .price = 1000, .holdEffect = HOLD_EFFECT_FAIRY_POWER, .holdEffectParam = TYPE_BOOST_PARAM, - .description = sFairyFeatherDesc, + .description = COMPOUND_STRING("A hold item that\n" + "raises the power of\n" + "Fairy-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9651,7 +11183,9 @@ const struct Item gItems[] = { .name = _("Syrupy Apple"), .price = 2200, - .description = sSyrupyAppleDesc, + .description = COMPOUND_STRING("A very syrupy apple\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9662,7 +11196,9 @@ const struct Item gItems[] = { .name = _("UnrmkblTeacup"), .price = 1600, - .description = sUnremarkableTeacupDesc, + .description = COMPOUND_STRING("A cracked teacup\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9673,7 +11209,9 @@ const struct Item gItems[] = { .name = _("MstrpceTeacup"), .price = 38000, - .description = sMasterpieceTeacupDesc, + .description = COMPOUND_STRING("A chipped teacup\n" + "that makes certain\n" + "Pokémon evolve."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, @@ -9685,7 +11223,9 @@ const struct Item gItems[] = .name = _("CornrstneMask"), .price = 0, .holdEffect = HOLD_EFFECT_MASK, - .description = sCornerstoneMaskDesc, + .description = COMPOUND_STRING("Allows Ogerpon to\n" + "wield the Rock-\n" + "type in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9697,7 +11237,9 @@ const struct Item gItems[] = .name = _("WellsprngMask"), .price = 0, .holdEffect = HOLD_EFFECT_MASK, - .description = sWellspringMaskDesc, + .description = COMPOUND_STRING("Allows Ogerpon to\n" + "wield the Water-\n" + "type in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9709,7 +11251,9 @@ const struct Item gItems[] = .name = _("HrthflameMask"), .price = 0, .holdEffect = HOLD_EFFECT_MASK, - .description = sHearthflameMaskDesc, + .description = COMPOUND_STRING("Allows Ogerpon to\n" + "wield the Fire-\n" + "type in battle."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -9720,7 +11264,7 @@ const struct Item gItems[] = { .name = _("Health Mochi"), .price = 500, - .description = sHealthMochiDesc, + .description = sHealthFeatherDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -9731,7 +11275,7 @@ const struct Item gItems[] = { .name = _("Muscle Mochi"), .price = 500, - .description = sMuscleMochiDesc, + .description = sMuscleFeatherDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -9742,7 +11286,7 @@ const struct Item gItems[] = { .name = _("Resist Mochi"), .price = 500, - .description = sResistMochiDesc, + .description = sResistFeatherDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -9753,7 +11297,7 @@ const struct Item gItems[] = { .name = _("Genius Mochi"), .price = 500, - .description = sGeniusMochiDesc, + .description = sGeniusFeatherDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -9764,7 +11308,7 @@ const struct Item gItems[] = { .name = _("Clever Mochi"), .price = 500, - .description = sCleverMochiDesc, + .description = sCleverFeatherDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -9775,7 +11319,7 @@ const struct Item gItems[] = { .name = _("Swift Mochi"), .price = 500, - .description = sSwiftMochiDesc, + .description = sSwiftFeatherDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -9786,7 +11330,9 @@ const struct Item gItems[] = { .name = _("FrshStrtMochi"), .price = 300, - .description = sFreshStartMochiDesc, + .description = COMPOUND_STRING("An item that resets\n" + "all base points of\n" + "a Pokémon."), .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_ResetEVs, @@ -9798,7 +11344,9 @@ const struct Item gItems[] = .name = _("GlmmringCharm"), .price = 0, .importance = 1, - .description = sGlimmeringCharmDesc, + .description = COMPOUND_STRING("A charm that will\n" + "raise the shards\n" + "from Tera Raids."), .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h index 2e1b6b3b31..e16cae74fc 100755 --- a/src/data/object_events/movement_action_func_tables.h +++ b/src/data/object_events/movement_action_func_tables.h @@ -420,6 +420,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, @@ -580,6 +582,8 @@ u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) [MOVEMENT_ACTION_FIGURE_8] = gMovementActionFuncs_Figure8, [MOVEMENT_ACTION_FLY_UP] = gMovementActionFuncs_FlyUp, [MOVEMENT_ACTION_FLY_DOWN] = gMovementActionFuncs_FlyDown, + [MOVEMENT_ACTION_EMOTE_X] = gMovementActionFuncs_EmoteX, + [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = gMovementActionFuncs_EmoteDoubleExclMark, }; u8 (*const gMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *) = { @@ -1519,3 +1523,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/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 2f2cf689be..a1e9fc22cf 100755 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -1,5 +1,4 @@ -const u32 gObjectEventPic_BrendanNormal[] = INCBIN_U32("graphics/object_events/pics/people/brendan/walking.4bpp"); -const u32 gObjectEventPic_BrendanRunning[] = INCBIN_U32("graphics/object_events/pics/people/brendan/running.4bpp"); +const u32 gObjectEventPic_BrendanNormalRunning[] = INCBIN_U32("graphics/object_events/pics/people/brendan/walking.4bpp", "graphics/object_events/pics/people/brendan/running.4bpp"); const u16 gObjectEventPal_Brendan[] = INCBIN_U16("graphics/object_events/palettes/brendan.gbapal"); const u32 gObjectEventPic_RubySapphireBrendanNormal[] = INCBIN_U32("graphics/object_events/pics/people/ruby_sapphire_brendan/walking.4bpp"); const u32 gObjectEventPic_RubySapphireBrendanRunning[] = INCBIN_U32("graphics/object_events/pics/people/ruby_sapphire_brendan/running.4bpp"); @@ -32,8 +31,7 @@ const u32 gObjectEventPic_MayDecorating[] = INCBIN_U32("graphics/object_events/p const u32 gObjectEventPic_BrendanUnderwater[] = INCBIN_U32("graphics/object_events/pics/people/brendan/underwater.4bpp"); const u32 gObjectEventPic_MayUnderwater[] = INCBIN_U32("graphics/object_events/pics/people/may/underwater.4bpp"); const u16 gObjectEventPal_PlayerUnderwater[] = INCBIN_U16("graphics/object_events/palettes/player_underwater.gbapal"); -const u32 gObjectEventPic_MayNormal[] = INCBIN_U32("graphics/object_events/pics/people/may/walking.4bpp"); -const u32 gObjectEventPic_MayRunning[] = INCBIN_U32("graphics/object_events/pics/people/may/running.4bpp"); +const u32 gObjectEventPic_MayNormalRunning[] = INCBIN_U32("graphics/object_events/pics/people/may/walking.4bpp", "graphics/object_events/pics/people/may/running.4bpp"); const u16 gObjectEventPal_May[] = INCBIN_U16("graphics/object_events/palettes/may.gbapal"); const u16 gObjectEventPal_MayReflection[] = INCBIN_U16("graphics/object_events/palettes/may_reflection.gbapal"); const u32 gObjectEventPic_RubySapphireMayNormal[] = INCBIN_U32("graphics/object_events/pics/people/ruby_sapphire_may/walking.4bpp"); diff --git a/src/data/object_events/object_event_pic_tables.h b/src/data/object_events/object_event_pic_tables.h index 1b8c9c727a..aa9f4e1532 100755 --- a/src/data/object_events/object_event_pic_tables.h +++ b/src/data/object_events/object_event_pic_tables.h @@ -1,64 +1,13 @@ static const struct SpriteFrameImage sPicTable_BrendanNormal[] = { - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 0), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 1), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 2), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 3), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 4), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 5), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 6), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 7), - overworld_frame(gObjectEventPic_BrendanNormal, 2, 4, 8), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 0), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 1), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 2), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 3), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 4), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 5), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 6), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 7), - overworld_frame(gObjectEventPic_BrendanRunning, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_BrendanNormalRunning, 2, 4), }; static const struct SpriteFrameImage sPicTable_BrendanMachBike[] = { - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 0), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 1), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 2), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 3), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 4), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 5), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 6), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 7), - overworld_frame(gObjectEventPic_BrendanMachBike, 4, 4, 8), + overworld_ascending_frames(gObjectEventPic_BrendanMachBike, 4, 4), }; static const struct SpriteFrameImage sPicTable_BrendanAcroBike[] = { - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 0), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 1), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 2), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 3), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 4), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 5), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 6), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 7), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 8), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 9), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 10), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 11), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 12), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 13), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 14), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 15), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 16), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 17), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 18), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 19), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 20), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 21), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 22), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 23), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 24), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 25), - overworld_frame(gObjectEventPic_BrendanAcroBike, 4, 4, 26), + overworld_ascending_frames(gObjectEventPic_BrendanAcroBike, 4, 4), }; static const struct SpriteFrameImage sPicTable_BrendanSurfing[] = { @@ -89,285 +38,99 @@ static const struct SpriteFrameImage sPicTable_BrendanUnderwater[] = { }; static const struct SpriteFrameImage sPicTable_BrendanFieldMove[] = { - overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 0), - overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 1), - overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 2), - overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 3), - overworld_frame(gObjectEventPic_BrendanFieldMove, 4, 4, 4), + overworld_ascending_frames(gObjectEventPic_BrendanFieldMove, 4, 4), }; static const struct SpriteFrameImage sPicTable_QuintyPlump[] = { - overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 0), - overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 1), - overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 2), - overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 3), - overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 4), - overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 5), - overworld_frame(gObjectEventPic_QuintyPlump, 4, 4, 6), + overworld_ascending_frames(gObjectEventPic_QuintyPlump, 4, 4), }; static const struct SpriteFrameImage sPicTable_NinjaBoy[] = { - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 0), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 1), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 2), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 3), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 4), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 5), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 6), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 7), - overworld_frame(gObjectEventPic_NinjaBoy, 2, 2, 8), + overworld_ascending_frames(gObjectEventPic_NinjaBoy, 2, 2), }; static const struct SpriteFrameImage sPicTable_Twin[] = { - overworld_frame(gObjectEventPic_Twin, 2, 4, 0), - overworld_frame(gObjectEventPic_Twin, 2, 4, 1), - overworld_frame(gObjectEventPic_Twin, 2, 4, 2), - overworld_frame(gObjectEventPic_Twin, 2, 4, 3), - overworld_frame(gObjectEventPic_Twin, 2, 4, 4), - overworld_frame(gObjectEventPic_Twin, 2, 4, 5), - overworld_frame(gObjectEventPic_Twin, 2, 4, 6), - overworld_frame(gObjectEventPic_Twin, 2, 4, 7), - overworld_frame(gObjectEventPic_Twin, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Twin, 2, 4), }; static const struct SpriteFrameImage sPicTable_Boy1[] = { - overworld_frame(gObjectEventPic_Boy1, 2, 4, 0), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 1), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 2), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 3), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 4), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 5), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 6), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 7), - overworld_frame(gObjectEventPic_Boy1, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Boy1, 2, 4), }; static const struct SpriteFrameImage sPicTable_Girl1[] = { - overworld_frame(gObjectEventPic_Girl1, 2, 4, 0), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 1), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 2), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 3), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 4), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 5), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 6), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 7), - overworld_frame(gObjectEventPic_Girl1, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Girl1, 2, 4), }; static const struct SpriteFrameImage sPicTable_Boy2[] = { - overworld_frame(gObjectEventPic_Boy2, 2, 4, 0), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 1), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 2), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 3), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 4), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 5), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 6), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 7), - overworld_frame(gObjectEventPic_Boy2, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Boy2, 2, 4), }; static const struct SpriteFrameImage sPicTable_Girl2[] = { - overworld_frame(gObjectEventPic_Girl2, 2, 4, 0), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 1), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 2), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 3), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 4), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 5), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 6), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 7), - overworld_frame(gObjectEventPic_Girl2, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Girl2, 2, 4), }; static const struct SpriteFrameImage sPicTable_LittleBoy[] = { - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 0), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 1), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 2), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 3), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 4), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 5), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 6), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 7), - overworld_frame(gObjectEventPic_LittleBoy, 2, 2, 8), + overworld_ascending_frames(gObjectEventPic_LittleBoy, 2, 2), }; static const struct SpriteFrameImage sPicTable_LittleGirl[] = { - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 0), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 1), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 2), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 3), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 4), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 5), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 6), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 7), - overworld_frame(gObjectEventPic_LittleGirl, 2, 2, 8), + overworld_ascending_frames(gObjectEventPic_LittleGirl, 2, 2), }; static const struct SpriteFrameImage sPicTable_Boy3[] = { - overworld_frame(gObjectEventPic_Boy3, 2, 4, 0), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 1), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 2), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 3), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 4), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 5), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 6), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 7), - overworld_frame(gObjectEventPic_Boy3, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Boy3, 2, 4), }; static const struct SpriteFrameImage sPicTable_Girl3[] = { - overworld_frame(gObjectEventPic_Girl3, 2, 4, 0), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 1), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 2), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 3), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 4), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 5), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 6), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 7), - overworld_frame(gObjectEventPic_Girl3, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Girl3, 2, 4), }; static const struct SpriteFrameImage sPicTable_RichBoy[] = { - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 0), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 1), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 2), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 3), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 4), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 5), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 6), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 7), - overworld_frame(gObjectEventPic_RichBoy, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_RichBoy, 2, 4), }; static const struct SpriteFrameImage sPicTable_Woman1[] = { - overworld_frame(gObjectEventPic_Woman1, 2, 4, 0), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 1), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 2), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 3), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 4), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 5), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 6), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 7), - overworld_frame(gObjectEventPic_Woman1, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Woman1, 2, 4), }; static const struct SpriteFrameImage sPicTable_FatMan[] = { - overworld_frame(gObjectEventPic_FatMan, 2, 4, 0), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 1), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 2), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 3), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 4), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 5), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 6), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 7), - overworld_frame(gObjectEventPic_FatMan, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_FatMan, 2, 4), }; static const struct SpriteFrameImage sPicTable_PokefanF[] = { - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 0), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 1), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 2), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 3), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 4), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 5), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 6), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 7), - overworld_frame(gObjectEventPic_PokefanF, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_PokefanF, 2, 4), }; static const struct SpriteFrameImage sPicTable_Man1[] = { - overworld_frame(gObjectEventPic_Man1, 2, 4, 0), - overworld_frame(gObjectEventPic_Man1, 2, 4, 1), - overworld_frame(gObjectEventPic_Man1, 2, 4, 2), - overworld_frame(gObjectEventPic_Man1, 2, 4, 3), - overworld_frame(gObjectEventPic_Man1, 2, 4, 4), - overworld_frame(gObjectEventPic_Man1, 2, 4, 5), - overworld_frame(gObjectEventPic_Man1, 2, 4, 6), - overworld_frame(gObjectEventPic_Man1, 2, 4, 7), - overworld_frame(gObjectEventPic_Man1, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Man1, 2, 4), }; static const struct SpriteFrameImage sPicTable_Woman2[] = { - overworld_frame(gObjectEventPic_Woman2, 2, 4, 0), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 1), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 2), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 3), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 4), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 5), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 6), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 7), - overworld_frame(gObjectEventPic_Woman2, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Woman2, 2, 4), }; static const struct SpriteFrameImage sPicTable_ExpertM[] = { - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 0), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 1), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 2), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 3), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 4), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 5), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 6), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 7), - overworld_frame(gObjectEventPic_ExpertM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_ExpertM, 2, 4), }; static const struct SpriteFrameImage sPicTable_ExpertF[] = { - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 0), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 1), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 2), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 3), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 4), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 5), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 6), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 7), - overworld_frame(gObjectEventPic_ExpertF, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_ExpertF, 2, 4), }; static const struct SpriteFrameImage sPicTable_Man2[] = { - overworld_frame(gObjectEventPic_Man2, 2, 4, 0), - overworld_frame(gObjectEventPic_Man2, 2, 4, 1), - overworld_frame(gObjectEventPic_Man2, 2, 4, 2), - overworld_frame(gObjectEventPic_Man2, 2, 4, 3), - overworld_frame(gObjectEventPic_Man2, 2, 4, 4), - overworld_frame(gObjectEventPic_Man2, 2, 4, 5), - overworld_frame(gObjectEventPic_Man2, 2, 4, 6), - overworld_frame(gObjectEventPic_Man2, 2, 4, 7), - overworld_frame(gObjectEventPic_Man2, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Man2, 2, 4), }; static const struct SpriteFrameImage sPicTable_Woman3[] = { - overworld_frame(gObjectEventPic_Woman3, 2, 4, 0), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 1), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 2), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 3), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 4), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 5), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 6), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 7), - overworld_frame(gObjectEventPic_Woman3, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Woman3, 2, 4), }; static const struct SpriteFrameImage sPicTable_PokefanM[] = { - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 0), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 1), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 2), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 3), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 4), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 5), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 6), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 7), - overworld_frame(gObjectEventPic_PokefanM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_PokefanM, 2, 4), }; static const struct SpriteFrameImage sPicTable_Woman4[] = { - overworld_frame(gObjectEventPic_Woman4, 2, 4, 0), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 1), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 2), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 3), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 4), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 5), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 6), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 7), - overworld_frame(gObjectEventPic_Woman4, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Woman4, 2, 4), }; static const struct SpriteFrameImage sPicTable_Cook[] = { @@ -383,15 +146,7 @@ static const struct SpriteFrameImage sPicTable_Cook[] = { }; static const struct SpriteFrameImage sPicTable_LinkReceptionist[] = { - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 0), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 1), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 2), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 3), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 4), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 5), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 6), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 7), - overworld_frame(gObjectEventPic_LinkReceptionist, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_LinkReceptionist, 2, 4), }; static const struct SpriteFrameImage sPicTable_OldMan[] = { @@ -407,327 +162,111 @@ static const struct SpriteFrameImage sPicTable_OldMan[] = { }; static const struct SpriteFrameImage sPicTable_OldWoman[] = { - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 0), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 1), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 2), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 3), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 4), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 5), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 6), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 7), - overworld_frame(gObjectEventPic_OldWoman, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_OldWoman, 2, 4), }; static const struct SpriteFrameImage sPicTable_Camper[] = { - overworld_frame(gObjectEventPic_Camper, 2, 4, 0), - overworld_frame(gObjectEventPic_Camper, 2, 4, 1), - overworld_frame(gObjectEventPic_Camper, 2, 4, 2), - overworld_frame(gObjectEventPic_Camper, 2, 4, 3), - overworld_frame(gObjectEventPic_Camper, 2, 4, 4), - overworld_frame(gObjectEventPic_Camper, 2, 4, 5), - overworld_frame(gObjectEventPic_Camper, 2, 4, 6), - overworld_frame(gObjectEventPic_Camper, 2, 4, 7), - overworld_frame(gObjectEventPic_Camper, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Camper, 2, 4), }; static const struct SpriteFrameImage sPicTable_Picnicker[] = { - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 0), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 1), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 2), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 3), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 4), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 5), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 6), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 7), - overworld_frame(gObjectEventPic_Picnicker, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Picnicker, 2, 4), }; static const struct SpriteFrameImage sPicTable_Man3[] = { - overworld_frame(gObjectEventPic_Man3, 2, 4, 0), - overworld_frame(gObjectEventPic_Man3, 2, 4, 1), - overworld_frame(gObjectEventPic_Man3, 2, 4, 2), - overworld_frame(gObjectEventPic_Man3, 2, 4, 3), - overworld_frame(gObjectEventPic_Man3, 2, 4, 4), - overworld_frame(gObjectEventPic_Man3, 2, 4, 5), - overworld_frame(gObjectEventPic_Man3, 2, 4, 6), - overworld_frame(gObjectEventPic_Man3, 2, 4, 7), - overworld_frame(gObjectEventPic_Man3, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Man3, 2, 4), }; static const struct SpriteFrameImage sPicTable_Woman5[] = { - overworld_frame(gObjectEventPic_Woman5, 2, 4, 0), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 1), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 2), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 3), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 4), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 5), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 6), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 7), - overworld_frame(gObjectEventPic_Woman5, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Woman5, 2, 4), }; static const struct SpriteFrameImage sPicTable_Youngster[] = { - overworld_frame(gObjectEventPic_Youngster, 2, 4, 0), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 1), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 2), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 3), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 4), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 5), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 6), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 7), - overworld_frame(gObjectEventPic_Youngster, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Youngster, 2, 4), }; static const struct SpriteFrameImage sPicTable_BugCatcher[] = { - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 0), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 1), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 2), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 3), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 4), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 5), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 6), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 7), - overworld_frame(gObjectEventPic_BugCatcher, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_BugCatcher, 2, 4), }; static const struct SpriteFrameImage sPicTable_PsychicM[] = { - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 0), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 1), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 2), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 3), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 4), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 5), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 6), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 7), - overworld_frame(gObjectEventPic_PsychicM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_PsychicM, 2, 4), }; static const struct SpriteFrameImage sPicTable_SchoolKidM[] = { - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 0), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 1), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 2), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 3), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 4), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 5), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 6), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 7), - overworld_frame(gObjectEventPic_SchoolKidM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_SchoolKidM, 2, 4), }; static const struct SpriteFrameImage sPicTable_Maniac[] = { - overworld_frame(gObjectEventPic_Maniac, 2, 4, 0), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 1), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 2), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 3), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 4), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 5), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 6), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 7), - overworld_frame(gObjectEventPic_Maniac, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Maniac, 2, 4), }; static const struct SpriteFrameImage sPicTable_HexManiac[] = { - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 0), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 1), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 2), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 3), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 4), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 5), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 6), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 7), - overworld_frame(gObjectEventPic_HexManiac, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_HexManiac, 2, 4), }; static const struct SpriteFrameImage sPicTable_SwimmerM[] = { - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 0), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 1), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 2), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 3), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 4), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 5), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 6), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 7), - overworld_frame(gObjectEventPic_SwimmerM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_SwimmerM, 2, 4), }; static const struct SpriteFrameImage sPicTable_SwimmerF[] = { - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 0), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 1), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 2), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 3), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 4), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 5), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 6), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 7), - overworld_frame(gObjectEventPic_SwimmerF, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_SwimmerF, 2, 4), }; static const struct SpriteFrameImage sPicTable_BlackBelt[] = { - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 0), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 1), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 2), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 3), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 4), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 5), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 6), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 7), - overworld_frame(gObjectEventPic_BlackBelt, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_BlackBelt, 2, 4), }; static const struct SpriteFrameImage sPicTable_Beauty[] = { - overworld_frame(gObjectEventPic_Beauty, 2, 4, 0), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 1), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 2), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 3), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 4), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 5), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 6), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 7), - overworld_frame(gObjectEventPic_Beauty, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Beauty, 2, 4), }; static const struct SpriteFrameImage sPicTable_Scientist1[] = { - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 0), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 1), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 2), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 3), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 4), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 5), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 6), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 7), - overworld_frame(gObjectEventPic_Scientist1, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Scientist1, 2, 4), }; static const struct SpriteFrameImage sPicTable_Lass[] = { - overworld_frame(gObjectEventPic_Lass, 2, 4, 0), - overworld_frame(gObjectEventPic_Lass, 2, 4, 1), - overworld_frame(gObjectEventPic_Lass, 2, 4, 2), - overworld_frame(gObjectEventPic_Lass, 2, 4, 3), - overworld_frame(gObjectEventPic_Lass, 2, 4, 4), - overworld_frame(gObjectEventPic_Lass, 2, 4, 5), - overworld_frame(gObjectEventPic_Lass, 2, 4, 6), - overworld_frame(gObjectEventPic_Lass, 2, 4, 7), - overworld_frame(gObjectEventPic_Lass, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Lass, 2, 4), }; static const struct SpriteFrameImage sPicTable_Gentleman[] = { - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 0), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 1), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 2), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 3), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 4), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 5), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 6), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 7), - overworld_frame(gObjectEventPic_Gentleman, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Gentleman, 2, 4), }; static const struct SpriteFrameImage sPicTable_Sailor[] = { - overworld_frame(gObjectEventPic_Sailor, 2, 4, 0), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 1), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 2), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 3), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 4), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 5), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 6), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 7), - overworld_frame(gObjectEventPic_Sailor, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Sailor, 2, 4), }; static const struct SpriteFrameImage sPicTable_Fisherman[] = { - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 0), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 1), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 2), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 3), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 4), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 5), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 6), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 7), - overworld_frame(gObjectEventPic_Fisherman, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Fisherman, 2, 4), }; static const struct SpriteFrameImage sPicTable_RunningTriathleteM[] = { - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 0), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 1), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 2), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 3), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 4), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 5), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 6), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 7), - overworld_frame(gObjectEventPic_RunningTriathleteM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_RunningTriathleteM, 2, 4), }; static const struct SpriteFrameImage sPicTable_RunningTriathleteF[] = { - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 0), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 1), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 2), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 3), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 4), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 5), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 6), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 7), - overworld_frame(gObjectEventPic_RunningTriathleteF, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_RunningTriathleteF, 2, 4), }; static const struct SpriteFrameImage sPicTable_TuberF[] = { - overworld_frame(gObjectEventPic_TuberF, 2, 2, 0), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 1), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 2), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 3), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 4), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 5), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 6), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 7), - overworld_frame(gObjectEventPic_TuberF, 2, 2, 8), + overworld_ascending_frames(gObjectEventPic_TuberF, 2, 2), }; static const struct SpriteFrameImage sPicTable_TuberM[] = { - overworld_frame(gObjectEventPic_TuberM, 2, 2, 0), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 1), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 2), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 3), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 4), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 5), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 6), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 7), - overworld_frame(gObjectEventPic_TuberM, 2, 2, 8), + overworld_ascending_frames(gObjectEventPic_TuberM, 2, 2), }; static const struct SpriteFrameImage sPicTable_Hiker[] = { - overworld_frame(gObjectEventPic_Hiker, 2, 4, 0), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 1), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 2), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 3), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 4), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 5), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 6), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 7), - overworld_frame(gObjectEventPic_Hiker, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Hiker, 2, 4), }; static const struct SpriteFrameImage sPicTable_CyclingTriathleteM[] = { - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 0), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 1), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 2), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 3), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 4), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 5), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 6), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 7), - overworld_frame(gObjectEventPic_CyclingTriathleteM, 4, 4, 8), + overworld_ascending_frames(gObjectEventPic_CyclingTriathleteM, 4, 4), }; static const struct SpriteFrameImage sPicTable_CyclingTriathleteF[] = { - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 0), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 1), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 2), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 3), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 4), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 5), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 6), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 7), - overworld_frame(gObjectEventPic_CyclingTriathleteF, 4, 4, 8), + overworld_ascending_frames(gObjectEventPic_CyclingTriathleteF, 4, 4), }; static const struct SpriteFrameImage sPicTable_Nurse[] = { @@ -748,87 +287,31 @@ static const struct SpriteFrameImage sPicTable_ItemBall[] = { }; static const struct SpriteFrameImage sPicTable_ProfBirch[] = { - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 0), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 1), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 2), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 3), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 4), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 5), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 6), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 7), - overworld_frame(gObjectEventPic_ProfBirch, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_ProfBirch, 2, 4), }; static const struct SpriteFrameImage sPicTable_Man4[] = { - overworld_frame(gObjectEventPic_Man4, 2, 4, 0), - overworld_frame(gObjectEventPic_Man4, 2, 4, 1), - overworld_frame(gObjectEventPic_Man4, 2, 4, 2), - overworld_frame(gObjectEventPic_Man4, 2, 4, 3), - overworld_frame(gObjectEventPic_Man4, 2, 4, 4), - overworld_frame(gObjectEventPic_Man4, 2, 4, 5), - overworld_frame(gObjectEventPic_Man4, 2, 4, 6), - overworld_frame(gObjectEventPic_Man4, 2, 4, 7), - overworld_frame(gObjectEventPic_Man4, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Man4, 2, 4), }; static const struct SpriteFrameImage sPicTable_Man5[] = { - overworld_frame(gObjectEventPic_Man5, 2, 4, 0), - overworld_frame(gObjectEventPic_Man5, 2, 4, 1), - overworld_frame(gObjectEventPic_Man5, 2, 4, 2), - overworld_frame(gObjectEventPic_Man5, 2, 4, 3), - overworld_frame(gObjectEventPic_Man5, 2, 4, 4), - overworld_frame(gObjectEventPic_Man5, 2, 4, 5), - overworld_frame(gObjectEventPic_Man5, 2, 4, 6), - overworld_frame(gObjectEventPic_Man5, 2, 4, 7), - overworld_frame(gObjectEventPic_Man5, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Man5, 2, 4), }; static const struct SpriteFrameImage sPicTable_ReporterM[] = { - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 0), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 1), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 2), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 3), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 4), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 5), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 6), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 7), - overworld_frame(gObjectEventPic_ReporterM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_ReporterM, 2, 4), }; static const struct SpriteFrameImage sPicTable_ReporterF[] = { - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 0), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 1), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 2), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 3), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 4), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 5), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 6), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 7), - overworld_frame(gObjectEventPic_ReporterF, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_ReporterF, 2, 4), }; static const struct SpriteFrameImage sPicTable_MauvilleOldMan1[] = { - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 0), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 1), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 2), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 3), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 4), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 5), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 6), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 7), - overworld_frame(gObjectEventPic_MauvilleOldMan1, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_MauvilleOldMan1, 2, 4), }; static const struct SpriteFrameImage sPicTable_MauvilleOldMan2[] = { - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 0), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 1), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 2), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 3), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 4), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 5), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 6), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 7), - overworld_frame(gObjectEventPic_MauvilleOldMan2, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_MauvilleOldMan2, 2, 4), }; static const struct SpriteFrameImage sPicTable_UnusedNatuDoll[] = { @@ -856,53 +339,23 @@ static const struct SpriteFrameImage sPicTable_UnusedPorygon2Doll[] = { }; static const struct SpriteFrameImage sPicTable_CuttableTree[] = { - overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 0), - overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 1), - overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 2), - overworld_frame(gObjectEventPic_CuttableTree, 2, 2, 3), + overworld_ascending_frames(gObjectEventPic_CuttableTree, 2, 2), }; static const struct SpriteFrameImage sPicTable_MartEmployee[] = { - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 0), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 1), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 2), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 3), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 4), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 5), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 6), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 7), - overworld_frame(gObjectEventPic_MartEmployee, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_MartEmployee, 2, 4), }; static const struct SpriteFrameImage sPicTable_RooftopSaleWoman[] = { - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 0), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 1), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 2), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 3), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 4), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 5), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 6), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 7), - overworld_frame(gObjectEventPic_RooftopSaleWoman, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_RooftopSaleWoman, 2, 4), }; static const struct SpriteFrameImage sPicTable_Teala[] = { - overworld_frame(gObjectEventPic_Teala, 2, 4, 0), - overworld_frame(gObjectEventPic_Teala, 2, 4, 1), - overworld_frame(gObjectEventPic_Teala, 2, 4, 2), - overworld_frame(gObjectEventPic_Teala, 2, 4, 3), - overworld_frame(gObjectEventPic_Teala, 2, 4, 4), - overworld_frame(gObjectEventPic_Teala, 2, 4, 5), - overworld_frame(gObjectEventPic_Teala, 2, 4, 6), - overworld_frame(gObjectEventPic_Teala, 2, 4, 7), - overworld_frame(gObjectEventPic_Teala, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Teala, 2, 4), }; static const struct SpriteFrameImage sPicTable_BreakableRock[] = { - overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 0), - overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 1), - overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 2), - overworld_frame(gObjectEventPic_BreakableRock, 2, 2, 3), + overworld_ascending_frames(gObjectEventPic_BreakableRock, 2, 2), }; static const struct SpriteFrameImage sPicTable_PushableBoulder[] = { @@ -954,102 +407,27 @@ static const struct SpriteFrameImage sPicTable_BirchsBag[] = { }; static const struct SpriteFrameImage sPicTable_EnemyZigzagoon[] = { - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 0), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 1), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 2), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 3), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 4), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 5), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 6), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 7), - overworld_frame(gObjectEventPic_EnemyZigzagoon, 4, 4, 8), + overworld_ascending_frames(gObjectEventPic_EnemyZigzagoon, 4, 4), }; static const struct SpriteFrameImage sPicTable_Poochyena[] = { - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 0), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 1), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 2), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 3), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 4), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 5), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 6), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 7), - overworld_frame(gObjectEventPic_Poochyena, 4, 4, 8), + overworld_ascending_frames(gObjectEventPic_Poochyena, 4, 4), }; static const struct SpriteFrameImage sPicTable_Artist[] = { - overworld_frame(gObjectEventPic_Artist, 2, 4, 0), - overworld_frame(gObjectEventPic_Artist, 2, 4, 1), - overworld_frame(gObjectEventPic_Artist, 2, 4, 2), - overworld_frame(gObjectEventPic_Artist, 2, 4, 3), - overworld_frame(gObjectEventPic_Artist, 2, 4, 4), - overworld_frame(gObjectEventPic_Artist, 2, 4, 5), - overworld_frame(gObjectEventPic_Artist, 2, 4, 6), - overworld_frame(gObjectEventPic_Artist, 2, 4, 7), - overworld_frame(gObjectEventPic_Artist, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Artist, 2, 4), }; static const struct SpriteFrameImage sPicTable_MayNormal[] = { - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 0), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 1), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 2), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 3), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 4), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 5), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 6), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 7), - overworld_frame(gObjectEventPic_MayNormal, 2, 4, 8), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 0), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 1), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 2), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 3), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 4), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 5), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 6), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 7), - overworld_frame(gObjectEventPic_MayRunning, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_MayNormalRunning, 2, 4), }; static const struct SpriteFrameImage sPicTable_MayMachBike[] = { - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 0), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 1), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 2), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 3), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 4), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 5), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 6), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 7), - overworld_frame(gObjectEventPic_MayMachBike, 4, 4, 8), + overworld_ascending_frames(gObjectEventPic_MayMachBike, 4, 4), }; static const struct SpriteFrameImage sPicTable_MayAcroBike[] = { - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 0), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 1), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 2), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 3), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 4), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 5), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 6), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 7), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 8), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 9), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 10), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 11), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 12), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 13), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 14), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 15), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 16), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 17), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 18), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 19), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 20), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 21), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 22), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 23), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 24), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 25), - overworld_frame(gObjectEventPic_MayAcroBike, 4, 4, 26), + overworld_ascending_frames(gObjectEventPic_MayAcroBike, 4, 4), }; static const struct SpriteFrameImage sPicTable_MaySurfing[] = { @@ -1080,23 +458,11 @@ static const struct SpriteFrameImage sPicTable_MayUnderwater[] = { }; static const struct SpriteFrameImage sPicTable_MayFieldMove[] = { - overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 0), - overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 1), - overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 2), - overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 3), - overworld_frame(gObjectEventPic_MayFieldMove, 4, 4, 4), + overworld_ascending_frames(gObjectEventPic_MayFieldMove, 4, 4), }; static const struct SpriteFrameImage sPicTable_Cameraman[] = { - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 0), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 1), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 2), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 3), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 4), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 5), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 6), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 7), - overworld_frame(gObjectEventPic_Cameraman, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Cameraman, 2, 4), }; static const struct SpriteFrameImage sPicTable_MovingBox[] = { @@ -1108,75 +474,27 @@ static const struct SpriteFrameImage sPicTable_CableCar[] = { }; static const struct SpriteFrameImage sPicTable_Scientist2[] = { - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 0), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 1), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 2), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 3), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 4), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 5), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 6), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 7), - overworld_frame(gObjectEventPic_Scientist2, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Scientist2, 2, 4), }; static const struct SpriteFrameImage sPicTable_DevonEmployee[] = { - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 0), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 1), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 2), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 3), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 4), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 5), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 6), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 7), - overworld_frame(gObjectEventPic_DevonEmployee, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_DevonEmployee, 2, 4), }; static const struct SpriteFrameImage sPicTable_AquaMemberM[] = { - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 0), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 1), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 2), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 3), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 4), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 5), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 6), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 7), - overworld_frame(gObjectEventPic_AquaMemberM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_AquaMemberM, 2, 4), }; static const struct SpriteFrameImage sPicTable_AquaMemberF[] = { - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 0), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 1), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 2), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 3), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 4), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 5), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 6), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 7), - overworld_frame(gObjectEventPic_AquaMemberF, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_AquaMemberF, 2, 4), }; static const struct SpriteFrameImage sPicTable_MagmaMemberM[] = { - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 0), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 1), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 2), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 3), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 4), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 5), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 6), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 7), - overworld_frame(gObjectEventPic_MagmaMemberM, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_MagmaMemberM, 2, 4), }; static const struct SpriteFrameImage sPicTable_MagmaMemberF[] = { - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 0), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 1), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 2), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 3), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 4), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 5), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 6), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 7), - overworld_frame(gObjectEventPic_MagmaMemberF, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_MagmaMemberF, 2, 4), }; static const struct SpriteFrameImage sPicTable_Sidney[] = { @@ -1324,93 +642,31 @@ static const struct SpriteFrameImage sPicTable_Tate[] = { }; static const struct SpriteFrameImage sPicTable_Wallace[] = { - overworld_frame(gObjectEventPic_Wallace, 2, 4, 0), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 1), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 2), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 3), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 4), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 5), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 6), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 7), - overworld_frame(gObjectEventPic_Wallace, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Wallace, 2, 4), }; static const struct SpriteFrameImage sPicTable_Steven[] = { - overworld_frame(gObjectEventPic_Steven, 2, 4, 0), - overworld_frame(gObjectEventPic_Steven, 2, 4, 1), - overworld_frame(gObjectEventPic_Steven, 2, 4, 2), - overworld_frame(gObjectEventPic_Steven, 2, 4, 3), - overworld_frame(gObjectEventPic_Steven, 2, 4, 4), - overworld_frame(gObjectEventPic_Steven, 2, 4, 5), - overworld_frame(gObjectEventPic_Steven, 2, 4, 6), - overworld_frame(gObjectEventPic_Steven, 2, 4, 7), - overworld_frame(gObjectEventPic_Steven, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Steven, 2, 4), }; static const struct SpriteFrameImage sPicTable_Wally[] = { - overworld_frame(gObjectEventPic_Wally, 2, 4, 0), - overworld_frame(gObjectEventPic_Wally, 2, 4, 1), - overworld_frame(gObjectEventPic_Wally, 2, 4, 2), - overworld_frame(gObjectEventPic_Wally, 2, 4, 3), - overworld_frame(gObjectEventPic_Wally, 2, 4, 4), - overworld_frame(gObjectEventPic_Wally, 2, 4, 5), - overworld_frame(gObjectEventPic_Wally, 2, 4, 6), - overworld_frame(gObjectEventPic_Wally, 2, 4, 7), - overworld_frame(gObjectEventPic_Wally, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Wally, 2, 4), }; static const struct SpriteFrameImage sPicTable_RubySapphireLittleBoy[] = { - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 0), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 1), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 2), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 3), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 4), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 5), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 6), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 7), - overworld_frame(gObjectEventPic_RubySapphireLittleBoy, 2, 2, 8), + overworld_ascending_frames(gObjectEventPic_RubySapphireLittleBoy, 2, 2), }; static const struct SpriteFrameImage sPicTable_BrendanFishing[] = { - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 0), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 1), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 2), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 3), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 4), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 5), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 6), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 7), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 8), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 9), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 10), - overworld_frame(gObjectEventPic_BrendanFishing, 4, 4, 11), + overworld_ascending_frames(gObjectEventPic_BrendanFishing, 4, 4), }; static const struct SpriteFrameImage sPicTable_MayFishing[] = { - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 0), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 1), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 2), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 3), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 4), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 5), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 6), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 7), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 8), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 9), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 10), - overworld_frame(gObjectEventPic_MayFishing, 4, 4, 11), + overworld_ascending_frames(gObjectEventPic_MayFishing, 4, 4), }; static const struct SpriteFrameImage sPicTable_HotSpringsOldWoman[] = { - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 0), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 1), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 2), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 3), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 4), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 5), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 6), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 7), - overworld_frame(gObjectEventPic_HotSpringsOldWoman, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_HotSpringsOldWoman, 2, 4), }; static const struct SpriteFrameImage sPicTable_SSTidal[] = { @@ -1642,15 +898,7 @@ static const struct SpriteFrameImage sPicTable_GameboyKid[] = { }; static const struct SpriteFrameImage sPicTable_ContestJudge[] = { - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 0), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 1), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 2), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 3), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 4), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 5), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 6), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 7), - overworld_frame(gObjectEventPic_ContestJudge, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_ContestJudge, 2, 4), }; static const struct SpriteFrameImage sPicTable_BrendanWatering[] = { @@ -1686,27 +934,11 @@ static const struct SpriteFrameImage sPicTable_MayDecorating[] = { }; static const struct SpriteFrameImage sPicTable_Archie[] = { - overworld_frame(gObjectEventPic_Archie, 2, 4, 0), - overworld_frame(gObjectEventPic_Archie, 2, 4, 1), - overworld_frame(gObjectEventPic_Archie, 2, 4, 2), - overworld_frame(gObjectEventPic_Archie, 2, 4, 3), - overworld_frame(gObjectEventPic_Archie, 2, 4, 4), - overworld_frame(gObjectEventPic_Archie, 2, 4, 5), - overworld_frame(gObjectEventPic_Archie, 2, 4, 6), - overworld_frame(gObjectEventPic_Archie, 2, 4, 7), - overworld_frame(gObjectEventPic_Archie, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Archie, 2, 4), }; static const struct SpriteFrameImage sPicTable_Maxie[] = { - overworld_frame(gObjectEventPic_Maxie, 2, 4, 0), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 1), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 2), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 3), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 4), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 5), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 6), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 7), - overworld_frame(gObjectEventPic_Maxie, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Maxie, 2, 4), }; static const struct SpriteFrameImage sPicTable_KyogreFront[] = { @@ -1866,15 +1098,7 @@ static const struct SpriteFrameImage sPicTable_Wingull[] = { }; static const struct SpriteFrameImage sPicTable_TuberMSwimming[] = { - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 0), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 1), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 2), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 3), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 4), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 5), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 6), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 7), - overworld_frame(gObjectEventPic_TuberMSwimming, 2, 2, 8), + overworld_ascending_frames(gObjectEventPic_TuberMSwimming, 2, 2), }; static const struct SpriteFrameImage sPicTable_Azurill[] = { @@ -1890,39 +1114,15 @@ static const struct SpriteFrameImage sPicTable_Azurill[] = { }; static const struct SpriteFrameImage sPicTable_Mom[] = { - overworld_frame(gObjectEventPic_Mom, 2, 4, 0), - overworld_frame(gObjectEventPic_Mom, 2, 4, 1), - overworld_frame(gObjectEventPic_Mom, 2, 4, 2), - overworld_frame(gObjectEventPic_Mom, 2, 4, 3), - overworld_frame(gObjectEventPic_Mom, 2, 4, 4), - overworld_frame(gObjectEventPic_Mom, 2, 4, 5), - overworld_frame(gObjectEventPic_Mom, 2, 4, 6), - overworld_frame(gObjectEventPic_Mom, 2, 4, 7), - overworld_frame(gObjectEventPic_Mom, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Mom, 2, 4), }; static const struct SpriteFrameImage sPicTable_Scott[] = { - overworld_frame(gObjectEventPic_Scott, 2, 4, 0), - overworld_frame(gObjectEventPic_Scott, 2, 4, 1), - overworld_frame(gObjectEventPic_Scott, 2, 4, 2), - overworld_frame(gObjectEventPic_Scott, 2, 4, 3), - overworld_frame(gObjectEventPic_Scott, 2, 4, 4), - overworld_frame(gObjectEventPic_Scott, 2, 4, 5), - overworld_frame(gObjectEventPic_Scott, 2, 4, 6), - overworld_frame(gObjectEventPic_Scott, 2, 4, 7), - overworld_frame(gObjectEventPic_Scott, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Scott, 2, 4), }; static const struct SpriteFrameImage sPicTable_Juan[] = { - overworld_frame(gObjectEventPic_Juan, 2, 4, 0), - overworld_frame(gObjectEventPic_Juan, 2, 4, 1), - overworld_frame(gObjectEventPic_Juan, 2, 4, 2), - overworld_frame(gObjectEventPic_Juan, 2, 4, 3), - overworld_frame(gObjectEventPic_Juan, 2, 4, 4), - overworld_frame(gObjectEventPic_Juan, 2, 4, 5), - overworld_frame(gObjectEventPic_Juan, 2, 4, 6), - overworld_frame(gObjectEventPic_Juan, 2, 4, 7), - overworld_frame(gObjectEventPic_Juan, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Juan, 2, 4), }; static const struct SpriteFrameImage sPicTable_MysteryEventDeliveryman[] = { @@ -1942,27 +1142,11 @@ static const struct SpriteFrameImage sPicTable_Statue[] = { }; static const struct SpriteFrameImage sPicTable_Dusclops[] = { - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 0), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 1), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 2), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 3), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 4), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 5), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 6), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 7), - overworld_frame(gObjectEventPic_Dusclops, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Dusclops, 2, 4), }; static const struct SpriteFrameImage sPicTable_Kirlia[] = { - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 0), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 1), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 2), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 3), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 4), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 5), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 6), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 7), - overworld_frame(gObjectEventPic_Kirlia, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Kirlia, 2, 4), }; static const struct SpriteFrameImage sPicTable_UnionRoomAttendant[] = { @@ -1990,39 +1174,15 @@ static const struct SpriteFrameImage sPicTable_Sudowoodo[] = { }; static const struct SpriteFrameImage sPicTable_Mew[] = { - overworld_frame(gObjectEventPic_Mew, 2, 4, 0), - overworld_frame(gObjectEventPic_Mew, 2, 4, 1), - overworld_frame(gObjectEventPic_Mew, 2, 4, 2), - overworld_frame(gObjectEventPic_Mew, 2, 4, 3), - overworld_frame(gObjectEventPic_Mew, 2, 4, 4), - overworld_frame(gObjectEventPic_Mew, 2, 4, 5), - overworld_frame(gObjectEventPic_Mew, 2, 4, 6), - overworld_frame(gObjectEventPic_Mew, 2, 4, 7), - overworld_frame(gObjectEventPic_Mew, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Mew, 2, 4), }; static const struct SpriteFrameImage sPicTable_Red[] = { - overworld_frame(gObjectEventPic_Red, 2, 4, 0), - overworld_frame(gObjectEventPic_Red, 2, 4, 1), - overworld_frame(gObjectEventPic_Red, 2, 4, 2), - overworld_frame(gObjectEventPic_Red, 2, 4, 3), - overworld_frame(gObjectEventPic_Red, 2, 4, 4), - overworld_frame(gObjectEventPic_Red, 2, 4, 5), - overworld_frame(gObjectEventPic_Red, 2, 4, 6), - overworld_frame(gObjectEventPic_Red, 2, 4, 7), - overworld_frame(gObjectEventPic_Red, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Red, 2, 4), }; static const struct SpriteFrameImage sPicTable_Leaf[] = { - overworld_frame(gObjectEventPic_Leaf, 2, 4, 0), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 1), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 2), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 3), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 4), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 5), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 6), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 7), - overworld_frame(gObjectEventPic_Leaf, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Leaf, 2, 4), }; static const struct SpriteFrameImage sPicTable_Deoxys[] = { @@ -2042,87 +1202,31 @@ static const struct SpriteFrameImage sPicTable_BirthIslandStone[] = { }; static const struct SpriteFrameImage sPicTable_Anabel[] = { - overworld_frame(gObjectEventPic_Anabel, 2, 4, 0), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 1), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 2), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 3), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 4), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 5), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 6), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 7), - overworld_frame(gObjectEventPic_Anabel, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Anabel, 2, 4), }; static const struct SpriteFrameImage sPicTable_Tucker[] = { - overworld_frame(gObjectEventPic_Tucker, 2, 4, 0), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 1), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 2), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 3), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 4), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 5), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 6), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 7), - overworld_frame(gObjectEventPic_Tucker, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Tucker, 2, 4), }; static const struct SpriteFrameImage sPicTable_Spenser[] = { - overworld_frame(gObjectEventPic_Spenser, 2, 4, 0), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 1), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 2), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 3), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 4), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 5), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 6), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 7), - overworld_frame(gObjectEventPic_Spenser, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Spenser, 2, 4), }; static const struct SpriteFrameImage sPicTable_Greta[] = { - overworld_frame(gObjectEventPic_Greta, 2, 4, 0), - overworld_frame(gObjectEventPic_Greta, 2, 4, 1), - overworld_frame(gObjectEventPic_Greta, 2, 4, 2), - overworld_frame(gObjectEventPic_Greta, 2, 4, 3), - overworld_frame(gObjectEventPic_Greta, 2, 4, 4), - overworld_frame(gObjectEventPic_Greta, 2, 4, 5), - overworld_frame(gObjectEventPic_Greta, 2, 4, 6), - overworld_frame(gObjectEventPic_Greta, 2, 4, 7), - overworld_frame(gObjectEventPic_Greta, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Greta, 2, 4), }; static const struct SpriteFrameImage sPicTable_Noland[] = { - overworld_frame(gObjectEventPic_Noland, 2, 4, 0), - overworld_frame(gObjectEventPic_Noland, 2, 4, 1), - overworld_frame(gObjectEventPic_Noland, 2, 4, 2), - overworld_frame(gObjectEventPic_Noland, 2, 4, 3), - overworld_frame(gObjectEventPic_Noland, 2, 4, 4), - overworld_frame(gObjectEventPic_Noland, 2, 4, 5), - overworld_frame(gObjectEventPic_Noland, 2, 4, 6), - overworld_frame(gObjectEventPic_Noland, 2, 4, 7), - overworld_frame(gObjectEventPic_Noland, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Noland, 2, 4), }; static const struct SpriteFrameImage sPicTable_Lucy[] = { - overworld_frame(gObjectEventPic_Lucy, 2, 4, 0), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 1), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 2), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 3), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 4), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 5), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 6), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 7), - overworld_frame(gObjectEventPic_Lucy, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Lucy, 2, 4), }; static const struct SpriteFrameImage sPicTable_Brandon[] = { - overworld_frame(gObjectEventPic_Brandon, 2, 4, 0), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 1), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 2), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 3), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 4), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 5), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 6), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 7), - overworld_frame(gObjectEventPic_Brandon, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_Brandon, 2, 4), }; static const struct SpriteFrameImage sPicTable_Lugia[] = { @@ -2150,25 +1254,9 @@ static const struct SpriteFrameImage sPicTable_HoOh[] = { }; static const struct SpriteFrameImage sPicTable_RubySapphireBrendan[] = { - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 0), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 1), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 2), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 3), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 4), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 5), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 6), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 7), - overworld_frame(gObjectEventPic_RubySapphireBrendanNormal, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_RubySapphireBrendanNormal, 2, 4), }; static const struct SpriteFrameImage sPicTable_RubySapphireMay[] = { - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 0), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 1), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 2), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 3), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 4), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 5), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 6), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 7), - overworld_frame(gObjectEventPic_RubySapphireMayNormal, 2, 4, 8), + overworld_ascending_frames(gObjectEventPic_RubySapphireMayNormal, 2, 4), }; diff --git a/src/data/partner_parties.h b/src/data/partner_parties.h new file mode 100644 index 0000000000..fec80c6ca1 --- /dev/null +++ b/src/data/partner_parties.h @@ -0,0 +1,26 @@ +static const struct TrainerMon sParty_StevenPartner[] = { + { + .species = SPECIES_METANG, + .lvl = 42, + .nature = TRAINER_PARTY_NATURE(NATURE_BRAVE), + .iv = TRAINER_PARTY_IVS(31, 31, 31, 31, 31, 31), + .ev = TRAINER_PARTY_EVS(0, 252, 252, 0, 6, 0), + .moves = {MOVE_LIGHT_SCREEN, MOVE_PSYCHIC, MOVE_REFLECT, MOVE_METAL_CLAW}, + }, + { + .species = SPECIES_SKARMORY, + .lvl = 43, + .nature = TRAINER_PARTY_NATURE(NATURE_IMPISH), + .iv = TRAINER_PARTY_IVS(31, 31, 31, 31, 31, 31), + .ev = TRAINER_PARTY_EVS(252, 0, 0, 0, 6, 252), + .moves = {MOVE_TOXIC, MOVE_AERIAL_ACE, MOVE_PROTECT, MOVE_STEEL_WING}, + }, + { + .species = SPECIES_AGGRON, + .lvl = 44, + .nature = TRAINER_PARTY_NATURE(NATURE_ADAMANT), + .iv = TRAINER_PARTY_IVS(31, 31, 31, 31, 31, 31), + .ev = TRAINER_PARTY_EVS(0, 252, 0, 0, 252, 6), + .moves = {MOVE_THUNDER, MOVE_PROTECT, MOVE_SOLAR_BEAM, MOVE_DRAGON_CLAW}, + } +}; diff --git a/src/data/party_menu.h b/src/data/party_menu.h index b12ca40651..168520a48c 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -658,6 +658,7 @@ static const u8 *const sActionStringTable[] = [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[] = diff --git a/src/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h index 4db494e875..61b0259638 100644 --- a/src/data/pokemon/egg_moves.h +++ b/src/data/pokemon/egg_moves.h @@ -5,6 +5,7 @@ #define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves const u16 gEggMoves[] = { +#if P_FAMILY_BULBASAUR egg_moves(BULBASAUR, MOVE_SKULL_BASH, MOVE_CHARM, @@ -21,7 +22,9 @@ const u16 gEggMoves[] = { MOVE_ENDURE, MOVE_GIGA_DRAIN, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_BULBASAUR +#if P_FAMILY_CHARMANDER egg_moves(CHARMANDER, MOVE_BELLY_DRUM, MOVE_ANCIENT_POWER, @@ -37,7 +40,9 @@ const u16 gEggMoves[] = { MOVE_DRAGON_PULSE, MOVE_FOCUS_PUNCH, MOVE_AIR_CUTTER), +#endif //P_FAMILY_CHARMANDER +#if P_FAMILY_SQUIRTLE egg_moves(SQUIRTLE, MOVE_MIRROR_COAT, MOVE_HAZE, @@ -55,7 +60,9 @@ const u16 gEggMoves[] = { MOVE_BRINE, MOVE_DRAGON_PULSE, MOVE_AURA_SPHERE), +#endif //P_FAMILY_SQUIRTLE +#if P_FAMILY_PIDGEY egg_moves(PIDGEY, MOVE_PURSUIT, MOVE_FEINT_ATTACK, @@ -66,7 +73,9 @@ const u16 gEggMoves[] = { MOVE_BRAVE_BIRD, MOVE_UPROAR, MOVE_DEFOG), +#endif //P_FAMILY_PIDGEY +#if P_FAMILY_RATTATA egg_moves(RATTATA, MOVE_SCREECH, MOVE_FLAME_WHEEL, @@ -80,6 +89,23 @@ const u16 gEggMoves[] = { MOVE_REVENGE, MOVE_FINAL_GAMBIT), +#if P_ALOLAN_FORMS + egg_moves(RATTATA_ALOLAN, + MOVE_COUNTER, + MOVE_FINAL_GAMBIT, + MOVE_FURY_SWIPES, + MOVE_ME_FIRST, + MOVE_REVENGE, + MOVE_REVERSAL, + MOVE_SNATCH, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_SWITCHEROO, + MOVE_UPROAR), +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW egg_moves(SPEAROW, MOVE_FEINT_ATTACK, MOVE_SCARY_FACE, @@ -92,7 +118,9 @@ const u16 gEggMoves[] = { MOVE_FEATHER_DANCE, MOVE_STEEL_WING, MOVE_RAZOR_WIND), +#endif //P_FAMILY_SPEAROW +#if P_FAMILY_EKANS egg_moves(EKANS, MOVE_PURSUIT, MOVE_SLAM, @@ -106,7 +134,31 @@ const u16 gEggMoves[] = { MOVE_IRON_TAIL, MOVE_SUCKER_PUNCH, MOVE_SNATCH), +#endif //P_FAMILY_EKANS +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS + egg_moves(PICHU, + MOVE_REVERSAL, + MOVE_BIDE, + MOVE_PRESENT, + MOVE_ENCORE, + MOVE_DOUBLE_SLAP, + MOVE_WISH, + MOVE_CHARGE, + MOVE_FAKE_OUT, + MOVE_THUNDER_PUNCH, + MOVE_TICKLE, + MOVE_FLAIL, + MOVE_ENDURE, + MOVE_LUCKY_CHANT, + MOVE_BESTOW, + MOVE_DISARMING_VOICE, + MOVE_ELECTRIC_TERRAIN), +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW egg_moves(SANDSHREW, MOVE_FLAIL, MOVE_COUNTER, @@ -120,7 +172,24 @@ const u16 gEggMoves[] = { MOVE_ROCK_CLIMB, MOVE_ROTOTILLER, MOVE_HONE_CLAWS), +#if P_ALOLAN_FORMS + egg_moves(SANDSHREW_ALOLAN, + MOVE_AMNESIA, + MOVE_CHIP_AWAY, + MOVE_COUNTER, + MOVE_CRUSH_CLAW, + MOVE_CURSE, + MOVE_ENDURE, + MOVE_FLAIL, + MOVE_HONE_CLAWS, + MOVE_ICICLE_CRASH, + MOVE_ICICLE_SPEAR, + MOVE_METAL_CLAW, + MOVE_NIGHT_SLASH), +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW +#if P_FAMILY_NIDORAN egg_moves(NIDORAN_F, MOVE_SUPERSONIC, MOVE_DISABLE, @@ -152,7 +221,29 @@ const u16 gEggMoves[] = { MOVE_ENDURE, MOVE_CHIP_AWAY, MOVE_VENOM_DRENCH), +#endif //P_FAMILY_NIDORAN +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS + egg_moves(CLEFFA, + MOVE_PRESENT, + MOVE_METRONOME, + MOVE_AMNESIA, + MOVE_BELLY_DRUM, + MOVE_SPLASH, + MOVE_MIMIC, + MOVE_WISH, + MOVE_FAKE_TEARS, + MOVE_COVET, + MOVE_AROMATHERAPY, + MOVE_STORED_POWER, + MOVE_TICKLE, + MOVE_MISTY_TERRAIN, + MOVE_HEAL_PULSE), +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX egg_moves(VULPIX, MOVE_FEINT_ATTACK, MOVE_HYPNOSIS, @@ -168,7 +259,45 @@ const u16 gEggMoves[] = { MOVE_HEX, MOVE_TAIL_SLAP, MOVE_CAPTIVATE), +#if P_ALOLAN_FORMS + egg_moves(VULPIX_ALOLAN, + MOVE_AGILITY, + MOVE_CHARM, + MOVE_DISABLE, + MOVE_ENCORE, + MOVE_EXTRASENSORY, + MOVE_FLAIL, + MOVE_FREEZE_DRY, + MOVE_HOWL, + MOVE_HYPNOSIS, + MOVE_MOONBLAST, + MOVE_POWER_SWAP, + MOVE_SPITE, + MOVE_SECRET_POWER, + MOVE_TAIL_SLAP), +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS + egg_moves(IGGLYBUFF, + MOVE_PERISH_SONG, + MOVE_PRESENT, + MOVE_FEINT_ATTACK, + MOVE_WISH, + MOVE_FAKE_TEARS, + MOVE_LAST_RESORT, + MOVE_COVET, + MOVE_GRAVITY, + MOVE_SLEEP_TALK, + MOVE_CAPTIVATE, + MOVE_PUNISHMENT, + MOVE_MISTY_TERRAIN, + MOVE_HEAL_PULSE), +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT egg_moves(ZUBAT, MOVE_QUICK_ATTACK, MOVE_PURSUIT, @@ -184,7 +313,9 @@ const u16 gEggMoves[] = { MOVE_STEEL_WING, MOVE_DEFOG, MOVE_VENOM_DRENCH), +#endif //P_FAMILY_ZUBAT +#if P_FAMILY_ODDISH egg_moves(ODDISH, MOVE_RAZOR_LEAF, MOVE_FLAIL, @@ -197,7 +328,9 @@ const u16 gEggMoves[] = { MOVE_NATURE_POWER, MOVE_AFTER_YOU, MOVE_STRENGTH_SAP), +#endif //P_FAMILY_ODDISH +#if P_FAMILY_PARAS egg_moves(PARAS, MOVE_SCREECH, MOVE_COUNTER, @@ -216,7 +349,9 @@ const u16 gEggMoves[] = { MOVE_ROTOTILLER, MOVE_FELL_STINGER, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_PARAS +#if P_FAMILY_VENONAT egg_moves(VENONAT, MOVE_BATON_PASS, MOVE_SCREECH, @@ -229,7 +364,9 @@ const u16 gEggMoves[] = { MOVE_SECRET_POWER, MOVE_SKILL_SWAP, MOVE_RAGE_POWDER), +#endif //P_FAMILY_VENONAT +#if P_FAMILY_DIGLETT egg_moves(DIGLETT, MOVE_FEINT_ATTACK, MOVE_SCREECH, @@ -244,7 +381,23 @@ const u16 gEggMoves[] = { MOVE_ENDURE, MOVE_FINAL_GAMBIT, MOVE_MEMENTO), +#if P_ALOLAN_FORMS + egg_moves(DIGLETT_ALOLAN, + MOVE_ANCIENT_POWER, + MOVE_BEAT_UP, + MOVE_ENDURE, + MOVE_FEINT_ATTACK, + MOVE_FINAL_GAMBIT, + MOVE_HEADBUTT, + MOVE_MEMENTO, + MOVE_METAL_SOUND, + MOVE_PURSUIT, + MOVE_REVERSAL, + MOVE_THRASH), +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT +#if P_FAMILY_MEOWTH egg_moves(MEOWTH, MOVE_SPITE, MOVE_CHARM, @@ -259,7 +412,33 @@ const u16 gEggMoves[] = { MOVE_SNATCH, MOVE_IRON_TAIL, MOVE_FOUL_PLAY), +#if P_ALOLAN_FORMS + egg_moves(MEOWTH_ALOLAN, + MOVE_AMNESIA, + MOVE_ASSIST, + MOVE_CHARM, + MOVE_COVET, + MOVE_FLAIL, + MOVE_FLATTER, + MOVE_FOUL_PLAY, + MOVE_HYPNOSIS, + MOVE_PARTING_SHOT, + MOVE_PUNISHMENT, + MOVE_SNATCH, + MOVE_SPITE), +#endif //P_ALOLAN_FORMS +#if P_GALARIAN_FORMS + egg_moves(MEOWTH_GALARIAN, + MOVE_SPITE, + MOVE_DOUBLE_EDGE, + MOVE_CURSE, + MOVE_FLAIL, + MOVE_NIGHT_SLASH, + MOVE_COVET), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH +#if P_FAMILY_PSYDUCK egg_moves(PSYDUCK, MOVE_HYPNOSIS, MOVE_PSYBEAM, @@ -276,7 +455,9 @@ const u16 gEggMoves[] = { MOVE_SYNCHRONOISE, MOVE_SIMPLE_BEAM, MOVE_CLEAR_SMOG), +#endif //P_FAMILY_PSYDUCK +#if P_FAMILY_MANKEY egg_moves(MANKEY, MOVE_FORESIGHT, MOVE_MEDITATE, @@ -291,7 +472,9 @@ const u16 gEggMoves[] = { MOVE_SLEEP_TALK, MOVE_NIGHT_SLASH, MOVE_POWER_TRIP), +#endif //P_FAMILY_MANKEY +#if P_FAMILY_GROWLITHE egg_moves(GROWLITHE, MOVE_BODY_SLAM, MOVE_CRUNCH, @@ -307,7 +490,9 @@ const u16 gEggMoves[] = { MOVE_DOUBLE_KICK, MOVE_CLOSE_COMBAT, MOVE_BURN_UP), +#endif //P_FAMILY_GROWLITHE +#if P_FAMILY_POLIWAG egg_moves(POLIWAG, MOVE_MIST, MOVE_SPLASH, @@ -322,7 +507,9 @@ const u16 gEggMoves[] = { MOVE_ENCORE, MOVE_ENDURE, MOVE_WATER_PULSE), +#endif //P_FAMILY_POLIWAG +#if P_FAMILY_ABRA egg_moves(ABRA, MOVE_ENCORE, MOVE_BARRIER, @@ -337,7 +524,9 @@ const u16 gEggMoves[] = { MOVE_PSYCHO_SHIFT, MOVE_ALLY_SWITCH, MOVE_PSYCHIC_TERRAIN), +#endif //P_FAMILY_ABRA +#if P_FAMILY_MACHOP egg_moves(MACHOP, MOVE_MEDITATE, MOVE_ROLLING_KICK, @@ -354,7 +543,9 @@ const u16 gEggMoves[] = { MOVE_KNOCK_OFF, MOVE_TICKLE, MOVE_QUICK_GUARD), +#endif //P_FAMILY_MACHOP +#if P_FAMILY_BELLSPROUT egg_moves(BELLSPROUT, MOVE_ENCORE, MOVE_SYNTHESIS, @@ -372,7 +563,9 @@ const u16 gEggMoves[] = { MOVE_ACID_SPRAY, MOVE_BELCH, MOVE_STRENGTH_SAP), +#endif //P_FAMILY_BELLSPROUT +#if P_FAMILY_TENTACOOL egg_moves(TENTACOOL, MOVE_AURORA_BEAM, MOVE_MIRROR_COAT, @@ -385,7 +578,9 @@ const u16 gEggMoves[] = { MOVE_BUBBLE, MOVE_AQUA_RING, MOVE_TICKLE), +#endif //P_FAMILY_TENTACOOL +#if P_FAMILY_GEODUDE egg_moves(GEODUDE, MOVE_MEGA_PUNCH, MOVE_BLOCK, @@ -397,7 +592,22 @@ const u16 gEggMoves[] = { MOVE_ENDURE, MOVE_AUTOTOMIZE, MOVE_WIDE_GUARD), +#if P_ALOLAN_FORMS + egg_moves(GEODUDE_ALOLAN, + MOVE_AUTOTOMIZE, + MOVE_BLOCK, + MOVE_COUNTER, + MOVE_CURSE, + MOVE_ENDURE, + MOVE_FLAIL, + MOVE_MAGNET_RISE, + MOVE_ROCK_CLIMB, + MOVE_SCREECH, + MOVE_WIDE_GUARD), +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE +#if P_FAMILY_PONYTA egg_moves(PONYTA, MOVE_FLAME_WHEEL, MOVE_THRASH, @@ -411,7 +621,18 @@ const u16 gEggMoves[] = { MOVE_CAPTIVATE, MOVE_ALLY_SWITCH, MOVE_HIGH_HORSEPOWER), +#if P_GALARIAN_FORMS + egg_moves(PONYTA_GALARIAN, + MOVE_THRASH, + MOVE_DOUBLE_KICK, + MOVE_HYPNOSIS, + MOVE_DOUBLE_EDGE, + MOVE_HORN_DRILL, + MOVE_MORNING_SUN), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA +#if P_FAMILY_SLOWPOKE egg_moves(SLOWPOKE, MOVE_BELLY_DRUM, MOVE_FUTURE_SIGHT, @@ -424,7 +645,16 @@ const u16 gEggMoves[] = { MOVE_ZEN_HEADBUTT, MOVE_WONDER_ROOM, MOVE_BELCH), +#if P_GALARIAN_FORMS + egg_moves(SLOWPOKE_GALARIAN, + MOVE_BELCH, + MOVE_BELLY_DRUM, + MOVE_BLOCK, + MOVE_STOMP), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE +#if P_FAMILY_FARFETCHD egg_moves(FARFETCHD, MOVE_STEEL_WING, MOVE_FORESIGHT, @@ -444,7 +674,23 @@ const u16 gEggMoves[] = { MOVE_SIMPLE_BEAM, MOVE_FIRST_IMPRESSION, MOVE_FINAL_GAMBIT), +#if P_GALARIAN_FORMS + egg_moves(FARFETCHD_GALARIAN, + MOVE_COUNTER, + MOVE_QUICK_ATTACK, + MOVE_FLAIL, + MOVE_QUICK_GUARD, + MOVE_CURSE, + MOVE_COVET, + MOVE_NIGHT_SLASH, + MOVE_SIMPLE_BEAM, + MOVE_DOUBLE_EDGE, + MOVE_FEINT, + MOVE_SKY_ATTACK), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD +#if P_FAMILY_DODUO egg_moves(DODUO, MOVE_QUICK_ATTACK, MOVE_SUPERSONIC, @@ -456,7 +702,9 @@ const u16 gEggMoves[] = { MOVE_BRAVE_BIRD, MOVE_NATURAL_GIFT, MOVE_ASSURANCE), +#endif //P_FAMILY_DODUO +#if P_FAMILY_SEEL egg_moves(SEEL, MOVE_LICK, MOVE_PERISH_SONG, @@ -475,7 +723,9 @@ const u16 gEggMoves[] = { MOVE_SLEEP_TALK, MOVE_BELCH, MOVE_ENTRAINMENT), +#endif //P_FAMILY_SEEL +#if P_FAMILY_GRIMER egg_moves(GRIMER, MOVE_HAZE, MOVE_MEAN_LOOK, @@ -490,7 +740,25 @@ const u16 gEggMoves[] = { MOVE_SCARY_FACE, MOVE_ACID_SPRAY, MOVE_POWER_UP_PUNCH), +#if P_ALOLAN_FORMS + egg_moves(GRIMER_ALOLAN, + MOVE_ASSURANCE, + MOVE_CLEAR_SMOG, + MOVE_CURSE, + MOVE_IMPRISON, + MOVE_MEAN_LOOK, + MOVE_POWER_UP_PUNCH, + MOVE_PURSUIT, + MOVE_SCARY_FACE, + MOVE_SHADOW_SNEAK, + MOVE_SPITE, + MOVE_SPIT_UP, + MOVE_STOCKPILE, + MOVE_SWALLOW), +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER +#if P_FAMILY_SHELLDER egg_moves(SHELLDER, MOVE_BUBBLE_BEAM, MOVE_TAKE_DOWN, @@ -504,7 +772,9 @@ const u16 gEggMoves[] = { MOVE_AQUA_RING, MOVE_AVALANCHE, MOVE_TWINEEDLE), +#endif //P_FAMILY_SHELLDER +#if P_FAMILY_GASTLY egg_moves(GASTLY, MOVE_PSYWAVE, MOVE_PERISH_SONG, @@ -519,7 +789,9 @@ const u16 gEggMoves[] = { MOVE_CLEAR_SMOG, MOVE_SMOG, MOVE_REFLECT_TYPE), +#endif //P_FAMILY_GASTLY +#if P_FAMILY_ONIX egg_moves(ONIX, MOVE_FLAIL, MOVE_BLOCK, @@ -531,7 +803,9 @@ const u16 gEggMoves[] = { MOVE_STEALTH_ROCK, MOVE_ROTOTILLER, MOVE_WIDE_GUARD), +#endif //P_FAMILY_ONIX +#if P_FAMILY_DROWZEE egg_moves(DROWZEE, MOVE_BARRIER, MOVE_ASSIST, @@ -547,7 +821,9 @@ const u16 gEggMoves[] = { MOVE_SKILL_SWAP, MOVE_POWER_SPLIT, MOVE_PSYCHIC_TERRAIN), +#endif //P_FAMILY_DROWZEE +#if P_FAMILY_KRABBY egg_moves(KRABBY, MOVE_HAZE, MOVE_AMNESIA, @@ -561,7 +837,9 @@ const u16 gEggMoves[] = { MOVE_CHIP_AWAY, MOVE_BIDE, MOVE_ALLY_SWITCH), +#endif //P_FAMILY_KRABBY +#if P_FAMILY_EXEGGCUTE egg_moves(EXEGGCUTE, MOVE_SYNTHESIS, MOVE_MOONLIGHT, @@ -577,7 +855,9 @@ const u16 gEggMoves[] = { MOVE_NATURAL_GIFT, MOVE_BLOCK, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_EXEGGCUTE +#if P_FAMILY_CUBONE egg_moves(CUBONE, MOVE_ANCIENT_POWER, MOVE_BELLY_DRUM, @@ -590,7 +870,26 @@ const u16 gEggMoves[] = { MOVE_ENDURE, MOVE_CHIP_AWAY, MOVE_CURSE), +#endif //P_FAMILY_CUBONE +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS + egg_moves(TYROGUE, + MOVE_RAPID_SPIN, + MOVE_HIGH_JUMP_KICK, + MOVE_MACH_PUNCH, + MOVE_MIND_READER, + MOVE_HELPING_HAND, + MOVE_COUNTER, + MOVE_VACUUM_WAVE, + MOVE_BULLET_PUNCH, + MOVE_ENDURE, + MOVE_PURSUIT, + MOVE_FEINT), +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG egg_moves(LICKITUNG, MOVE_BELLY_DRUM, MOVE_MAGNITUDE, @@ -605,7 +904,9 @@ const u16 gEggMoves[] = { MOVE_ZEN_HEADBUTT, MOVE_BELCH, MOVE_THRASH), +#endif //P_FAMILY_LICKITUNG +#if P_FAMILY_KOFFING egg_moves(KOFFING, MOVE_SCREECH, MOVE_PSYWAVE, @@ -620,7 +921,9 @@ const u16 gEggMoves[] = { MOVE_SPIT_UP, MOVE_TOXIC_SPIKES, MOVE_VENOM_DRENCH), +#endif //P_FAMILY_KOFFING +#if P_FAMILY_RHYHORN egg_moves(RHYHORN, MOVE_CRUNCH, MOVE_REVERSAL, @@ -638,7 +941,23 @@ const u16 gEggMoves[] = { MOVE_ROTOTILLER, MOVE_METAL_BURST, MOVE_GUARD_SPLIT), +#endif //P_FAMILY_RHYHORN +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS + egg_moves(HAPPINY, + MOVE_PRESENT, + MOVE_METRONOME, + MOVE_HEAL_BELL, + MOVE_AROMATHERAPY, + MOVE_COUNTER, + MOVE_HELPING_HAND, + MOVE_GRAVITY, + MOVE_LAST_RESORT, + MOVE_MUD_BOMB, + MOVE_NATURAL_GIFT, + MOVE_ENDURE), +#endif //P_GEN_4_CROSS_EVOS egg_moves(CHANSEY, MOVE_PRESENT, MOVE_METRONOME, @@ -651,7 +970,9 @@ const u16 gEggMoves[] = { MOVE_NATURAL_GIFT, MOVE_ENDURE, MOVE_SEISMIC_TOSS), +#endif //P_FAMILY_CHANSEY +#if P_FAMILY_TANGELA egg_moves(TANGELA, MOVE_FLAIL, MOVE_CONFUSION, @@ -666,7 +987,9 @@ const u16 gEggMoves[] = { MOVE_RAGE_POWDER, MOVE_NATURAL_GIFT, MOVE_WAKE_UP_SLAP), +#endif //P_FAMILY_TANGELA +#if P_FAMILY_KANGASKHAN egg_moves(KANGASKHAN, MOVE_STOMP, MOVE_FORESIGHT, @@ -681,7 +1004,9 @@ const u16 gEggMoves[] = { MOVE_TRUMP_CARD, MOVE_UPROAR, MOVE_CIRCLE_THROW), +#endif //P_FAMILY_KANGASKHAN +#if P_FAMILY_HORSEA egg_moves(HORSEA, MOVE_FLAIL, MOVE_AURORA_BEAM, @@ -696,7 +1021,9 @@ const u16 gEggMoves[] = { MOVE_WATER_PULSE, MOVE_CLEAR_SMOG, MOVE_OUTRAGE), +#endif //P_FAMILY_HORSEA +#if P_FAMILY_GOLDEEN egg_moves(GOLDEEN, MOVE_PSYBEAM, MOVE_HAZE, @@ -709,7 +1036,27 @@ const u16 gEggMoves[] = { MOVE_MUD_SHOT, MOVE_SKULL_BASH, MOVE_SIGNAL_BEAM), +#endif //P_FAMILY_GOLDEEN +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS + egg_moves(MIME_JR, + MOVE_FUTURE_SIGHT, + MOVE_HYPNOSIS, + MOVE_MIMIC, + MOVE_FAKE_OUT, + MOVE_TRICK, + MOVE_CONFUSE_RAY, + MOVE_WAKE_UP_SLAP, + MOVE_TEETER_DANCE, + MOVE_HEALING_WISH, + MOVE_CHARM, + MOVE_NASTY_PLOT, + MOVE_POWER_SPLIT, + MOVE_MAGIC_ROOM, + MOVE_ICY_WIND, + MOVE_PSYCHIC_TERRAIN), +#endif //P_GEN_4_CROSS_EVOS egg_moves(MR_MIME, MOVE_FUTURE_SIGHT, MOVE_HYPNOSIS, @@ -724,7 +1071,16 @@ const u16 gEggMoves[] = { MOVE_MAGIC_ROOM, MOVE_ICY_WIND, MOVE_PSYCHIC_TERRAIN), +#if P_GALARIAN_FORMS + egg_moves(MR_MIME_GALARIAN, + MOVE_FAKE_OUT, + MOVE_CONFUSE_RAY, + MOVE_POWER_SPLIT, + MOVE_TICKLE), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME +#if P_FAMILY_SCYTHER egg_moves(SCYTHER, MOVE_COUNTER, MOVE_BATON_PASS, @@ -737,7 +1093,60 @@ const u16 gEggMoves[] = { MOVE_DEFOG, MOVE_STEEL_WING, MOVE_QUICK_GUARD), +#endif //P_FAMILY_SCYTHER +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS + egg_moves(SMOOCHUM, + MOVE_MEDITATE, + MOVE_FAKE_OUT, + MOVE_WISH, + MOVE_ICE_PUNCH, + MOVE_MIRACLE_EYE, + MOVE_NASTY_PLOT, + MOVE_WAKE_UP_SLAP, + MOVE_CAPTIVATE), +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS + egg_moves(ELEKID, + MOVE_KARATE_CHOP, + MOVE_BARRIER, + MOVE_ROLLING_KICK, + MOVE_MEDITATE, + MOVE_CROSS_CHOP, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_DYNAMIC_PUNCH, + MOVE_FEINT, + MOVE_HAMMER_ARM, + MOVE_FOCUS_PUNCH), +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS + egg_moves(MAGBY, + MOVE_KARATE_CHOP, + MOVE_MEGA_PUNCH, + MOVE_BARRIER, + MOVE_SCREECH, + MOVE_CROSS_CHOP, + MOVE_THUNDER_PUNCH, + MOVE_MACH_PUNCH, + MOVE_DYNAMIC_PUNCH, + MOVE_FLARE_BLITZ, + MOVE_BELLY_DRUM, + MOVE_IRON_TAIL, + MOVE_FOCUS_ENERGY, + MOVE_POWER_SWAP, + MOVE_BELCH), +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR egg_moves(PINSIR, MOVE_FURY_ATTACK, MOVE_FLAIL, @@ -748,7 +1157,25 @@ const u16 gEggMoves[] = { MOVE_ME_FIRST, MOVE_BUG_BITE, MOVE_SUPERPOWER), +#endif //P_FAMILY_PINSIR +#if P_FAMILY_TAUROS +#if P_PALDEAN_FORMS + 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), +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_LAPRAS egg_moves(LAPRAS, MOVE_FORESIGHT, MOVE_TICKLE, @@ -764,7 +1191,9 @@ const u16 gEggMoves[] = { MOVE_AVALANCHE, MOVE_FUTURE_SIGHT, MOVE_FREEZE_DRY), +#endif //P_FAMILY_LAPRAS +#if P_FAMILY_EEVEE egg_moves(EEVEE, MOVE_CHARM, MOVE_FLAIL, @@ -780,7 +1209,9 @@ const u16 gEggMoves[] = { MOVE_STORED_POWER, MOVE_SYNCHRONOISE, MOVE_CAPTIVATE), +#endif //P_FAMILY_EEVEE +#if P_FAMILY_OMANYTE egg_moves(OMANYTE, MOVE_BUBBLE_BEAM, MOVE_AURORA_BEAM, @@ -796,7 +1227,9 @@ const u16 gEggMoves[] = { MOVE_WATER_PULSE, MOVE_WHIRLPOOL, MOVE_REFLECT_TYPE), +#endif //P_FAMILY_OMANYTE +#if P_FAMILY_KABUTO egg_moves(KABUTO, MOVE_BUBBLE_BEAM, MOVE_AURORA_BEAM, @@ -810,7 +1243,9 @@ const u16 gEggMoves[] = { MOVE_GIGA_DRAIN, MOVE_FORESIGHT, MOVE_TAKE_DOWN), +#endif //P_FAMILY_KABUTO +#if P_FAMILY_AERODACTYL egg_moves(AERODACTYL, MOVE_WHIRLWIND, MOVE_PURSUIT, @@ -822,7 +1257,24 @@ const u16 gEggMoves[] = { MOVE_ROOST, MOVE_TAILWIND, MOVE_WIDE_GUARD), +#endif //P_FAMILY_AERODACTYL +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS + egg_moves(MUNCHLAX, + MOVE_LICK, + MOVE_CHARM, + MOVE_DOUBLE_EDGE, + MOVE_CURSE, + MOVE_WHIRLWIND, + MOVE_PURSUIT, + MOVE_ZEN_HEADBUTT, + MOVE_COUNTER, + MOVE_NATURAL_GIFT, + MOVE_AFTER_YOU, + MOVE_SELF_DESTRUCT, + MOVE_BELCH), +#endif //P_GEN_4_CROSS_EVOS egg_moves(SNORLAX, MOVE_LICK, MOVE_CHARM, @@ -836,7 +1288,9 @@ const u16 gEggMoves[] = { MOVE_AFTER_YOU, MOVE_BELCH, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_SNORLAX +#if P_FAMILY_DRATINI egg_moves(DRATINI, MOVE_MIST, MOVE_HAZE, @@ -849,7 +1303,9 @@ const u16 gEggMoves[] = { MOVE_AQUA_JET, MOVE_DRAGON_PULSE, MOVE_IRON_TAIL), +#endif //P_FAMILY_DRATINI +#if P_FAMILY_CHIKORITA egg_moves(CHIKORITA, MOVE_VINE_WHIP, MOVE_LEECH_SEED, @@ -866,7 +1322,9 @@ const u16 gEggMoves[] = { MOVE_REFRESH, MOVE_HEAL_PULSE, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_CHIKORITA +#if P_FAMILY_CYNDAQUIL egg_moves(CYNDAQUIL, MOVE_FURY_SWIPES, MOVE_QUICK_ATTACK, @@ -882,7 +1340,9 @@ const u16 gEggMoves[] = { MOVE_EXTRASENSORY, MOVE_NATURE_POWER, MOVE_FLAME_BURST), +#endif //P_FAMILY_CYNDAQUIL +#if P_FAMILY_TOTODILE egg_moves(TOTODILE, MOVE_CRUNCH, MOVE_THRASH, @@ -898,7 +1358,9 @@ const u16 gEggMoves[] = { MOVE_BLOCK, MOVE_WATER_PULSE, MOVE_FLATTER), +#endif //P_FAMILY_TOTODILE +#if P_FAMILY_SENTRET egg_moves(SENTRET, MOVE_DOUBLE_EDGE, MOVE_PURSUIT, @@ -914,7 +1376,9 @@ const u16 gEggMoves[] = { MOVE_IRON_TAIL, MOVE_CAPTIVATE, MOVE_BABY_DOLL_EYES), +#endif //P_FAMILY_SENTRET +#if P_FAMILY_HOOTHOOT egg_moves(HOOTHOOT, MOVE_MIRROR_MOVE, MOVE_SUPERSONIC, @@ -928,7 +1392,9 @@ const u16 gEggMoves[] = { MOVE_DEFOG, MOVE_MEAN_LOOK, MOVE_HURRICANE), +#endif //P_FAMILY_HOOTHOOT +#if P_FAMILY_LEDYBA egg_moves(LEDYBA, MOVE_PSYBEAM, MOVE_BIDE, @@ -944,7 +1410,9 @@ const u16 gEggMoves[] = { MOVE_TAILWIND, MOVE_ENDURE, MOVE_COUNTER), +#endif //P_FAMILY_LEDYBA +#if P_FAMILY_SPINARAK egg_moves(SPINARAK, MOVE_PSYBEAM, MOVE_DISABLE, @@ -959,7 +1427,9 @@ const u16 gEggMoves[] = { MOVE_NIGHT_SLASH, MOVE_MEGAHORN, MOVE_LUNGE), +#endif //P_FAMILY_SPINARAK +#if P_FAMILY_CHINCHOU egg_moves(CHINCHOU, MOVE_FLAIL, MOVE_SCREECH, @@ -972,56 +1442,9 @@ const u16 gEggMoves[] = { MOVE_BRINE, MOVE_WATER_PULSE, MOVE_SOAK), +#endif //P_FAMILY_CHINCHOU - egg_moves(PICHU, - MOVE_REVERSAL, - MOVE_BIDE, - MOVE_PRESENT, - MOVE_ENCORE, - MOVE_DOUBLE_SLAP, - MOVE_WISH, - MOVE_CHARGE, - MOVE_FAKE_OUT, - MOVE_THUNDER_PUNCH, - MOVE_TICKLE, - MOVE_FLAIL, - MOVE_ENDURE, - MOVE_LUCKY_CHANT, - MOVE_BESTOW, - MOVE_DISARMING_VOICE, - MOVE_ELECTRIC_TERRAIN), - - egg_moves(CLEFFA, - MOVE_PRESENT, - MOVE_METRONOME, - MOVE_AMNESIA, - MOVE_BELLY_DRUM, - MOVE_SPLASH, - MOVE_MIMIC, - MOVE_WISH, - MOVE_FAKE_TEARS, - MOVE_COVET, - MOVE_AROMATHERAPY, - MOVE_STORED_POWER, - MOVE_TICKLE, - MOVE_MISTY_TERRAIN, - MOVE_HEAL_PULSE), - - egg_moves(IGGLYBUFF, - MOVE_PERISH_SONG, - MOVE_PRESENT, - MOVE_FEINT_ATTACK, - MOVE_WISH, - MOVE_FAKE_TEARS, - MOVE_LAST_RESORT, - MOVE_COVET, - MOVE_GRAVITY, - MOVE_SLEEP_TALK, - MOVE_CAPTIVATE, - MOVE_PUNISHMENT, - MOVE_MISTY_TERRAIN, - MOVE_HEAL_PULSE), - +#if P_FAMILY_TOGEPI egg_moves(TOGEPI, MOVE_PRESENT, MOVE_MIRROR_MOVE, @@ -1035,7 +1458,9 @@ const u16 gEggMoves[] = { MOVE_SECRET_POWER, MOVE_STORED_POWER, MOVE_MORNING_SUN), +#endif //P_FAMILY_TOGEPI +#if P_FAMILY_NATU egg_moves(NATU, MOVE_HAZE, MOVE_DRILL_PECK, @@ -1051,7 +1476,9 @@ const u16 gEggMoves[] = { MOVE_SKILL_SWAP, MOVE_SIMPLE_BEAM, MOVE_ALLY_SWITCH), +#endif //P_FAMILY_NATU +#if P_FAMILY_MAREEP egg_moves(MAREEP, MOVE_TAKE_DOWN, MOVE_BODY_SLAM, @@ -1065,7 +1492,24 @@ const u16 gEggMoves[] = { MOVE_AGILITY, MOVE_EERIE_IMPULSE, MOVE_ELECTRIC_TERRAIN), +#endif //P_FAMILY_MAREEP +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS + egg_moves(AZURILL, + MOVE_ENCORE, + MOVE_SING, + MOVE_REFRESH, + MOVE_SLAM, + MOVE_TICKLE, + MOVE_FAKE_TEARS, + MOVE_BODY_SLAM, + MOVE_WATER_SPORT, + MOVE_SOAK, + MOVE_MUDDY_WATER, + MOVE_COPYCAT, + MOVE_CAMOUFLAGE), +#endif //P_GEN_3_CROSS_EVOS egg_moves(MARILL, MOVE_PRESENT, MOVE_AMNESIA, @@ -1080,7 +1524,21 @@ const u16 gEggMoves[] = { MOVE_WATER_SPORT, MOVE_MUDDY_WATER, MOVE_CAMOUFLAGE), +#endif //P_FAMILY_MARILL +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS + egg_moves(BONSLY, + MOVE_SELF_DESTRUCT, + MOVE_HEADBUTT, + MOVE_HARDEN, + MOVE_DEFENSE_CURL, + MOVE_ROLLOUT, + MOVE_SAND_TOMB, + MOVE_STEALTH_ROCK, + MOVE_CURSE, + MOVE_ENDURE), +#endif //P_GEN_4_CROSS_EVOS egg_moves(SUDOWOODO, MOVE_SELF_DESTRUCT, MOVE_HEADBUTT, @@ -1091,7 +1549,9 @@ const u16 gEggMoves[] = { MOVE_STEALTH_ROCK, MOVE_CURSE, MOVE_ENDURE), +#endif //P_FAMILY_SUDOWOODO +#if P_FAMILY_HOPPIP egg_moves(HOPPIP, MOVE_CONFUSION, MOVE_ENCORE, @@ -1105,7 +1565,9 @@ const u16 gEggMoves[] = { MOVE_ENDURE, MOVE_GRASSY_TERRAIN, MOVE_STRENGTH_SAP), +#endif //P_FAMILY_HOPPIP +#if P_FAMILY_AIPOM egg_moves(AIPOM, MOVE_COUNTER, MOVE_SCREECH, @@ -1122,7 +1584,9 @@ const u16 gEggMoves[] = { MOVE_SWITCHEROO, MOVE_QUICK_GUARD, MOVE_TAIL_SLAP), +#endif //P_FAMILY_AIPOM +#if P_FAMILY_SUNKERN egg_moves(SUNKERN, MOVE_GRASS_WHISTLE, MOVE_ENCORE, @@ -1137,7 +1601,9 @@ const u16 gEggMoves[] = { MOVE_NATURAL_GIFT, MOVE_MORNING_SUN, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_SUNKERN +#if P_FAMILY_YANMA egg_moves(YANMA, MOVE_WHIRLWIND, MOVE_REVERSAL, @@ -1149,7 +1615,9 @@ const u16 gEggMoves[] = { MOVE_PURSUIT, MOVE_DOUBLE_EDGE, MOVE_SECRET_POWER), +#endif //P_FAMILY_YANMA +#if P_FAMILY_WOOPER egg_moves(WOOPER, MOVE_BODY_SLAM, MOVE_ANCIENT_POWER, @@ -1168,7 +1636,24 @@ const u16 gEggMoves[] = { MOVE_GUARD_SWAP, MOVE_EERIE_IMPULSE, MOVE_POWER_UP_PUNCH), +#if P_PALDEAN_FORMS + 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), +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER +#if P_FAMILY_MURKROW egg_moves(MURKROW, MOVE_WHIRLWIND, MOVE_DRILL_PECK, @@ -1186,7 +1671,9 @@ const u16 gEggMoves[] = { MOVE_ASSURANCE, MOVE_FLATTER, MOVE_PUNISHMENT), +#endif //P_FAMILY_MURKROW +#if P_FAMILY_MISDREAVUS egg_moves(MISDREAVUS, MOVE_SCREECH, MOVE_DESTINY_BOND, @@ -1201,7 +1688,9 @@ const u16 gEggMoves[] = { MOVE_SKILL_SWAP, MOVE_WONDER_ROOM, MOVE_ME_FIRST), +#endif //P_FAMILY_MISDREAVUS +#if P_FAMILY_GIRAFARIG egg_moves(GIRAFARIG, MOVE_TAKE_DOWN, MOVE_AMNESIA, @@ -1218,7 +1707,9 @@ const u16 gEggMoves[] = { MOVE_MEAN_LOOK, MOVE_PSYCHIC_TERRAIN, MOVE_PSYCHIC_FANGS), +#endif //P_FAMILY_GIRAFARIG +#if P_FAMILY_PINECO egg_moves(PINECO, MOVE_PIN_MISSILE, MOVE_FLAIL, @@ -1231,7 +1722,9 @@ const u16 gEggMoves[] = { MOVE_POWER_TRICK, MOVE_ENDURE, MOVE_STEALTH_ROCK), +#endif //P_FAMILY_PINECO +#if P_FAMILY_DUNSPARCE egg_moves(DUNSPARCE, MOVE_BIDE, MOVE_ANCIENT_POWER, @@ -1246,7 +1739,9 @@ const u16 gEggMoves[] = { MOVE_SECRET_POWER, MOVE_SLEEP_TALK, MOVE_HEX), +#endif //P_FAMILY_DUNSPARCE +#if P_FAMILY_GLIGAR egg_moves(GLIGAR, MOVE_METAL_CLAW, MOVE_WING_ATTACK, @@ -1262,7 +1757,9 @@ const u16 gEggMoves[] = { MOVE_POWER_TRICK, MOVE_ROCK_CLIMB, MOVE_POISON_TAIL), +#endif //P_FAMILY_GLIGAR +#if P_FAMILY_SNUBBULL egg_moves(SNUBBULL, MOVE_METRONOME, MOVE_FEINT_ATTACK, @@ -1279,7 +1776,9 @@ const u16 gEggMoves[] = { MOVE_DOUBLE_EDGE, MOVE_MIMIC, MOVE_FAKE_TEARS), +#endif //P_FAMILY_SNUBBULL +#if P_FAMILY_QWILFISH egg_moves(QWILFISH, MOVE_FLAIL, MOVE_HAZE, @@ -1291,7 +1790,9 @@ const u16 gEggMoves[] = { MOVE_WATER_PULSE, MOVE_BRINE, MOVE_ACID_SPRAY), +#endif //P_FAMILY_QWILFISH +#if P_FAMILY_SHUCKLE egg_moves(SHUCKLE, MOVE_SWEET_SCENT, MOVE_KNOCK_OFF, @@ -1302,7 +1803,9 @@ const u16 gEggMoves[] = { MOVE_ACID, MOVE_ROCK_BLAST, MOVE_FINAL_GAMBIT), +#endif //P_FAMILY_SHUCKLE +#if P_FAMILY_HERACROSS egg_moves(HERACROSS, MOVE_HARDEN, MOVE_BIDE, @@ -1314,7 +1817,9 @@ const u16 gEggMoves[] = { MOVE_FOCUS_PUNCH, MOVE_MEGAHORN, MOVE_ROCK_BLAST), +#endif //P_FAMILY_HERACROSS +#if P_FAMILY_SNEASEL egg_moves(SNEASEL, MOVE_COUNTER, MOVE_SPITE, @@ -1332,7 +1837,9 @@ const u16 gEggMoves[] = { MOVE_FEINT, MOVE_ICICLE_CRASH, MOVE_THROAT_CHOP), +#endif //P_FAMILY_SNEASEL +#if P_FAMILY_TEDDIURSA egg_moves(TEDDIURSA, MOVE_CRUNCH, MOVE_TAKE_DOWN, @@ -1349,7 +1856,9 @@ const u16 gEggMoves[] = { MOVE_BELLY_DRUM, MOVE_CHIP_AWAY, MOVE_PLAY_ROUGH), +#endif //P_FAMILY_TEDDIURSA +#if P_FAMILY_SLUGMA egg_moves(SLUGMA, MOVE_ACID_ARMOR, MOVE_HEAT_WAVE, @@ -1363,7 +1872,9 @@ const u16 gEggMoves[] = { MOVE_INFERNO, MOVE_EARTH_POWER, MOVE_GUARD_SWAP), +#endif //P_FAMILY_SLUGMA +#if P_FAMILY_SWINUB egg_moves(SWINUB, MOVE_TAKE_DOWN, MOVE_BITE, @@ -1379,7 +1890,9 @@ const u16 gEggMoves[] = { MOVE_STEALTH_ROCK, MOVE_ICICLE_CRASH, MOVE_FREEZE_DRY), +#endif //P_FAMILY_SWINUB +#if P_FAMILY_CORSOLA egg_moves(CORSOLA, MOVE_SCREECH, MOVE_MIST, @@ -1396,7 +1909,18 @@ const u16 gEggMoves[] = { MOVE_HEAD_SMASH, MOVE_CAMOUFLAGE, MOVE_LIQUIDATION), +#if P_GALARIAN_FORMS + egg_moves(CORSOLA_GALARIAN, + MOVE_HAZE, + MOVE_CONFUSE_RAY, + MOVE_NATURE_POWER, + MOVE_DESTINY_BOND, + MOVE_WATER_PULSE, + MOVE_HEAD_SMASH), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA +#if P_FAMILY_REMORAID egg_moves(REMORAID, MOVE_AURORA_BEAM, MOVE_OCTAZOOKA, @@ -1412,7 +1936,9 @@ const u16 gEggMoves[] = { MOVE_ACID_SPRAY, MOVE_WATER_PULSE, MOVE_ENTRAINMENT), +#endif //P_FAMILY_REMORAID +#if P_FAMILY_DELIBIRD egg_moves(DELIBIRD, MOVE_AURORA_BEAM, MOVE_QUICK_ATTACK, @@ -1429,7 +1955,24 @@ const u16 gEggMoves[] = { MOVE_DESTINY_BOND, MOVE_SPIKES, MOVE_COUNTER), +#endif //P_FAMILY_DELIBIRD +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS + egg_moves(MANTYKE, + MOVE_TWISTER, + MOVE_HYDRO_PUMP, + MOVE_HAZE, + MOVE_SLAM, + MOVE_MUD_SPORT, + MOVE_MIRROR_COAT, + MOVE_WATER_SPORT, + MOVE_SPLASH, + MOVE_SIGNAL_BEAM, + MOVE_WIDE_GUARD, + MOVE_AMNESIA, + MOVE_TAILWIND), +#endif //P_GEN_4_CROSS_EVOS egg_moves(MANTINE, MOVE_TWISTER, MOVE_HYDRO_PUMP, @@ -1441,7 +1984,9 @@ const u16 gEggMoves[] = { MOVE_SPLASH, MOVE_WIDE_GUARD, MOVE_AMNESIA), +#endif //P_FAMILY_MANTINE +#if P_FAMILY_SKARMORY egg_moves(SKARMORY, MOVE_DRILL_PECK, MOVE_PURSUIT, @@ -1453,7 +1998,9 @@ const u16 gEggMoves[] = { MOVE_GUARD_SWAP, MOVE_STEALTH_ROCK, MOVE_ENDURE), +#endif //P_FAMILY_SKARMORY +#if P_FAMILY_HOUNDOUR egg_moves(HOUNDOUR, MOVE_FIRE_SPIN, MOVE_RAGE, @@ -1469,7 +2016,9 @@ const u16 gEggMoves[] = { MOVE_FEINT, MOVE_SUCKER_PUNCH, MOVE_DESTINY_BOND), +#endif //P_FAMILY_HOUNDOUR +#if P_FAMILY_PHANPY egg_moves(PHANPY, MOVE_FOCUS_ENERGY, MOVE_BODY_SLAM, @@ -1484,7 +2033,9 @@ const u16 gEggMoves[] = { MOVE_HEAVY_SLAM, MOVE_PLAY_ROUGH, MOVE_HIGH_HORSEPOWER), +#endif //P_FAMILY_PHANPY +#if P_FAMILY_STANTLER egg_moves(STANTLER, MOVE_SPITE, MOVE_DISABLE, @@ -1497,59 +2048,9 @@ const u16 gEggMoves[] = { MOVE_MUD_SPORT, MOVE_RAGE, MOVE_ME_FIRST), +#endif //P_FAMILY_STANTLER - egg_moves(TYROGUE, - MOVE_RAPID_SPIN, - MOVE_HIGH_JUMP_KICK, - MOVE_MACH_PUNCH, - MOVE_MIND_READER, - MOVE_HELPING_HAND, - MOVE_COUNTER, - MOVE_VACUUM_WAVE, - MOVE_BULLET_PUNCH, - MOVE_ENDURE, - MOVE_PURSUIT, - MOVE_FEINT), - - egg_moves(SMOOCHUM, - MOVE_MEDITATE, - MOVE_FAKE_OUT, - MOVE_WISH, - MOVE_ICE_PUNCH, - MOVE_MIRACLE_EYE, - MOVE_NASTY_PLOT, - MOVE_WAKE_UP_SLAP, - MOVE_CAPTIVATE), - - egg_moves(ELEKID, - MOVE_KARATE_CHOP, - MOVE_BARRIER, - MOVE_ROLLING_KICK, - MOVE_MEDITATE, - MOVE_CROSS_CHOP, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_DYNAMIC_PUNCH, - MOVE_FEINT, - MOVE_HAMMER_ARM, - MOVE_FOCUS_PUNCH), - - egg_moves(MAGBY, - MOVE_KARATE_CHOP, - MOVE_MEGA_PUNCH, - MOVE_BARRIER, - MOVE_SCREECH, - MOVE_CROSS_CHOP, - MOVE_THUNDER_PUNCH, - MOVE_MACH_PUNCH, - MOVE_DYNAMIC_PUNCH, - MOVE_FLARE_BLITZ, - MOVE_BELLY_DRUM, - MOVE_IRON_TAIL, - MOVE_FOCUS_ENERGY, - MOVE_POWER_SWAP, - MOVE_BELCH), - +#if P_FAMILY_MILTANK egg_moves(MILTANK, MOVE_PRESENT, MOVE_REVERSAL, @@ -1565,7 +2066,9 @@ const u16 gEggMoves[] = { MOVE_NATURAL_GIFT, MOVE_HEART_STAMP, MOVE_BELCH), +#endif //P_FAMILY_MILTANK +#if P_FAMILY_LARVITAR egg_moves(LARVITAR, MOVE_PURSUIT, MOVE_STOMP, @@ -1579,7 +2082,9 @@ const u16 gEggMoves[] = { MOVE_IRON_HEAD, MOVE_STEALTH_ROCK, MOVE_IRON_TAIL), +#endif //P_FAMILY_LARVITAR +#if P_FAMILY_TREECKO egg_moves(TREECKO, MOVE_CRUNCH, MOVE_MUD_SPORT, @@ -1597,7 +2102,9 @@ const u16 gEggMoves[] = { MOVE_BULLET_SEED, MOVE_NATURAL_GIFT, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_TREECKO +#if P_FAMILY_TORCHIC egg_moves(TORCHIC, MOVE_COUNTER, MOVE_REVERSAL, @@ -1613,7 +2120,9 @@ const u16 gEggMoves[] = { MOVE_CURSE, MOVE_FLAME_BURST, MOVE_LOW_KICK), +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP egg_moves(MUDKIP, MOVE_REFRESH, MOVE_UPROAR, @@ -1632,7 +2141,9 @@ const u16 gEggMoves[] = { MOVE_AVALANCHE, MOVE_WIDE_GUARD, MOVE_BARRIER), +#endif //P_FAMILY_MUDKIP +#if P_FAMILY_POOCHYENA egg_moves(POOCHYENA, MOVE_ASTONISH, MOVE_POISON_FANG, @@ -1647,7 +2158,9 @@ const u16 gEggMoves[] = { MOVE_SNATCH, MOVE_SLEEP_TALK, MOVE_PLAY_ROUGH), +#endif //P_FAMILY_POOCHYENA +#if P_FAMILY_ZIGZAGOON egg_moves(ZIGZAGOON, MOVE_CHARM, MOVE_PURSUIT, @@ -1659,7 +2172,15 @@ const u16 gEggMoves[] = { MOVE_ROCK_CLIMB, MOVE_SIMPLE_BEAM, MOVE_EXTREME_SPEED), +#if P_GALARIAN_FORMS + egg_moves(ZIGZAGOON_GALARIAN, + MOVE_PARTING_SHOT, + MOVE_QUICK_GUARD, + MOVE_KNOCK_OFF), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON +#if P_FAMILY_LOTAD egg_moves(LOTAD, MOVE_SYNTHESIS, MOVE_RAZOR_LEAF, @@ -1671,7 +2192,9 @@ const u16 gEggMoves[] = { MOVE_COUNTER, MOVE_GIGA_DRAIN, MOVE_TEETER_DANCE), +#endif //P_FAMILY_LOTAD +#if P_FAMILY_SEEDOT egg_moves(SEEDOT, MOVE_LEECH_SEED, MOVE_AMNESIA, @@ -1686,7 +2209,9 @@ const u16 gEggMoves[] = { MOVE_BEAT_UP, MOVE_BULLET_SEED, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_SEEDOT +#if P_FAMILY_TAILLOW egg_moves(TAILLOW, MOVE_PURSUIT, MOVE_SUPERSONIC, @@ -1701,7 +2226,9 @@ const u16 gEggMoves[] = { MOVE_DEFOG, MOVE_BOOMBURST, MOVE_HURRICANE), +#endif //P_FAMILY_TAILLOW +#if P_FAMILY_WINGULL egg_moves(WINGULL, MOVE_MIST, MOVE_TWISTER, @@ -1714,7 +2241,9 @@ const u16 gEggMoves[] = { MOVE_ROOST, MOVE_SOAK, MOVE_WIDE_GUARD), +#endif //P_FAMILY_WINGULL +#if P_FAMILY_RALTS egg_moves(RALTS, MOVE_DISABLE, MOVE_MEAN_LOOK, @@ -1728,7 +2257,9 @@ const u16 gEggMoves[] = { MOVE_SKILL_SWAP, MOVE_MISTY_TERRAIN, MOVE_ALLY_SWITCH), +#endif //P_FAMILY_RALTS +#if P_FAMILY_SURSKIT egg_moves(SURSKIT, MOVE_FORESIGHT, MOVE_MUD_SHOT, @@ -1742,7 +2273,9 @@ const u16 gEggMoves[] = { MOVE_FELL_STINGER, MOVE_POWER_SPLIT, MOVE_LUNGE), +#endif //P_FAMILY_SURSKIT +#if P_FAMILY_SHROOMISH egg_moves(SHROOMISH, MOVE_FAKE_TEARS, MOVE_CHARM, @@ -1754,7 +2287,9 @@ const u16 gEggMoves[] = { MOVE_FOCUS_PUNCH, MOVE_NATURAL_GIFT, MOVE_DRAIN_PUNCH), +#endif //P_FAMILY_SHROOMISH +#if P_FAMILY_SLAKOTH egg_moves(SLAKOTH, MOVE_PURSUIT, MOVE_SLASH, @@ -1767,7 +2302,9 @@ const u16 gEggMoves[] = { MOVE_NIGHT_SLASH, MOVE_AFTER_YOU, MOVE_TICKLE), +#endif //P_FAMILY_SLAKOTH +#if P_FAMILY_NINCADA egg_moves(NINCADA, MOVE_ENDURE, MOVE_FEINT_ATTACK, @@ -1777,7 +2314,9 @@ const u16 gEggMoves[] = { MOVE_NIGHT_SLASH, MOVE_BUG_BITE, MOVE_FINAL_GAMBIT), +#endif //P_FAMILY_NINCADA +#if P_FAMILY_WHISMUR egg_moves(WHISMUR, MOVE_TAKE_DOWN, MOVE_SNORE, @@ -1790,7 +2329,9 @@ const u16 gEggMoves[] = { MOVE_CIRCLE_THROW, MOVE_DISARMING_VOICE, MOVE_WHIRLWIND), +#endif //P_FAMILY_WHISMUR +#if P_FAMILY_MAKUHITA egg_moves(MAKUHITA, MOVE_FEINT_ATTACK, MOVE_DETECT, @@ -1806,21 +2347,9 @@ const u16 gEggMoves[] = { MOVE_WIDE_GUARD, MOVE_FOCUS_PUNCH, MOVE_CHIP_AWAY), +#endif //P_FAMILY_MAKUHITA - egg_moves(AZURILL, - MOVE_ENCORE, - MOVE_SING, - MOVE_REFRESH, - MOVE_SLAM, - MOVE_TICKLE, - MOVE_FAKE_TEARS, - MOVE_BODY_SLAM, - MOVE_WATER_SPORT, - MOVE_SOAK, - MOVE_MUDDY_WATER, - MOVE_COPYCAT, - MOVE_CAMOUFLAGE), - +#if P_FAMILY_NOSEPASS egg_moves(NOSEPASS, MOVE_MAGNITUDE, MOVE_ROLLOUT, @@ -1829,7 +2358,9 @@ const u16 gEggMoves[] = { MOVE_STEALTH_ROCK, MOVE_ENDURE, MOVE_WIDE_GUARD), +#endif //P_FAMILY_NOSEPASS +#if P_FAMILY_SKITTY egg_moves(SKITTY, MOVE_HELPING_HAND, MOVE_UPROAR, @@ -1845,7 +2376,9 @@ const u16 gEggMoves[] = { MOVE_SIMPLE_BEAM, MOVE_CAPTIVATE, MOVE_COSMIC_POWER), +#endif //P_FAMILY_SKITTY +#if P_FAMILY_SABLEYE egg_moves(SABLEYE, MOVE_RECOVER, MOVE_MOONLIGHT, @@ -1858,7 +2391,9 @@ const u16 gEggMoves[] = { MOVE_MEAN_LOOK, MOVE_METAL_BURST, MOVE_IMPRISON), +#endif //P_FAMILY_SABLEYE +#if P_FAMILY_MAWILE egg_moves(MAWILE, MOVE_POISON_FANG, MOVE_ANCIENT_POWER, @@ -1875,7 +2410,9 @@ const u16 gEggMoves[] = { MOVE_MISTY_TERRAIN, MOVE_SEISMIC_TOSS, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_MAWILE +#if P_FAMILY_ARON egg_moves(ARON, MOVE_ENDEAVOR, MOVE_BODY_SLAM, @@ -1889,7 +2426,9 @@ const u16 gEggMoves[] = { MOVE_SUPERPOWER, MOVE_STEALTH_ROCK, MOVE_REVERSAL), +#endif //P_FAMILY_ARON +#if P_FAMILY_MEDITITE egg_moves(MEDITITE, MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, @@ -1905,7 +2444,9 @@ const u16 gEggMoves[] = { MOVE_DRAIN_PUNCH, MOVE_SECRET_POWER, MOVE_QUICK_GUARD), +#endif //P_FAMILY_MEDITITE +#if P_FAMILY_ELECTRIKE egg_moves(ELECTRIKE, MOVE_CRUNCH, MOVE_HEADBUTT, @@ -1921,7 +2462,9 @@ const u16 gEggMoves[] = { MOVE_SHOCK_WAVE, MOVE_FLAME_BURST, MOVE_EERIE_IMPULSE), +#endif //P_FAMILY_ELECTRIKE +#if P_FAMILY_PLUSLE egg_moves(PLUSLE, MOVE_WISH, MOVE_SING, @@ -1931,7 +2474,9 @@ const u16 gEggMoves[] = { MOVE_CHARM, MOVE_FAKE_TEARS, MOVE_TEARFUL_LOOK), +#endif //P_FAMILY_PLUSLE +#if P_FAMILY_MINUN egg_moves(MINUN, MOVE_WISH, MOVE_SING, @@ -1941,7 +2486,9 @@ const u16 gEggMoves[] = { MOVE_CHARM, MOVE_FAKE_TEARS, MOVE_TEARFUL_LOOK), +#endif //P_FAMILY_MINUN +#if P_FAMILY_VOLBEAT_ILLUMISE egg_moves(VOLBEAT, MOVE_BATON_PASS, MOVE_SILVER_WIND, @@ -1962,7 +2509,25 @@ const u16 gEggMoves[] = { MOVE_FAKE_TEARS, MOVE_CONFUSE_RAY, MOVE_AROMATHERAPY), +#endif //P_FAMILY_VOLBEAT_ILLUMISE +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS + egg_moves(BUDEW, + MOVE_SPIKES, + MOVE_SYNTHESIS, + MOVE_PIN_MISSILE, + MOVE_COTTON_SPORE, + MOVE_SLEEP_POWDER, + MOVE_RAZOR_LEAF, + MOVE_MIND_READER, + MOVE_LEAF_STORM, + MOVE_EXTRASENSORY, + MOVE_SEED_BOMB, + MOVE_GIGA_DRAIN, + MOVE_NATURAL_GIFT, + MOVE_GRASS_WHISTLE), +#endif //P_GEN_4_CROSS_EVOS egg_moves(ROSELIA, MOVE_SPIKES, MOVE_SYNTHESIS, @@ -1978,7 +2543,9 @@ const u16 gEggMoves[] = { MOVE_GRASS_WHISTLE, MOVE_BULLET_SEED, MOVE_POWER_WHIP), +#endif //P_FAMILY_ROSELIA +#if P_FAMILY_GULPIN egg_moves(GULPIN, MOVE_ACID_ARMOR, MOVE_SMOG, @@ -1988,7 +2555,9 @@ const u16 gEggMoves[] = { MOVE_MUD_SLAP, MOVE_GUNK_SHOT, MOVE_VENOM_DRENCH), +#endif //P_FAMILY_GULPIN +#if P_FAMILY_CARVANHA egg_moves(CARVANHA, MOVE_HYDRO_PUMP, MOVE_DOUBLE_EDGE, @@ -1998,7 +2567,9 @@ const u16 gEggMoves[] = { MOVE_BRINE, MOVE_DESTINY_BOND, MOVE_PSYCHIC_FANGS), +#endif //P_FAMILY_CARVANHA +#if P_FAMILY_WAILMER egg_moves(WAILMER, MOVE_DOUBLE_EDGE, MOVE_THRASH, @@ -2013,7 +2584,9 @@ const u16 gEggMoves[] = { MOVE_SOAK, MOVE_ZEN_HEADBUTT, MOVE_CLEAR_SMOG), +#endif //P_FAMILY_WAILMER +#if P_FAMILY_NUMEL egg_moves(NUMEL, MOVE_HOWL, MOVE_SCARY_FACE, @@ -2032,7 +2605,9 @@ const u16 gEggMoves[] = { MOVE_IRON_HEAD, MOVE_GROWTH, MOVE_HEAVY_SLAM), +#endif //P_FAMILY_NUMEL +#if P_FAMILY_TORKOAL egg_moves(TORKOAL, MOVE_ERUPTION, MOVE_ENDURE, @@ -2043,7 +2618,9 @@ const u16 gEggMoves[] = { MOVE_FLAME_BURST, MOVE_CLEAR_SMOG, MOVE_SUPERPOWER), +#endif //P_FAMILY_TORKOAL +#if P_FAMILY_SPOINK egg_moves(SPOINK, MOVE_FUTURE_SIGHT, MOVE_EXTRASENSORY, @@ -2056,7 +2633,9 @@ const u16 gEggMoves[] = { MOVE_LUCKY_CHANT, MOVE_ENDURE, MOVE_SIMPLE_BEAM), +#endif //P_FAMILY_SPOINK +#if P_FAMILY_SPINDA egg_moves(SPINDA, MOVE_ENCORE, MOVE_ASSIST, @@ -2075,7 +2654,9 @@ const u16 gEggMoves[] = { MOVE_PSYCHO_SHIFT, MOVE_GUARD_SPLIT, MOVE_SPOTLIGHT), +#endif //P_FAMILY_SPINDA +#if P_FAMILY_TRAPINCH egg_moves(TRAPINCH, MOVE_FOCUS_ENERGY, MOVE_QUICK_ATTACK, @@ -2087,7 +2668,9 @@ const u16 gEggMoves[] = { MOVE_EARTH_POWER, MOVE_BUG_BITE, MOVE_SIGNAL_BEAM), +#endif //P_FAMILY_TRAPINCH +#if P_FAMILY_CACNEA egg_moves(CACNEA, MOVE_GRASS_WHISTLE, MOVE_ACID, @@ -2107,7 +2690,9 @@ const u16 gEggMoves[] = { MOVE_BELCH, MOVE_ROTOTILLER, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_CACNEA +#if P_FAMILY_SWABLU egg_moves(SWABLU, MOVE_AGILITY, MOVE_HAZE, @@ -2120,7 +2705,9 @@ const u16 gEggMoves[] = { MOVE_HYPER_VOICE, MOVE_STEEL_WING, MOVE_PLAY_ROUGH), +#endif //P_FAMILY_SWABLU +#if P_FAMILY_ZANGOOSE egg_moves(ZANGOOSE, MOVE_FLAIL, MOVE_DOUBLE_KICK, @@ -2137,7 +2724,9 @@ const u16 gEggMoves[] = { MOVE_FEINT, MOVE_QUICK_GUARD, MOVE_BELLY_DRUM), +#endif //P_FAMILY_ZANGOOSE +#if P_FAMILY_SEVIPER egg_moves(SEVIPER, MOVE_STOCKPILE, MOVE_SWALLOW, @@ -2151,7 +2740,9 @@ const u16 gEggMoves[] = { MOVE_WRING_OUT, MOVE_PUNISHMENT, MOVE_FINAL_GAMBIT), +#endif //P_FAMILY_SEVIPER +#if P_FAMILY_BARBOACH egg_moves(BARBOACH, MOVE_THRASH, MOVE_WHIRLPOOL, @@ -2163,7 +2754,9 @@ const u16 gEggMoves[] = { MOVE_EARTH_POWER, MOVE_MUD_SHOT, MOVE_MUDDY_WATER), +#endif //P_FAMILY_BARBOACH +#if P_FAMILY_CORPHISH egg_moves(CORPHISH, MOVE_MUD_SPORT, MOVE_ENDEAVOR, @@ -2178,7 +2771,9 @@ const u16 gEggMoves[] = { MOVE_DOUBLE_EDGE, MOVE_AQUA_JET, MOVE_SWITCHEROO), +#endif //P_FAMILY_CORPHISH +#if P_FAMILY_LILEEP egg_moves(LILEEP, MOVE_BARRIER, MOVE_RECOVER, @@ -2189,7 +2784,9 @@ const u16 gEggMoves[] = { MOVE_MEGA_DRAIN, MOVE_ENDURE, MOVE_STEALTH_ROCK), +#endif //P_FAMILY_LILEEP +#if P_FAMILY_ANORITH egg_moves(ANORITH, MOVE_RAPID_SPIN, MOVE_KNOCK_OFF, @@ -2200,7 +2797,9 @@ const u16 gEggMoves[] = { MOVE_IRON_DEFENSE, MOVE_WATER_PULSE, MOVE_AQUA_JET), +#endif //P_FAMILY_ANORITH +#if P_FAMILY_FEEBAS egg_moves(FEEBAS, MOVE_MIRROR_COAT, MOVE_DRAGON_BREATH, @@ -2214,7 +2813,9 @@ const u16 gEggMoves[] = { MOVE_IRON_TAIL, MOVE_DRAGON_PULSE, MOVE_CAPTIVATE), +#endif //P_FAMILY_FEEBAS +#if P_FAMILY_CASTFORM egg_moves(CASTFORM, MOVE_FUTURE_SIGHT, MOVE_LUCKY_CHANT, @@ -2226,7 +2827,9 @@ const u16 gEggMoves[] = { MOVE_REFLECT_TYPE, MOVE_GUARD_SWAP, MOVE_COSMIC_POWER), +#endif //P_FAMILY_CASTFORM +#if P_FAMILY_KECLEON egg_moves(KECLEON, MOVE_DISABLE, MOVE_MAGIC_COAT, @@ -2240,7 +2843,9 @@ const u16 gEggMoves[] = { MOVE_FOUL_PLAY, MOVE_CAMOUFLAGE, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_KECLEON +#if P_FAMILY_SHUPPET egg_moves(SHUPPET, MOVE_DISABLE, MOVE_DESTINY_BOND, @@ -2253,7 +2858,9 @@ const u16 gEggMoves[] = { MOVE_OMINOUS_WIND, MOVE_GUNK_SHOT, MOVE_PHANTOM_FORCE), +#endif //P_FAMILY_SHUPPET +#if P_FAMILY_DUSKULL egg_moves(DUSKULL, MOVE_IMPRISON, MOVE_DESTINY_BOND, @@ -2265,7 +2872,9 @@ const u16 gEggMoves[] = { MOVE_DARK_PULSE, MOVE_SKILL_SWAP, MOVE_HAZE), +#endif //P_FAMILY_DUSKULL +#if P_FAMILY_TROPIUS egg_moves(TROPIUS, MOVE_HEADBUTT, MOVE_SLAM, @@ -2280,7 +2889,21 @@ const u16 gEggMoves[] = { MOVE_BULLET_SEED, MOVE_NATURAL_GIFT, MOVE_DRAGON_HAMMER), +#endif //P_FAMILY_TROPIUS +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS + egg_moves(CHINGLING, + MOVE_DISABLE, + MOVE_CURSE, + MOVE_HYPNOSIS, + MOVE_WISH, + MOVE_FUTURE_SIGHT, + MOVE_RECOVER, + MOVE_STORED_POWER, + MOVE_SKILL_SWAP, + MOVE_COSMIC_POWER), +#endif //P_GEN_4_CROSS_EVOS egg_moves(CHIMECHO, MOVE_DISABLE, MOVE_CURSE, @@ -2293,7 +2916,9 @@ const u16 gEggMoves[] = { MOVE_COSMIC_POWER, MOVE_CRAFTY_SHIELD, MOVE_PERISH_SONG), +#endif //P_FAMILY_CHIMECHO +#if P_FAMILY_ABSOL egg_moves(ABSOL, MOVE_BATON_PASS, MOVE_FEINT_ATTACK, @@ -2310,7 +2935,9 @@ const u16 gEggMoves[] = { MOVE_HEX, MOVE_PERISH_SONG, MOVE_PLAY_ROUGH), +#endif //P_FAMILY_ABSOL +#if P_FAMILY_SNORUNT egg_moves(SNORUNT, MOVE_BLOCK, MOVE_SPIKES, @@ -2322,7 +2949,9 @@ const u16 gEggMoves[] = { MOVE_HEX, MOVE_FAKE_TEARS, MOVE_SWITCHEROO), +#endif //P_FAMILY_SNORUNT +#if P_FAMILY_SPHEAL egg_moves(SPHEAL, MOVE_WATER_SPORT, MOVE_STOCKPILE, @@ -2337,7 +2966,9 @@ const u16 gEggMoves[] = { MOVE_SLEEP_TALK, MOVE_WATER_PULSE, MOVE_BELLY_DRUM), +#endif //P_FAMILY_SPHEAL +#if P_FAMILY_CLAMPERL egg_moves(CLAMPERL, MOVE_REFRESH, MOVE_MUD_SPORT, @@ -2350,7 +2981,9 @@ const u16 gEggMoves[] = { MOVE_WATER_PULSE, MOVE_BRINE, MOVE_ENDURE), +#endif //P_FAMILY_CLAMPERL +#if P_FAMILY_RELICANTH egg_moves(RELICANTH, MOVE_MAGNITUDE, MOVE_SKULL_BASH, @@ -2364,7 +2997,9 @@ const u16 gEggMoves[] = { MOVE_MUD_SHOT, MOVE_BRINE, MOVE_ZEN_HEADBUTT), +#endif //P_FAMILY_RELICANTH +#if P_FAMILY_LUVDISC egg_moves(LUVDISC, MOVE_SPLASH, MOVE_SUPERSONIC, @@ -2376,7 +3011,9 @@ const u16 gEggMoves[] = { MOVE_HEAL_PULSE, MOVE_BRINE, MOVE_ENTRAINMENT), +#endif //P_FAMILY_LUVDISC +#if P_FAMILY_BAGON egg_moves(BAGON, MOVE_HYDRO_PUMP, MOVE_THRASH, @@ -2388,8 +3025,9 @@ const u16 gEggMoves[] = { MOVE_DRAGON_PULSE, MOVE_ENDURE, MOVE_DEFENSE_CURL), +#endif //P_FAMILY_BAGON -#if P_GEN_4_POKEMON == TRUE +#if P_FAMILY_TURTWIG egg_moves(TURTWIG, MOVE_WORRY_SEED, MOVE_GROWTH, @@ -2408,7 +3046,9 @@ const u16 gEggMoves[] = { MOVE_WIDE_GUARD, MOVE_GRASSY_TERRAIN, MOVE_HEAVY_SLAM), +#endif //P_FAMILY_TURTWIG +#if P_FAMILY_CHIMCHAR egg_moves(CHIMCHAR, MOVE_FIRE_PUNCH, MOVE_THUNDER_PUNCH, @@ -2425,7 +3065,9 @@ const u16 gEggMoves[] = { MOVE_FOCUS_PUNCH, MOVE_SUBMISSION, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_CHIMCHAR +#if P_FAMILY_PIPLUP egg_moves(PIPLUP, MOVE_DOUBLE_HIT, MOVE_SUPERSONIC, @@ -2441,7 +3083,9 @@ const u16 gEggMoves[] = { MOVE_BIDE, MOVE_ICY_WIND, MOVE_POWER_TRIP), +#endif //P_FAMILY_PIPLUP +#if P_FAMILY_STARLY egg_moves(STARLY, MOVE_FEATHER_DANCE, MOVE_FURY_ATTACK, @@ -2456,7 +3100,9 @@ const u16 gEggMoves[] = { MOVE_DETECT, MOVE_REVENGE, MOVE_MIRROR_MOVE), +#endif //P_FAMILY_STARLY +#if P_FAMILY_BIDOOF egg_moves(BIDOOF, MOVE_QUICK_ATTACK, MOVE_WATER_SPORT, @@ -2471,7 +3117,9 @@ const u16 gEggMoves[] = { MOVE_ENDURE, MOVE_SKULL_BASH, MOVE_MUD_SPORT), +#endif //P_FAMILY_BIDOOF +#if P_FAMILY_SHINX egg_moves(SHINX, MOVE_ICE_FANG, MOVE_FIRE_FANG, @@ -2487,22 +3135,9 @@ const u16 gEggMoves[] = { MOVE_HELPING_HAND, MOVE_EERIE_IMPULSE, MOVE_FAKE_TEARS), +#endif //P_FAMILY_SHINX - egg_moves(BUDEW, - MOVE_SPIKES, - MOVE_SYNTHESIS, - MOVE_PIN_MISSILE, - MOVE_COTTON_SPORE, - MOVE_SLEEP_POWDER, - MOVE_RAZOR_LEAF, - MOVE_MIND_READER, - MOVE_LEAF_STORM, - MOVE_EXTRASENSORY, - MOVE_SEED_BOMB, - MOVE_GIGA_DRAIN, - MOVE_NATURAL_GIFT, - MOVE_GRASS_WHISTLE), - +#if P_FAMILY_CRANIDOS egg_moves(CRANIDOS, MOVE_CRUNCH, MOVE_THRASH, @@ -2515,7 +3150,9 @@ const u16 gEggMoves[] = { MOVE_CURSE, MOVE_IRON_TAIL, MOVE_IRON_HEAD), +#endif //P_FAMILY_CRANIDOS +#if P_FAMILY_SHIELDON egg_moves(SHIELDON, MOVE_HEADBUTT, MOVE_SCARY_FACE, @@ -2530,7 +3167,9 @@ const u16 gEggMoves[] = { MOVE_STEALTH_ROCK, MOVE_WIDE_GUARD, MOVE_GUARD_SPLIT), +#endif //P_FAMILY_SHIELDON +#if P_FAMILY_PACHIRISU egg_moves(PACHIRISU, MOVE_COVET, MOVE_BITE, @@ -2546,7 +3185,9 @@ const u16 gEggMoves[] = { MOVE_BESTOW, MOVE_ION_DELUGE, MOVE_BABY_DOLL_EYES), +#endif //P_FAMILY_PACHIRISU +#if P_FAMILY_BUIZEL egg_moves(BUIZEL, MOVE_MUD_SLAP, MOVE_HEADBUTT, @@ -2563,7 +3204,9 @@ const u16 gEggMoves[] = { MOVE_TAIL_SLAP, MOVE_SOAK, MOVE_HELPING_HAND), +#endif //P_FAMILY_BUIZEL +#if P_FAMILY_CHERUBI egg_moves(CHERUBI, MOVE_RAZOR_LEAF, MOVE_SWEET_SCENT, @@ -2580,7 +3223,9 @@ const u16 gEggMoves[] = { MOVE_ROLLOUT, MOVE_FLOWER_SHIELD, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_SHELLOS egg_moves(SHELLOS_WEST_SEA, MOVE_COUNTER, MOVE_MIRROR_COAT, @@ -2598,7 +3243,9 @@ const u16 gEggMoves[] = { MOVE_BRINE, MOVE_MIST, MOVE_ACID_ARMOR), +#endif //P_FAMILY_SHELLOS +#if P_FAMILY_DRIFLOON egg_moves(DRIFLOON, MOVE_MEMENTO, MOVE_BODY_SLAM, @@ -2610,7 +3257,9 @@ const u16 gEggMoves[] = { MOVE_CLEAR_SMOG, MOVE_DEFOG, MOVE_TAILWIND), +#endif //P_FAMILY_DRIFLOON +#if P_FAMILY_BUNEARY egg_moves(BUNEARY, MOVE_FAKE_TEARS, MOVE_FAKE_OUT, @@ -2631,7 +3280,9 @@ const u16 gEggMoves[] = { MOVE_COSMIC_POWER, MOVE_MUD_SPORT, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_BUNEARY +#if P_FAMILY_GLAMEOW egg_moves(GLAMEOW, MOVE_BITE, MOVE_TAIL_WHIP, @@ -2643,18 +3294,9 @@ const u16 gEggMoves[] = { MOVE_SNATCH, MOVE_WAKE_UP_SLAP, MOVE_LAST_RESORT), +#endif //P_FAMILY_GLAMEOW - egg_moves(CHINGLING, - MOVE_DISABLE, - MOVE_CURSE, - MOVE_HYPNOSIS, - MOVE_WISH, - MOVE_FUTURE_SIGHT, - MOVE_RECOVER, - MOVE_STORED_POWER, - MOVE_SKILL_SWAP, - MOVE_COSMIC_POWER), - +#if P_FAMILY_STUNKY egg_moves(STUNKY, MOVE_PURSUIT, MOVE_LEER, @@ -2669,48 +3311,9 @@ const u16 gEggMoves[] = { MOVE_FOUL_PLAY, MOVE_FLAME_BURST, MOVE_PLAY_ROUGH), +#endif //P_FAMILY_STUNKY - egg_moves(BONSLY, - MOVE_SELF_DESTRUCT, - MOVE_HEADBUTT, - MOVE_HARDEN, - MOVE_DEFENSE_CURL, - MOVE_ROLLOUT, - MOVE_SAND_TOMB, - MOVE_STEALTH_ROCK, - MOVE_CURSE, - MOVE_ENDURE), - - egg_moves(MIME_JR, - MOVE_FUTURE_SIGHT, - MOVE_HYPNOSIS, - MOVE_MIMIC, - MOVE_FAKE_OUT, - MOVE_TRICK, - MOVE_CONFUSE_RAY, - MOVE_WAKE_UP_SLAP, - MOVE_TEETER_DANCE, - MOVE_HEALING_WISH, - MOVE_CHARM, - MOVE_NASTY_PLOT, - MOVE_POWER_SPLIT, - MOVE_MAGIC_ROOM, - MOVE_ICY_WIND, - MOVE_PSYCHIC_TERRAIN), - - egg_moves(HAPPINY, - MOVE_PRESENT, - MOVE_METRONOME, - MOVE_HEAL_BELL, - MOVE_AROMATHERAPY, - MOVE_COUNTER, - MOVE_HELPING_HAND, - MOVE_GRAVITY, - MOVE_LAST_RESORT, - MOVE_MUD_BOMB, - MOVE_NATURAL_GIFT, - MOVE_ENDURE), - +#if P_FAMILY_CHATOT egg_moves(CHATOT, MOVE_ENCORE, MOVE_NIGHT_SHADE, @@ -2722,7 +3325,9 @@ const u16 gEggMoves[] = { MOVE_DEFOG, MOVE_AIR_CUTTER, MOVE_BOOMBURST), +#endif //P_FAMILY_CHATOT +#if P_FAMILY_SPIRITOMB egg_moves(SPIRITOMB, MOVE_DESTINY_BOND, MOVE_PAIN_SPLIT, @@ -2734,7 +3339,9 @@ const u16 gEggMoves[] = { MOVE_NIGHTMARE, MOVE_FOUL_PLAY, MOVE_DISABLE), +#endif //P_FAMILY_SPIRITOMB +#if P_FAMILY_GIBLE egg_moves(GIBLE, MOVE_DRAGON_BREATH, MOVE_OUTRAGE, @@ -2749,21 +3356,9 @@ const u16 gEggMoves[] = { MOVE_MUD_SHOT, MOVE_ROCK_CLIMB, MOVE_IRON_TAIL), +#endif //P_FAMILY_GIBLE - egg_moves(MUNCHLAX, - MOVE_LICK, - MOVE_CHARM, - MOVE_DOUBLE_EDGE, - MOVE_CURSE, - MOVE_WHIRLWIND, - MOVE_PURSUIT, - MOVE_ZEN_HEADBUTT, - MOVE_COUNTER, - MOVE_NATURAL_GIFT, - MOVE_AFTER_YOU, - MOVE_SELF_DESTRUCT, - MOVE_BELCH), - +#if P_FAMILY_RIOLU egg_moves(RIOLU, MOVE_CROSS_CHOP, MOVE_DETECT, @@ -2781,7 +3376,9 @@ const u16 gEggMoves[] = { MOVE_FOLLOW_ME, MOVE_CIRCLE_THROW, MOVE_METEOR_MASH), +#endif //P_FAMILY_RIOLU +#if P_FAMILY_HIPPOPOTAS egg_moves(HIPPOPOTAS, MOVE_STOCKPILE, MOVE_SWALLOW, @@ -2793,7 +3390,9 @@ const u16 gEggMoves[] = { MOVE_REVENGE, MOVE_SLEEP_TALK, MOVE_WHIRLWIND), +#endif //P_FAMILY_HIPPOPOTAS +#if P_FAMILY_SKORUPI egg_moves(SKORUPI, MOVE_FEINT_ATTACK, MOVE_SCREECH, @@ -2807,7 +3406,9 @@ const u16 gEggMoves[] = { MOVE_IRON_TAIL, MOVE_TWINEEDLE, MOVE_POISON_TAIL), +#endif //P_FAMILY_SKORUPI +#if P_FAMILY_CROAGUNK egg_moves(CROAGUNK, MOVE_ME_FIRST, MOVE_FEINT, @@ -2824,7 +3425,9 @@ const u16 gEggMoves[] = { MOVE_DRAIN_PUNCH, MOVE_ACUPRESSURE, MOVE_QUICK_GUARD), +#endif //P_FAMILY_CROAGUNK +#if P_FAMILY_CARNIVINE egg_moves(CARNIVINE, MOVE_SLEEP_POWDER, MOVE_STUN_SPORE, @@ -2838,7 +3441,9 @@ const u16 gEggMoves[] = { MOVE_RAGE_POWDER, MOVE_GRASS_WHISTLE, MOVE_ACID_SPRAY), +#endif //P_FAMILY_CARNIVINE +#if P_FAMILY_FINNEON egg_moves(FINNEON, MOVE_SWEET_KISS, MOVE_CHARM, @@ -2852,21 +3457,9 @@ const u16 gEggMoves[] = { MOVE_AURORA_BEAM, MOVE_SIGNAL_BEAM, MOVE_CONFUSE_RAY), +#endif //P_FAMILY_FINNEON - egg_moves(MANTYKE, - MOVE_TWISTER, - MOVE_HYDRO_PUMP, - MOVE_HAZE, - MOVE_SLAM, - MOVE_MUD_SPORT, - MOVE_MIRROR_COAT, - MOVE_WATER_SPORT, - MOVE_SPLASH, - MOVE_SIGNAL_BEAM, - MOVE_WIDE_GUARD, - MOVE_AMNESIA, - MOVE_TAILWIND), - +#if P_FAMILY_SNOVER egg_moves(SNOVER, MOVE_LEECH_SEED, MOVE_MAGICAL_LEAF, @@ -2879,9 +3472,9 @@ const u16 gEggMoves[] = { MOVE_AVALANCHE, MOVE_NATURAL_GIFT, MOVE_BULLET_SEED), -#endif +#endif //P_FAMILY_SNOVER -#if P_GEN_5_POKEMON == TRUE +#if P_FAMILY_SNIVY egg_moves(SNIVY, MOVE_CAPTIVATE, MOVE_NATURAL_GIFT, @@ -2894,7 +3487,9 @@ const u16 gEggMoves[] = { MOVE_MEAN_LOOK, MOVE_TWISTER, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_SNIVY +#if P_FAMILY_TEPIG egg_moves(TEPIG, MOVE_COVET, MOVE_BODY_SLAM, @@ -2908,7 +3503,9 @@ const u16 gEggMoves[] = { MOVE_HEAVY_SLAM, MOVE_SUCKER_PUNCH, MOVE_BURN_UP), +#endif //P_FAMILY_TEPIG +#if P_FAMILY_OSHAWOTT egg_moves(OSHAWOTT, MOVE_COPYCAT, MOVE_DETECT, @@ -2919,7 +3516,9 @@ const u16 gEggMoves[] = { MOVE_TRUMP_CARD, MOVE_SCREECH, MOVE_SACRED_SWORD), +#endif //P_FAMILY_OSHAWOTT +#if P_FAMILY_PATRAT egg_moves(PATRAT, MOVE_FORESIGHT, MOVE_IRON_TAIL, @@ -2930,7 +3529,9 @@ const u16 gEggMoves[] = { MOVE_FLAIL, MOVE_TEARFUL_LOOK, MOVE_BULLET_SEED), +#endif //P_FAMILY_PATRAT +#if P_FAMILY_LILLIPUP egg_moves(LILLIPUP, MOVE_HOWL, MOVE_SAND_ATTACK, @@ -2945,7 +3546,9 @@ const u16 gEggMoves[] = { MOVE_ICE_FANG, MOVE_AFTER_YOU, MOVE_PSYCHIC_FANGS), +#endif //P_FAMILY_LILLIPUP +#if P_FAMILY_PURRLOIN egg_moves(PURRLOIN, MOVE_PAY_DAY, MOVE_FOUL_PLAY, @@ -2956,7 +3559,9 @@ const u16 gEggMoves[] = { MOVE_YAWN, MOVE_COVET, MOVE_COPYCAT), +#endif //P_FAMILY_PURRLOIN +#if P_FAMILY_PANSAGE egg_moves(PANSAGE, MOVE_COVET, MOVE_LOW_KICK, @@ -2970,7 +3575,9 @@ const u16 gEggMoves[] = { MOVE_LEAF_STORM, MOVE_DISARMING_VOICE, MOVE_SPIKY_SHIELD), +#endif //P_FAMILY_PANSAGE +#if P_FAMILY_PANSEAR egg_moves(PANSEAR, MOVE_COVET, MOVE_LOW_KICK, @@ -2985,7 +3592,9 @@ const u16 gEggMoves[] = { MOVE_DISARMING_VOICE, MOVE_BELCH, MOVE_FLARE_BLITZ), +#endif //P_FAMILY_PANSEAR +#if P_FAMILY_PANPOUR egg_moves(PANPOUR, MOVE_COVET, MOVE_LOW_KICK, @@ -2998,7 +3607,9 @@ const u16 gEggMoves[] = { MOVE_MUD_SPORT, MOVE_HYDRO_PUMP, MOVE_DISARMING_VOICE), +#endif //P_FAMILY_PANPOUR +#if P_FAMILY_MUNNA egg_moves(MUNNA, MOVE_SLEEP_TALK, MOVE_SECRET_POWER, @@ -3010,7 +3621,9 @@ const u16 gEggMoves[] = { MOVE_CURSE, MOVE_SONIC_BOOM, MOVE_HEALING_WISH), +#endif //P_FAMILY_MUNNA +#if P_FAMILY_PIDOVE egg_moves(PIDOVE, MOVE_STEEL_WING, MOVE_HYPNOSIS, @@ -3020,7 +3633,9 @@ const u16 gEggMoves[] = { MOVE_MORNING_SUN, MOVE_LUCKY_CHANT, MOVE_NIGHT_SLASH), +#endif //P_FAMILY_PIDOVE +#if P_FAMILY_BLITZLE egg_moves(BLITZLE, MOVE_ME_FIRST, MOVE_TAKE_DOWN, @@ -3033,7 +3648,9 @@ const u16 gEggMoves[] = { MOVE_SHOCK_WAVE, MOVE_SNATCH, MOVE_FEINT), +#endif //P_FAMILY_BLITZLE +#if P_FAMILY_ROGGENROLA egg_moves(ROGGENROLA, MOVE_MAGNITUDE, MOVE_CURSE, @@ -3044,7 +3661,9 @@ const u16 gEggMoves[] = { MOVE_TAKE_DOWN, MOVE_GRAVITY, MOVE_WIDE_GUARD), +#endif //P_FAMILY_ROGGENROLA +#if P_FAMILY_WOOBAT egg_moves(WOOBAT, MOVE_CHARM, MOVE_KNOCK_OFF, @@ -3058,7 +3677,9 @@ const u16 gEggMoves[] = { MOVE_CAPTIVATE, MOVE_VENOM_DRENCH, MOVE_PSYCHO_SHIFT), +#endif //P_FAMILY_WOOBAT +#if P_FAMILY_DRILBUR egg_moves(DRILBUR, MOVE_IRON_DEFENSE, MOVE_RAPID_SPIN, @@ -3068,7 +3689,9 @@ const u16 gEggMoves[] = { MOVE_SUBMISSION, MOVE_SKULL_BASH, MOVE_ROCK_CLIMB), +#endif //P_FAMILY_DRILBUR +#if P_FAMILY_AUDINO egg_moves(AUDINO, MOVE_WISH, MOVE_HEAL_BELL, @@ -3081,7 +3704,9 @@ const u16 gEggMoves[] = { MOVE_HEALING_WISH, MOVE_AMNESIA, MOVE_DRAINING_KISS), +#endif //P_FAMILY_AUDINO +#if P_FAMILY_TIMBURR egg_moves(TIMBURR, MOVE_DRAIN_PUNCH, MOVE_ENDURE, @@ -3095,7 +3720,9 @@ const u16 gEggMoves[] = { MOVE_REVERSAL, MOVE_MACH_PUNCH, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_TIMBURR +#if P_FAMILY_TYMPOLE egg_moves(TYMPOLE, MOVE_WATER_PULSE, MOVE_REFRESH, @@ -3107,7 +3734,9 @@ const u16 gEggMoves[] = { MOVE_EARTH_POWER, MOVE_AFTER_YOU, MOVE_VENOM_DRENCH), +#endif //P_FAMILY_TYMPOLE +#if P_FAMILY_SEWADDLE egg_moves(SEWADDLE, MOVE_SILVER_WIND, MOVE_SCREECH, @@ -3119,7 +3748,9 @@ const u16 gEggMoves[] = { MOVE_CAMOUFLAGE, MOVE_AIR_SLASH, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_SEWADDLE +#if P_FAMILY_VENIPEDE egg_moves(VENIPEDE, MOVE_TWINEEDLE, MOVE_PIN_MISSILE, @@ -3127,7 +3758,9 @@ const u16 gEggMoves[] = { MOVE_SPIKES, MOVE_TAKE_DOWN, MOVE_ROCK_CLIMB), +#endif //P_FAMILY_VENIPEDE +#if P_FAMILY_COTTONEE egg_moves(COTTONEE, MOVE_NATURAL_GIFT, MOVE_ENCORE, @@ -3140,7 +3773,9 @@ const u16 gEggMoves[] = { MOVE_WORRY_SEED, MOVE_CAPTIVATE, MOVE_MISTY_TERRAIN), +#endif //P_FAMILY_COTTONEE +#if P_FAMILY_PETILIL egg_moves(PETILIL, MOVE_NATURAL_GIFT, MOVE_CHARM, @@ -3152,7 +3787,9 @@ const u16 gEggMoves[] = { MOVE_BIDE, MOVE_HEALING_WISH, MOVE_ENCORE), +#endif //P_FAMILY_PETILIL +#if P_FAMILY_BASCULIN egg_moves(BASCULIN, MOVE_SWIFT, MOVE_BUBBLE_BEAM, @@ -3164,7 +3801,9 @@ const u16 gEggMoves[] = { MOVE_BRINE, MOVE_REVENGE, MOVE_HEAD_SMASH), +#endif //P_FAMILY_BASCULIN +#if P_FAMILY_SANDILE egg_moves(SANDILE, MOVE_DOUBLE_EDGE, MOVE_ROCK_CLIMB, @@ -3178,7 +3817,9 @@ const u16 gEggMoves[] = { MOVE_MEAN_LOOK, MOVE_ME_FIRST, MOVE_POWER_TRIP), +#endif //P_FAMILY_SANDILE +#if P_FAMILY_DARUMAKA egg_moves(DARUMAKA, MOVE_SLEEP_TALK, MOVE_FOCUS_PUNCH, @@ -3191,7 +3832,20 @@ const u16 gEggMoves[] = { MOVE_YAWN, MOVE_SNATCH, MOVE_EXTRASENSORY), +#if P_GALARIAN_FORMS + egg_moves(DARUMAKA_GALARIAN, + MOVE_FOCUS_PUNCH, + MOVE_HAMMER_ARM, + MOVE_TAKE_DOWN, + MOVE_FLAME_WHEEL, + MOVE_YAWN, + MOVE_FREEZE_DRY, + MOVE_INCINERATE, + MOVE_POWER_UP_PUNCH), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA +#if P_FAMILY_MARACTUS egg_moves(MARACTUS, MOVE_BULLET_SEED, MOVE_BOUNCE, @@ -3202,7 +3856,9 @@ const u16 gEggMoves[] = { MOVE_SPIKES, MOVE_GRASS_WHISTLE, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_MARACTUS +#if P_FAMILY_DWEBBLE egg_moves(DWEBBLE, MOVE_ENDURE, MOVE_IRON_DEFENSE, @@ -3214,7 +3870,9 @@ const u16 gEggMoves[] = { MOVE_BLOCK, MOVE_WIDE_GUARD, MOVE_ROTOTILLER), +#endif //P_FAMILY_DWEBBLE +#if P_FAMILY_SCRAGGY egg_moves(SCRAGGY, MOVE_DRAIN_PUNCH, MOVE_COUNTER, @@ -3230,7 +3888,9 @@ const u16 gEggMoves[] = { MOVE_QUICK_GUARD, MOVE_POWER_UP_PUNCH, MOVE_ACID_SPRAY), +#endif //P_FAMILY_SCRAGGY +#if P_FAMILY_SIGILYPH egg_moves(SIGILYPH, MOVE_STORED_POWER, MOVE_PSYCHO_SHIFT, @@ -3239,7 +3899,9 @@ const u16 gEggMoves[] = { MOVE_ROOST, MOVE_SKILL_SWAP, MOVE_FUTURE_SIGHT), +#endif //P_FAMILY_SIGILYPH +#if P_FAMILY_YAMASK egg_moves(YAMASK, MOVE_MEMENTO, MOVE_FAKE_TEARS, @@ -3252,7 +3914,13 @@ const u16 gEggMoves[] = { MOVE_ALLY_SWITCH, MOVE_TOXIC_SPIKES, MOVE_CRAFTY_SHIELD), +#if P_GALARIAN_FORMS + egg_moves(YAMASK_GALARIAN, + MOVE_MEMENTO), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK +#if P_FAMILY_TIRTOUGA egg_moves(TIRTOUGA, MOVE_WATER_PULSE, MOVE_KNOCK_OFF, @@ -3265,7 +3933,9 @@ const u16 gEggMoves[] = { MOVE_BIDE, MOVE_GUARD_SWAP, MOVE_LIQUIDATION), +#endif //P_FAMILY_TIRTOUGA +#if P_FAMILY_ARCHEN egg_moves(ARCHEN, MOVE_STEEL_WING, MOVE_DEFOG, @@ -3276,7 +3946,9 @@ const u16 gEggMoves[] = { MOVE_BITE, MOVE_ALLY_SWITCH, MOVE_SWITCHEROO), +#endif //P_FAMILY_ARCHEN +#if P_FAMILY_TRUBBISH egg_moves(TRUBBISH, MOVE_SPIKES, MOVE_ROLLOUT, @@ -3287,7 +3959,9 @@ const u16 gEggMoves[] = { MOVE_MUD_SPORT, MOVE_SELF_DESTRUCT, MOVE_AUTOTOMIZE), +#endif //P_FAMILY_TRUBBISH +#if P_FAMILY_ZORUA egg_moves(ZORUA, MOVE_DETECT, MOVE_CAPTIVATE, @@ -3298,7 +3972,9 @@ const u16 gEggMoves[] = { MOVE_EXTRASENSORY, MOVE_COUNTER, MOVE_COPYCAT), +#endif //P_FAMILY_ZORUA +#if P_FAMILY_MINCCINO egg_moves(MINCCINO, MOVE_IRON_TAIL, MOVE_TAIL_WHIP, @@ -3309,7 +3985,9 @@ const u16 gEggMoves[] = { MOVE_SLEEP_TALK, MOVE_ENDURE, MOVE_FLAIL), +#endif //P_FAMILY_MINCCINO +#if P_FAMILY_GOTHITA egg_moves(GOTHITA, MOVE_MIRROR_COAT, MOVE_UPROAR, @@ -3318,7 +3996,9 @@ const u16 gEggMoves[] = { MOVE_MEAN_LOOK, MOVE_DARK_PULSE, MOVE_HEAL_PULSE), +#endif //P_FAMILY_GOTHITA +#if P_FAMILY_SOLOSIS egg_moves(SOLOSIS, MOVE_NIGHT_SHADE, MOVE_ASTONISH, @@ -3329,7 +4009,9 @@ const u16 gEggMoves[] = { MOVE_SECRET_POWER, MOVE_ASTONISH, MOVE_HELPING_HAND), +#endif //P_FAMILY_SOLOSIS +#if P_FAMILY_DUCKLETT egg_moves(DUCKLETT, MOVE_STEEL_WING, MOVE_BRINE, @@ -3340,7 +4022,9 @@ const u16 gEggMoves[] = { MOVE_LUCKY_CHANT, MOVE_MUD_SPORT, MOVE_AQUA_JET), +#endif //P_FAMILY_DUCKLETT +#if P_FAMILY_VANILLITE egg_moves(VANILLITE, MOVE_WATER_PULSE, MOVE_NATURAL_GIFT, @@ -3350,7 +4034,9 @@ const u16 gEggMoves[] = { MOVE_MAGNET_RISE, MOVE_ICE_SHARD, MOVE_POWDER_SNOW), +#endif //P_FAMILY_VANILLITE +#if P_FAMILY_DEERLING egg_moves(DEERLING, MOVE_FAKE_TEARS, MOVE_NATURAL_GIFT, @@ -3362,7 +4048,9 @@ const u16 gEggMoves[] = { MOVE_BATON_PASS, MOVE_GRASS_WHISTLE, MOVE_HEADBUTT), +#endif //P_FAMILY_DEERLING +#if P_FAMILY_EMOLGA egg_moves(EMOLGA, MOVE_ROOST, MOVE_IRON_TAIL, @@ -3375,7 +4063,9 @@ const u16 gEggMoves[] = { MOVE_BATON_PASS, MOVE_ION_DELUGE, MOVE_SPEED_SWAP), +#endif //P_FAMILY_EMOLGA +#if P_FAMILY_KARRABLAST egg_moves(KARRABLAST, MOVE_MEGAHORN, MOVE_PURSUIT, @@ -3386,7 +4076,9 @@ const u16 gEggMoves[] = { MOVE_SCREECH, MOVE_KNOCK_OFF, MOVE_DRILL_RUN), +#endif //P_FAMILY_KARRABLAST +#if P_FAMILY_FOONGUS egg_moves(FOONGUS, MOVE_GASTRO_ACID, MOVE_GROWTH, @@ -3396,7 +4088,9 @@ const u16 gEggMoves[] = { MOVE_DEFENSE_CURL, MOVE_ENDURE, MOVE_BODY_SLAM), +#endif //P_FAMILY_FOONGUS +#if P_FAMILY_FRILLISH egg_moves(FRILLISH, MOVE_ACID_ARMOR, MOVE_CONFUSE_RAY, @@ -3404,7 +4098,9 @@ const u16 gEggMoves[] = { MOVE_MIST, MOVE_RECOVER, MOVE_CONSTRICT), +#endif //P_FAMILY_FRILLISH +#if P_FAMILY_ALOMOMOLA egg_moves(ALOMOMOLA, MOVE_PAIN_SPLIT, MOVE_REFRESH, @@ -3412,7 +4108,9 @@ const u16 gEggMoves[] = { MOVE_MIRROR_COAT, MOVE_MIST, MOVE_ENDURE), +#endif //P_FAMILY_ALOMOMOLA +#if P_FAMILY_JOLTIK egg_moves(JOLTIK, MOVE_PIN_MISSILE, MOVE_POISON_STING, @@ -3423,7 +4121,9 @@ const u16 gEggMoves[] = { MOVE_FEINT_ATTACK, MOVE_CAMOUFLAGE, MOVE_LUNGE), +#endif //P_FAMILY_JOLTIK +#if P_FAMILY_FERROSEED egg_moves(FERROSEED, MOVE_BULLET_SEED, MOVE_LEECH_SEED, @@ -3434,7 +4134,9 @@ const u16 gEggMoves[] = { MOVE_ROCK_CLIMB, MOVE_STEALTH_ROCK, MOVE_ACID_SPRAY), +#endif //P_FAMILY_FERROSEED +#if P_FAMILY_ELGYEM egg_moves(ELGYEM, MOVE_TELEPORT, MOVE_DISABLE, @@ -3446,7 +4148,9 @@ const u16 gEggMoves[] = { MOVE_SKILL_SWAP, MOVE_COSMIC_POWER, MOVE_ALLY_SWITCH), +#endif //P_FAMILY_ELGYEM +#if P_FAMILY_LITWICK egg_moves(LITWICK, MOVE_ACID_ARMOR, MOVE_HEAT_WAVE, @@ -3456,7 +4160,9 @@ const u16 gEggMoves[] = { MOVE_ACID, MOVE_CLEAR_SMOG, MOVE_POWER_SPLIT), +#endif //P_FAMILY_LITWICK +#if P_FAMILY_AXEW egg_moves(AXEW, MOVE_COUNTER, MOVE_FOCUS_ENERGY, @@ -3468,7 +4174,9 @@ const u16 gEggMoves[] = { MOVE_IRON_TAIL, MOVE_DRAGON_PULSE, MOVE_HARDEN), +#endif //P_FAMILY_AXEW +#if P_FAMILY_CUBCHOO egg_moves(CUBCHOO, MOVE_YAWN, MOVE_AVALANCHE, @@ -3479,7 +4187,9 @@ const u16 gEggMoves[] = { MOVE_SLEEP_TALK, MOVE_FOCUS_PUNCH, MOVE_PLAY_ROUGH), +#endif //P_FAMILY_CUBCHOO +#if P_FAMILY_SHELMET egg_moves(SHELMET, MOVE_ENDURE, MOVE_BATON_PASS, @@ -3492,7 +4202,9 @@ const u16 gEggMoves[] = { MOVE_FEINT, MOVE_PURSUIT, MOVE_TOXIC_SPIKES), +#endif //P_FAMILY_SHELMET +#if P_FAMILY_STUNFISK egg_moves(STUNFISK, MOVE_SHOCK_WAVE, MOVE_EARTH_POWER, @@ -3506,7 +4218,20 @@ const u16 gEggMoves[] = { MOVE_EERIE_IMPULSE, MOVE_REFLECT_TYPE, MOVE_ME_FIRST), +#if P_GALARIAN_FORMS + egg_moves(STUNFISK_GALARIAN, + MOVE_BIND, + MOVE_YAWN, + MOVE_ASTONISH, + MOVE_CURSE, + MOVE_SPITE, + MOVE_COUNTER, + MOVE_PAIN_SPLIT, + MOVE_REFLECT_TYPE), +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK +#if P_FAMILY_MIENFOO egg_moves(MIENFOO, MOVE_ENDURE, MOVE_VITAL_THROW, @@ -3517,7 +4242,9 @@ const u16 gEggMoves[] = { MOVE_ME_FIRST, MOVE_KNOCK_OFF, MOVE_ALLY_SWITCH), +#endif //P_FAMILY_MIENFOO +#if P_FAMILY_DRUDDIGON egg_moves(DRUDDIGON, MOVE_FIRE_FANG, MOVE_THUNDER_FANG, @@ -3530,7 +4257,9 @@ const u16 gEggMoves[] = { MOVE_METAL_CLAW, MOVE_GLARE, MOVE_SUCKER_PUNCH), +#endif //P_FAMILY_DRUDDIGON +#if P_FAMILY_PAWNIARD egg_moves(PAWNIARD, MOVE_REVENGE, MOVE_SUCKER_PUNCH, @@ -3540,7 +4269,9 @@ const u16 gEggMoves[] = { MOVE_PSYCHO_CUT, MOVE_MEAN_LOOK, MOVE_QUICK_GUARD), +#endif //P_FAMILY_PAWNIARD +#if P_FAMILY_BOUFFALANT egg_moves(BOUFFALANT, MOVE_STOMP, MOVE_ROCK_CLIMB, @@ -3552,7 +4283,9 @@ const u16 gEggMoves[] = { MOVE_AMNESIA, MOVE_BELCH, MOVE_COTTON_GUARD), +#endif //P_FAMILY_BOUFFALANT +#if P_FAMILY_VULLABY egg_moves(VULLABY, MOVE_STEEL_WING, MOVE_MEAN_LOOK, @@ -3561,7 +4294,9 @@ const u16 gEggMoves[] = { MOVE_KNOCK_OFF, MOVE_FAKE_TEARS, MOVE_FOUL_PLAY), +#endif //P_FAMILY_VULLABY +#if P_FAMILY_HEATMOR egg_moves(HEATMOR, MOVE_PURSUIT, MOVE_WRAP, @@ -3574,7 +4309,9 @@ const u16 gEggMoves[] = { MOVE_TICKLE, MOVE_SLEEP_TALK, MOVE_BELCH), +#endif //P_FAMILY_HEATMOR +#if P_FAMILY_DURANT egg_moves(DURANT, MOVE_SCREECH, MOVE_ENDURE, @@ -3582,7 +4319,9 @@ const u16 gEggMoves[] = { MOVE_BATON_PASS, MOVE_THUNDER_FANG, MOVE_FEINT_ATTACK), +#endif //P_FAMILY_DURANT +#if P_FAMILY_DEINO egg_moves(DEINO, MOVE_FIRE_FANG, MOVE_THUNDER_FANG, @@ -3595,7 +4334,9 @@ const u16 gEggMoves[] = { MOVE_ASSURANCE, MOVE_DARK_PULSE, MOVE_BELCH), +#endif //P_FAMILY_DEINO +#if P_FAMILY_LARVESTA egg_moves(LARVESTA, MOVE_STRING_SHOT, MOVE_HARDEN, @@ -3604,9 +4345,9 @@ const u16 gEggMoves[] = { MOVE_ZEN_HEADBUTT, MOVE_MORNING_SUN, MOVE_MAGNET_RISE), -#endif +#endif //P_FAMILY_LARVESTA -#if P_GEN_6_POKEMON == TRUE +#if P_FAMILY_CHESPIN egg_moves(CHESPIN, MOVE_SYNTHESIS, MOVE_BELLY_DRUM, @@ -3616,14 +4357,18 @@ const u16 gEggMoves[] = { MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_CHESPIN +#if P_FAMILY_FENNEKIN egg_moves(FENNEKIN, MOVE_WISH, MOVE_HYPNOSIS, MOVE_HEAT_WAVE, MOVE_MAGIC_COAT, MOVE_PSYCHIC_TERRAIN), +#endif //P_FAMILY_FENNEKIN +#if P_FAMILY_FROAKIE egg_moves(FROAKIE, MOVE_BESTOW, MOVE_MIND_READER, @@ -3632,41 +4377,55 @@ const u16 gEggMoves[] = { MOVE_CAMOUFLAGE, MOVE_WATER_SPORT, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_BUNNELBY egg_moves(BUNNELBY, MOVE_SPIKES, MOVE_DEFENSE_CURL, MOVE_ROLLOUT), +#endif //P_FAMILY_BUNNELBY +#if P_FAMILY_FLETCHLING egg_moves(FLETCHLING, MOVE_TAILWIND, MOVE_SNATCH, MOVE_QUICK_GUARD), +#endif //P_FAMILY_FLETCHLING +#if P_FAMILY_SCATTERBUG egg_moves(SCATTERBUG, MOVE_STUN_SPORE, MOVE_POISON_POWDER, MOVE_RAGE_POWDER), +#endif //P_FAMILY_SCATTERBUG +#if P_FAMILY_LITLEO egg_moves(LITLEO, MOVE_ENTRAINMENT, MOVE_YAWN, MOVE_SNATCH, MOVE_FIRE_SPIN, MOVE_FLARE_BLITZ), +#endif //P_FAMILY_LITLEO +#if P_FAMILY_FLABEBE egg_moves(FLABEBE, MOVE_COPYCAT, MOVE_CAPTIVATE, MOVE_CAMOUFLAGE, MOVE_TEARFUL_LOOK), +#endif //P_FAMILY_FLABEBE +#if P_FAMILY_SKIDDO egg_moves(SKIDDO, MOVE_DEFENSE_CURL, MOVE_ROLLOUT, MOVE_MILK_DRINK, MOVE_GRASSY_TERRAIN), +#endif //P_FAMILY_SKIDDO +#if P_FAMILY_PANCHAM egg_moves(PANCHAM, MOVE_QUASH, MOVE_ME_FIRST, @@ -3674,40 +4433,52 @@ const u16 gEggMoves[] = { MOVE_FOUL_PLAY, MOVE_STORM_THROW, MOVE_POWER_TRIP), +#endif //P_FAMILY_PANCHAM +#if P_FAMILY_FURFROU egg_moves(FURFROU, MOVE_ROLE_PLAY, MOVE_WORK_UP, MOVE_MIMIC, MOVE_CAPTIVATE, MOVE_REFRESH), +#endif //P_FAMILY_FURFROU +#if P_FAMILY_ESPURR egg_moves(ESPURR, MOVE_TRICK, MOVE_YAWN, MOVE_ASSIST, MOVE_BARRIER), +#endif //P_FAMILY_ESPURR +#if P_FAMILY_HONEDGE egg_moves(HONEDGE, MOVE_METAL_SOUND, MOVE_SHADOW_SNEAK, MOVE_DESTINY_BOND, MOVE_WIDE_GUARD), +#endif //P_FAMILY_HONEDGE +#if P_FAMILY_SPRITZEE egg_moves(SPRITZEE, MOVE_DISABLE, MOVE_WISH, MOVE_CAPTIVATE, MOVE_REFRESH, MOVE_NASTY_PLOT), +#endif //P_FAMILY_SPRITZEE +#if P_FAMILY_SWIRLIX egg_moves(SWIRLIX, MOVE_AFTER_YOU, MOVE_YAWN, MOVE_BELLY_DRUM, MOVE_COPYCAT, MOVE_STICKY_WEB), +#endif //P_FAMILY_SWIRLIX +#if P_FAMILY_INKAY egg_moves(INKAY, MOVE_SIMPLE_BEAM, MOVE_POWER_SPLIT, @@ -3715,33 +4486,43 @@ const u16 gEggMoves[] = { MOVE_FLATTER, MOVE_DESTINY_BOND, MOVE_GUARD_SWAP), +#endif //P_FAMILY_INKAY +#if P_FAMILY_BINACLE egg_moves(BINACLE, MOVE_TICKLE, MOVE_SWITCHEROO, MOVE_HELPING_HAND, MOVE_WATER_SPORT), +#endif //P_FAMILY_BINACLE +#if P_FAMILY_SKRELP egg_moves(SKRELP, MOVE_TOXIC_SPIKES, MOVE_PLAY_ROUGH, MOVE_HAZE, MOVE_ACID_ARMOR, MOVE_VENOM_DRENCH), +#endif //P_FAMILY_SKRELP +#if P_FAMILY_CLAUNCHER egg_moves(CLAUNCHER, MOVE_AQUA_JET, MOVE_ENTRAINMENT, MOVE_ENDURE, MOVE_CRABHAMMER, MOVE_HELPING_HAND), +#endif //P_FAMILY_CLAUNCHER +#if P_FAMILY_HELIOPTILE egg_moves(HELIOPTILE, MOVE_AGILITY, MOVE_GLARE, MOVE_CAMOUFLAGE, MOVE_ELECTRIC_TERRAIN), +#endif //P_FAMILY_HELIOPTILE +#if P_FAMILY_TYRUNT egg_moves(TYRUNT, MOVE_DRAGON_DANCE, MOVE_THUNDER_FANG, @@ -3750,14 +4531,18 @@ const u16 gEggMoves[] = { MOVE_ROCK_POLISH, MOVE_FIRE_FANG, MOVE_CURSE), +#endif //P_FAMILY_TYRUNT +#if P_FAMILY_AMAURA egg_moves(AMAURA, MOVE_HAZE, MOVE_BARRIER, MOVE_MIRROR_COAT, MOVE_MAGNET_RISE, MOVE_DISCHARGE), +#endif //P_FAMILY_AMAURA +#if P_FAMILY_HAWLUCHA egg_moves(HAWLUCHA, MOVE_AGILITY, MOVE_ME_FIRST, @@ -3767,14 +4552,18 @@ const u16 gEggMoves[] = { MOVE_BATON_PASS, MOVE_QUICK_GUARD, MOVE_FEINT), +#endif //P_FAMILY_HAWLUCHA +#if P_FAMILY_DEDENNE egg_moves(DEDENNE, MOVE_EERIE_IMPULSE, MOVE_COVET, MOVE_HELPING_HAND, MOVE_NATURAL_GIFT, MOVE_TEARFUL_LOOK), +#endif //P_FAMILY_DEDENNE +#if P_FAMILY_GOOMY egg_moves(GOOMY, MOVE_ACID_ARMOR, MOVE_CURSE, @@ -3782,40 +4571,50 @@ const u16 gEggMoves[] = { MOVE_POISON_TAIL, MOVE_COUNTER, MOVE_ENDURE), +#endif //P_FAMILY_GOOMY +#if P_FAMILY_KLEFKI egg_moves(KLEFKI, MOVE_SWITCHEROO, MOVE_THIEF, MOVE_LOCK_ON, MOVE_IRON_DEFENSE), +#endif //P_FAMILY_KLEFKI +#if P_FAMILY_PHANTUMP egg_moves(PHANTUMP, MOVE_GRUDGE, MOVE_BESTOW, MOVE_IMPRISON, MOVE_VENOM_DRENCH, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_PHANTUMP +#if P_FAMILY_PUMPKABOO egg_moves(PUMPKABOO, MOVE_DISABLE, MOVE_BESTOW, MOVE_DESTINY_BOND, MOVE_CURSE), +#endif //P_FAMILY_PUMPKABOO +#if P_FAMILY_BERGMITE egg_moves(BERGMITE, MOVE_RECOVER, MOVE_MIST, MOVE_BARRIER, MOVE_MIRROR_COAT), +#endif //P_FAMILY_BERGMITE +#if P_FAMILY_NOIBAT egg_moves(NOIBAT, MOVE_SWITCHEROO, MOVE_SNATCH, MOVE_OUTRAGE, MOVE_TAILWIND), -#endif +#endif //P_FAMILY_NOIBAT -#if P_GEN_7_POKEMON == TRUE +#if P_FAMILY_ROWLET egg_moves(ROWLET, MOVE_CURSE, MOVE_CONFUSE_RAY, @@ -3823,7 +4622,9 @@ const u16 gEggMoves[] = { MOVE_HAZE, MOVE_BATON_PASS, MOVE_DEFOG), +#endif //P_FAMILY_ROWLET +#if P_FAMILY_LITTEN egg_moves(LITTEN, MOVE_NASTY_PLOT, MOVE_BODY_SLAM, @@ -3832,7 +4633,9 @@ const u16 gEggMoves[] = { MOVE_REVENGE, MOVE_HEAT_WAVE, MOVE_POWER_TRIP), +#endif //P_FAMILY_LITTEN +#if P_FAMILY_POPPLIO egg_moves(POPPLIO, MOVE_CHARM, MOVE_AMNESIA, @@ -3840,39 +4643,51 @@ const u16 gEggMoves[] = { MOVE_AROMATIC_MIST, MOVE_PERISH_SONG, MOVE_WONDER_ROOM), +#endif //P_FAMILY_POPPLIO +#if P_FAMILY_PIKIPEK egg_moves(PIKIPEK, MOVE_BRAVE_BIRD, MOVE_BOOMBURST, MOVE_MIRROR_MOVE, MOVE_TAILWIND, MOVE_UPROAR), +#endif //P_FAMILY_PIKIPEK +#if P_FAMILY_YUNGOOS egg_moves(YUNGOOS, MOVE_REVENGE, MOVE_LAST_RESORT, MOVE_FIRE_FANG, MOVE_ICE_FANG, MOVE_THUNDER_FANG), +#endif //P_FAMILY_YUNGOOS +#if P_FAMILY_GRUBBIN egg_moves(GRUBBIN, MOVE_HARDEN, MOVE_ELECTROWEB, MOVE_MUD_SHOT, MOVE_ENDURE), +#endif //P_FAMILY_GRUBBIN +#if P_FAMILY_CRABRAWLER egg_moves(CRABRAWLER, MOVE_WIDE_GUARD, MOVE_SUPERPOWER, MOVE_ENDEAVOR, MOVE_AMNESIA), +#endif //P_FAMILY_CRABRAWLER +#if P_FAMILY_ORICORIO egg_moves(ORICORIO_BAILE, MOVE_PLUCK, MOVE_TAILWIND, MOVE_SAFEGUARD, MOVE_CAPTIVATE), +#endif //P_FAMILY_ORICORIO +#if P_FAMILY_CUTIEFLY egg_moves(CUTIEFLY, MOVE_BATON_PASS, MOVE_SKILL_SWAP, @@ -3881,62 +4696,80 @@ const u16 gEggMoves[] = { MOVE_MOONBLAST, MOVE_POWDER, MOVE_STICKY_WEB), +#endif //P_FAMILY_CUTIEFLY +#if P_FAMILY_ROCKRUFF egg_moves(ROCKRUFF, MOVE_CRUSH_CLAW, MOVE_FIRE_FANG, MOVE_THUNDER_FANG, MOVE_SUCKER_PUNCH, MOVE_THRASH), +#endif //P_FAMILY_ROCKRUFF +#if P_FAMILY_WISHIWASHI egg_moves(WISHIWASHI, MOVE_MUDDY_WATER, MOVE_MIST, MOVE_WATER_PULSE, MOVE_WATER_SPORT, MOVE_WHIRLPOOL), +#endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_MAREANIE egg_moves(MAREANIE, MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_SPIT_UP, MOVE_HAZE), +#endif //P_FAMILY_MAREANIE +#if P_FAMILY_MUDBRAY egg_moves(MUDBRAY, MOVE_BODY_SLAM, MOVE_DOUBLE_EDGE, MOVE_MAGNITUDE, MOVE_CLOSE_COMBAT, MOVE_MUD_BOMB), +#endif //P_FAMILY_MUDBRAY +#if P_FAMILY_DEWPIDER egg_moves(DEWPIDER, MOVE_POWER_SPLIT, MOVE_AURORA_BEAM, MOVE_STOCKPILE, MOVE_SPIT_UP, MOVE_STICKY_WEB), +#endif //P_FAMILY_DEWPIDER +#if P_FAMILY_FOMANTIS egg_moves(FOMANTIS, MOVE_WEATHER_BALL, MOVE_GIGA_DRAIN, MOVE_AROMATHERAPY, MOVE_DEFOG, MOVE_LEAF_STORM), +#endif //P_FAMILY_FOMANTIS +#if P_FAMILY_MORELULL egg_moves(MORELULL, MOVE_AMNESIA, MOVE_POISON_POWDER, MOVE_STUN_SPORE, MOVE_GROWTH, MOVE_LEECH_SEED), +#endif //P_FAMILY_MORELULL +#if P_FAMILY_SALANDIT egg_moves(SALANDIT, MOVE_BELCH, MOVE_KNOCK_OFF, MOVE_SAND_ATTACK, MOVE_SNATCH, MOVE_FAKE_OUT), +#endif //P_FAMILY_SALANDIT +#if P_FAMILY_STUFFUL egg_moves(STUFFUL, MOVE_ICE_PUNCH, MOVE_THUNDER_PUNCH, @@ -3945,7 +4778,9 @@ const u16 gEggMoves[] = { MOVE_WIDE_GUARD, MOVE_MEGA_KICK, MOVE_STOMPING_TANTRUM), +#endif //P_FAMILY_STUFFUL +#if P_FAMILY_BOUNSWEET egg_moves(BOUNSWEET, MOVE_GRASS_WHISTLE, MOVE_SYNTHESIS, @@ -3953,18 +4788,24 @@ const u16 gEggMoves[] = { MOVE_FEINT, MOVE_CHARM, MOVE_ACUPRESSURE), +#endif //P_FAMILY_BOUNSWEET +#if P_FAMILY_COMFEY egg_moves(COMFEY, MOVE_ENDURE, MOVE_AMNESIA, MOVE_AFTER_YOU, MOVE_LUCKY_CHANT), +#endif //P_FAMILY_COMFEY +#if P_FAMILY_ORANGURU egg_moves(ORANGURU, MOVE_EXTRASENSORY, MOVE_WONDER_ROOM, MOVE_PSYCHIC_TERRAIN), +#endif //P_FAMILY_ORANGURU +#if P_FAMILY_PASSIMIAN egg_moves(PASSIMIAN, MOVE_SEISMIC_TOSS, MOVE_VITAL_THROW, @@ -3972,14 +4813,18 @@ const u16 gEggMoves[] = { MOVE_IRON_HEAD, MOVE_QUICK_ATTACK, MOVE_FEINT), +#endif //P_FAMILY_PASSIMIAN +#if P_FAMILY_WIMPOD egg_moves(WIMPOD, MOVE_SPIKES, MOVE_METAL_CLAW, MOVE_WIDE_GUARD, MOVE_HARDEN, MOVE_AQUA_JET), +#endif //P_FAMILY_WIMPOD +#if P_FAMILY_SANDYGAST egg_moves(SANDYGAST, MOVE_AMNESIA, MOVE_DESTINY_BOND, @@ -3988,26 +4833,34 @@ const u16 gEggMoves[] = { MOVE_SWALLOW, MOVE_SPIT_UP, MOVE_CURSE), +#endif //P_FAMILY_SANDYGAST +#if P_FAMILY_PYUKUMUKU egg_moves(PYUKUMUKU, MOVE_ENDURE, MOVE_VENOM_DRENCH, MOVE_BESTOW, MOVE_TICKLE, MOVE_SPITE), +#endif //P_FAMILY_PYUKUMUKU +#if P_FAMILY_KOMALA egg_moves(KOMALA, MOVE_CHARM, MOVE_WISH, MOVE_PLAY_ROUGH, MOVE_SING), +#endif //P_FAMILY_KOMALA +#if P_FAMILY_TURTONATOR egg_moves(TURTONATOR, MOVE_WIDE_GUARD, MOVE_REVENGE, MOVE_HEAD_SMASH, MOVE_FIRE_SPIN), +#endif //P_FAMILY_TURTONATOR +#if P_FAMILY_TOGEDEMARU egg_moves(TOGEDEMARU, MOVE_REVERSAL, MOVE_PRESENT, @@ -4018,33 +4871,41 @@ const u16 gEggMoves[] = { MOVE_TICKLE, MOVE_FLAIL, MOVE_DISARMING_VOICE), +#endif //P_FAMILY_TOGEDEMARU +#if P_FAMILY_MIMIKYU egg_moves(MIMIKYU, MOVE_GRUDGE, MOVE_DESTINY_BOND, MOVE_CURSE, MOVE_NIGHTMARE), +#endif //P_FAMILY_MIMIKYU +#if P_FAMILY_BRUXISH egg_moves(BRUXISH, MOVE_WATER_PULSE, MOVE_POISON_FANG, MOVE_ICE_FANG, MOVE_RAGE), +#endif //P_FAMILY_BRUXISH +#if P_FAMILY_DRAMPA egg_moves(DRAMPA, MOVE_HURRICANE, MOVE_DRAGON_RUSH, MOVE_RAZOR_WIND, MOVE_MIST, MOVE_PLAY_ROUGH), +#endif //P_FAMILY_DRAMPA +#if P_FAMILY_JANGMO_O egg_moves(JANGMO_O, MOVE_COUNTER, MOVE_REVERSAL, MOVE_DRAGON_BREATH), -#endif +#endif //P_FAMILY_JANGMO_O -#if P_GEN_8_POKEMON == TRUE +#if P_FAMILY_GROOKEY egg_moves(GROOKEY, MOVE_GROWTH, MOVE_HAMMER_ARM, @@ -4053,13 +4914,17 @@ const u16 gEggMoves[] = { MOVE_NATURE_POWER, MOVE_WORRY_SEED, MOVE_LEECH_SEED), +#endif //P_FAMILY_GROOKEY +#if P_FAMILY_SCORBUNNY egg_moves(SCORBUNNY, MOVE_HIGH_JUMP_KICK, MOVE_SAND_ATTACK, MOVE_SUCKER_PUNCH, MOVE_SUPER_FANG), +#endif //P_FAMILY_SCORBUNNY +#if P_FAMILY_SOBBLE egg_moves(SOBBLE, MOVE_AQUA_JET, MOVE_DOUBLE_TEAM, @@ -4068,13 +4933,17 @@ const u16 gEggMoves[] = { MOVE_HAZE, MOVE_ICE_SHARD, MOVE_FELL_STINGER), +#endif //P_FAMILY_SOBBLE +#if P_FAMILY_SKWOVET egg_moves(SKWOVET, MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_LAST_RESORT, MOVE_BELLY_DRUM), +#endif //P_FAMILY_SKWOVET +#if P_FAMILY_ROOKIDEE egg_moves(ROOKIDEE, MOVE_SKY_ATTACK, MOVE_SAND_ATTACK, @@ -4083,19 +4952,25 @@ const u16 gEggMoves[] = { MOVE_ROCK_SMASH, MOVE_SPITE, MOVE_ROOST), +#endif //P_FAMILY_ROOKIDEE +#if P_FAMILY_BLIPBUG egg_moves(BLIPBUG, MOVE_INFESTATION, MOVE_SUPERSONIC, MOVE_STICKY_WEB, MOVE_RECOVER), +#endif //P_FAMILY_BLIPBUG +#if P_FAMILY_NICKIT egg_moves(NICKIT, MOVE_QUICK_GUARD, MOVE_KNOCK_OFF, MOVE_HOWL, MOVE_TORMENT), +#endif //P_FAMILY_NICKIT +#if P_FAMILY_GOSSIFLEUR egg_moves(GOSSIFLEUR, MOVE_GROWTH, MOVE_LEECH_SEED, @@ -4103,66 +4978,88 @@ const u16 gEggMoves[] = { MOVE_POISON_POWDER, MOVE_STUN_SPORE, MOVE_SLEEP_POWDER), +#endif //P_FAMILY_GOSSIFLEUR +#if P_FAMILY_WOOLOO egg_moves(WOOLOO, MOVE_STOMP, MOVE_SWAGGER, MOVE_COUNTER), +#endif //P_FAMILY_WOOLOO +#if P_FAMILY_CHEWTLE egg_moves(CHEWTLE, MOVE_SKULL_BASH, MOVE_GASTRO_ACID, MOVE_DRAGON_TAIL), +#endif //P_FAMILY_CHEWTLE +#if P_FAMILY_YAMPER egg_moves(YAMPER, MOVE_DOUBLE_EDGE, MOVE_SAND_ATTACK, MOVE_FLAME_CHARGE, MOVE_DISCHARGE, MOVE_HOWL), +#endif //P_FAMILY_YAMPER +#if P_FAMILY_ROLYCOLY egg_moves(ROLYCOLY, MOVE_EXPLOSION, MOVE_MUD_SLAP, MOVE_BLOCK), +#endif //P_FAMILY_ROLYCOLY +#if P_FAMILY_APPLIN egg_moves(APPLIN, MOVE_SUCKER_PUNCH, MOVE_ROLLOUT, MOVE_DEFENSE_CURL, MOVE_RECYCLE), +#endif //P_FAMILY_APPLIN +#if P_FAMILY_SILICOBRA egg_moves(SILICOBRA, MOVE_DRAGON_RUSH, MOVE_MUD_SLAP, MOVE_LAST_RESORT, MOVE_BELCH, MOVE_POISON_TAIL), +#endif //P_FAMILY_SILICOBRA +#if P_FAMILY_CRAMORANT egg_moves(CRAMORANT, MOVE_DEFOG, MOVE_AERIAL_ACE, MOVE_FEATHER_DANCE, MOVE_AQUA_RING, MOVE_ROOST), +#endif //P_FAMILY_CRAMORANT +#if P_FAMILY_ARROKUDA egg_moves(ARROKUDA, MOVE_THRASH, MOVE_ACUPRESSURE, MOVE_SLASH, MOVE_NIGHT_SLASH), +#endif //P_FAMILY_ARROKUDA +#if P_FAMILY_TOXEL egg_moves(TOXEL, MOVE_ENDEAVOR, MOVE_METAL_SOUND, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_TOXEL +#if P_FAMILY_SIZZLIPEDE egg_moves(SIZZLIPEDE, MOVE_KNOCK_OFF, MOVE_STRUGGLE_BUG, MOVE_ROLLOUT, MOVE_DEFENSE_CURL), +#endif //P_FAMILY_SIZZLIPEDE +#if P_FAMILY_CLOBBOPUS egg_moves(CLOBBOPUS, MOVE_PAIN_SPLIT, MOVE_SOAK, @@ -4170,30 +5067,42 @@ const u16 gEggMoves[] = { MOVE_CIRCLE_THROW, MOVE_SEISMIC_TOSS, MOVE_POWER_UP_PUNCH), +#endif //P_FAMILY_CLOBBOPUS +#if P_FAMILY_HATENNA egg_moves(HATENNA, MOVE_AROMATIC_MIST, MOVE_NUZZLE, MOVE_AFTER_YOU, MOVE_QUASH), +#endif //P_FAMILY_HATENNA +#if P_FAMILY_MILCERY egg_moves(MILCERY, MOVE_BABY_DOLL_EYES, MOVE_LAST_RESORT), +#endif //P_FAMILY_MILCERY +#if P_FAMILY_PINCURCHIN egg_moves(PINCURCHIN, MOVE_MEMENTO, MOVE_SUCKER_PUNCH), +#endif //P_FAMILY_PINCURCHIN +#if P_FAMILY_SNOM egg_moves(SNOM, MOVE_FAIRY_WIND, MOVE_MIRROR_COAT, MOVE_BUG_BITE), +#endif //P_FAMILY_SNOM +#if P_FAMILY_STONJOURNER egg_moves(STONJOURNER, MOVE_CURSE, MOVE_ANCIENT_POWER), +#endif //P_FAMILY_STONJOURNER +#if P_FAMILY_EISCUE egg_moves(EISCUE, MOVE_SOAK, MOVE_AQUA_RING, @@ -4201,12 +5110,22 @@ const u16 gEggMoves[] = { MOVE_DOUBLE_EDGE, MOVE_ICICLE_CRASH, MOVE_HEAD_SMASH), +#endif //P_FAMILY_EISCUE +#if P_FAMILY_INDEEDEE egg_moves(INDEEDEE, MOVE_PSYCH_UP, MOVE_FAKE_OUT, MOVE_EXTRASENSORY), + egg_moves(INDEEDEE_FEMALE, + MOVE_PSYCH_UP, + MOVE_FAKE_OUT, + MOVE_PSYCHO_SHIFT, + MOVE_HEAL_PULSE), +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO egg_moves(MORPEKO, MOVE_SWAGGER, MOVE_SUPER_FANG, @@ -4216,7 +5135,9 @@ const u16 gEggMoves[] = { MOVE_QUASH, MOVE_PARTING_SHOT, MOVE_FAKE_OUT), +#endif //P_FAMILY_MORPEKO +#if P_FAMILY_CUFANT egg_moves(CUFANT, MOVE_DOUBLE_EDGE, MOVE_BELCH, @@ -4226,12 +5147,16 @@ const u16 gEggMoves[] = { MOVE_SWAGGER, MOVE_WHIRLWIND, MOVE_DEFENSE_CURL), +#endif //P_FAMILY_CUFANT +#if P_FAMILY_DURALUDON egg_moves(DURALUDON, MOVE_SLASH, MOVE_NIGHT_SLASH, MOVE_MIRROR_COAT), +#endif //P_FAMILY_DURALUDON +#if P_FAMILY_DREEPY egg_moves(DREEPY, MOVE_CURSE, MOVE_GRUDGE, @@ -4240,259 +5165,65 @@ const u16 gEggMoves[] = { MOVE_DISABLE, MOVE_DRAGON_TAIL, MOVE_SUCKER_PUNCH), -#endif +#endif //P_FAMILY_DREEPY - egg_moves(RATTATA_ALOLAN, - MOVE_COUNTER, - MOVE_FINAL_GAMBIT, - MOVE_FURY_SWIPES, - MOVE_ME_FIRST, - MOVE_REVENGE, - MOVE_REVERSAL, - MOVE_SNATCH, - MOVE_STOCKPILE, - MOVE_SWALLOW, - MOVE_SWITCHEROO, - MOVE_UPROAR), - - egg_moves(SANDSHREW_ALOLAN, - MOVE_AMNESIA, - MOVE_CHIP_AWAY, - MOVE_COUNTER, - MOVE_CRUSH_CLAW, - MOVE_CURSE, - MOVE_ENDURE, - MOVE_FLAIL, - MOVE_HONE_CLAWS, - MOVE_ICICLE_CRASH, - MOVE_ICICLE_SPEAR, - MOVE_METAL_CLAW, - MOVE_NIGHT_SLASH), - - egg_moves(VULPIX_ALOLAN, - MOVE_AGILITY, - MOVE_CHARM, - MOVE_DISABLE, - MOVE_ENCORE, - MOVE_EXTRASENSORY, - MOVE_FLAIL, - MOVE_FREEZE_DRY, - MOVE_HOWL, - MOVE_HYPNOSIS, - MOVE_MOONBLAST, - MOVE_POWER_SWAP, - MOVE_SPITE, - MOVE_SECRET_POWER, - MOVE_TAIL_SLAP), - - egg_moves(DIGLETT_ALOLAN, - MOVE_ANCIENT_POWER, - MOVE_BEAT_UP, - MOVE_ENDURE, - MOVE_FEINT_ATTACK, - MOVE_FINAL_GAMBIT, - MOVE_HEADBUTT, - MOVE_MEMENTO, - MOVE_METAL_SOUND, - MOVE_PURSUIT, - MOVE_REVERSAL, - MOVE_THRASH), - - egg_moves(MEOWTH_ALOLAN, - MOVE_AMNESIA, - MOVE_ASSIST, - MOVE_CHARM, - MOVE_COVET, - MOVE_FLAIL, - MOVE_FLATTER, - MOVE_FOUL_PLAY, - MOVE_HYPNOSIS, - MOVE_PARTING_SHOT, - MOVE_PUNISHMENT, - MOVE_SNATCH, - MOVE_SPITE), - - egg_moves(GEODUDE_ALOLAN, - MOVE_AUTOTOMIZE, - MOVE_BLOCK, - MOVE_COUNTER, - MOVE_CURSE, - MOVE_ENDURE, - MOVE_FLAIL, - MOVE_MAGNET_RISE, - MOVE_ROCK_CLIMB, - MOVE_SCREECH, - MOVE_WIDE_GUARD), - - egg_moves(GRIMER_ALOLAN, - MOVE_ASSURANCE, - MOVE_CLEAR_SMOG, - MOVE_CURSE, - MOVE_IMPRISON, - MOVE_MEAN_LOOK, - MOVE_POWER_UP_PUNCH, - MOVE_PURSUIT, - MOVE_SCARY_FACE, - MOVE_SHADOW_SNEAK, - MOVE_SPITE, - MOVE_SPIT_UP, - MOVE_STOCKPILE, - MOVE_SWALLOW), - - egg_moves(MEOWTH_GALARIAN, - MOVE_SPITE, - MOVE_DOUBLE_EDGE, - MOVE_CURSE, - MOVE_FLAIL, - MOVE_NIGHT_SLASH, - MOVE_COVET), - - egg_moves(PONYTA_GALARIAN, - MOVE_THRASH, - MOVE_DOUBLE_KICK, - MOVE_HYPNOSIS, - MOVE_DOUBLE_EDGE, - MOVE_HORN_DRILL, - MOVE_MORNING_SUN), - - egg_moves(SLOWPOKE_GALARIAN, - MOVE_BELCH, - MOVE_BELLY_DRUM, - MOVE_BLOCK, - MOVE_STOMP), - - egg_moves(FARFETCHD_GALARIAN, - MOVE_COUNTER, - MOVE_QUICK_ATTACK, - MOVE_FLAIL, - MOVE_QUICK_GUARD, - MOVE_CURSE, - MOVE_COVET, - MOVE_NIGHT_SLASH, - MOVE_SIMPLE_BEAM, - MOVE_DOUBLE_EDGE, - MOVE_FEINT, - MOVE_SKY_ATTACK), - - egg_moves(MR_MIME_GALARIAN, - MOVE_FAKE_OUT, - MOVE_CONFUSE_RAY, - MOVE_POWER_SPLIT, - MOVE_TICKLE), - - egg_moves(CORSOLA_GALARIAN, - MOVE_HAZE, - MOVE_CONFUSE_RAY, - MOVE_NATURE_POWER, - MOVE_DESTINY_BOND, - MOVE_WATER_PULSE, - MOVE_HEAD_SMASH), - - egg_moves(ZIGZAGOON_GALARIAN, - MOVE_PARTING_SHOT, - MOVE_QUICK_GUARD, - MOVE_KNOCK_OFF), - -#if P_GEN_5_POKEMON == TRUE - egg_moves(DARUMAKA_GALARIAN, - MOVE_FOCUS_PUNCH, - MOVE_HAMMER_ARM, - MOVE_TAKE_DOWN, - MOVE_FLAME_WHEEL, - MOVE_YAWN, - MOVE_FREEZE_DRY, - MOVE_INCINERATE, - MOVE_POWER_UP_PUNCH), - - egg_moves(YAMASK_GALARIAN, - MOVE_MEMENTO), - - egg_moves(STUNFISK_GALARIAN, - MOVE_BIND, - MOVE_YAWN, - MOVE_ASTONISH, - MOVE_CURSE, - MOVE_SPITE, - MOVE_COUNTER, - MOVE_PAIN_SPLIT, - 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 +#if P_FAMILY_SPRIGATITO egg_moves(SPRIGATITO, MOVE_ALLY_SWITCH, MOVE_COPYCAT, MOVE_LEECH_SEED, MOVE_PETAL_BLIZZARD, MOVE_SUCKER_PUNCH), +#endif //P_FAMILY_SPRIGATITO +#if P_FAMILY_FUECOCO egg_moves(FUECOCO, MOVE_BELCH, MOVE_CURSE, MOVE_ENCORE, MOVE_SLACK_OFF), +#endif //P_FAMILY_FUECOCO +#if P_FAMILY_QUAXLY egg_moves(QUAXLY, MOVE_DETECT, MOVE_LAST_RESORT, MOVE_RAPID_SPIN, MOVE_ROOST), +#endif //P_FAMILY_QUAXLY +#if P_FAMILY_LECHONK egg_moves(LECHONK, MOVE_ENDEAVOR, MOVE_SPIT_UP, MOVE_STOCKPILE, MOVE_STUFF_CHEEKS, MOVE_SWALLOW), +#endif //P_FAMILY_LECHONK +#if P_FAMILY_TAROUNTULA egg_moves(TAROUNTULA, MOVE_FIRST_IMPRESSION, MOVE_LUNGE, MOVE_MEMENTO, MOVE_SUCKER_PUNCH), +#endif //P_FAMILY_TAROUNTULA +#if P_FAMILY_NYMBLE egg_moves(NYMBLE, MOVE_COUNTER, MOVE_SKITTER_SMACK), +#endif //P_FAMILY_NYMBLE +#if P_FAMILY_PAWMI egg_moves(PAWMI, MOVE_FAKE_OUT, MOVE_MACH_PUNCH, MOVE_SWEET_KISS, MOVE_WISH), +#endif //P_FAMILY_PAWMI +#if P_FAMILY_TANDEMAUS egg_moves(TANDEMAUS, MOVE_AFTER_YOU, MOVE_BATON_PASS, @@ -4500,42 +5231,56 @@ const u16 gEggMoves[] = { MOVE_FEINT, MOVE_SWITCHEROO, MOVE_TICKLE), +#endif //P_FAMILY_TANDEMAUS +#if P_FAMILY_FIDOUGH egg_moves(FIDOUGH, MOVE_COPYCAT, MOVE_HOWL, MOVE_SWEET_SCENT, MOVE_WISH, MOVE_YAWN), +#endif //P_FAMILY_FIDOUGH +#if P_FAMILY_SMOLIV egg_moves(SMOLIV, MOVE_MEMENTO, MOVE_STRENGTH_SAP, MOVE_SYNTHESIS, MOVE_WEATHER_BALL), +#endif //P_FAMILY_SMOLIV +#if P_FAMILY_SQUAWKABILLY egg_moves(SQUAWKABILLY, MOVE_DOUBLE_EDGE, MOVE_FINAL_GAMBIT, MOVE_FLATTER, MOVE_PARTING_SHOT), +#endif //P_FAMILY_SQUAWKABILLY +#if P_FAMILY_NACLI egg_moves(NACLI, MOVE_ANCIENT_POWER, MOVE_CURSE, MOVE_FISSURE, MOVE_POWER_GEM), +#endif //P_FAMILY_NACLI +#if P_FAMILY_CHARCADET egg_moves(CHARCADET, MOVE_DESTINY_BOND, MOVE_DISABLE, MOVE_SPITE), +#endif //P_FAMILY_CHARCADET +#if P_FAMILY_TADBULB egg_moves(TADBULB, MOVE_MUDDY_WATER, MOVE_PARABOLIC_CHARGE, MOVE_SOAK), +#endif //P_FAMILY_TADBULB +#if P_FAMILY_WATTREL egg_moves(WATTREL, MOVE_ENDEAVOR, MOVE_FEATHER_DANCE, @@ -4543,13 +5288,17 @@ const u16 gEggMoves[] = { MOVE_STOCKPILE, MOVE_SWALLOW, MOVE_WEATHER_BALL), +#endif //P_FAMILY_WATTREL +#if P_FAMILY_MASCHIFF egg_moves(MASCHIFF, MOVE_DESTINY_BOND, MOVE_ENDEAVOR, MOVE_PLAY_ROUGH, MOVE_RETALIATE), +#endif //P_FAMILY_MASCHIFF +#if P_FAMILY_SHROODLE egg_moves(SHROODLE, MOVE_COPYCAT, MOVE_CROSS_POISON, @@ -4557,14 +5306,18 @@ const u16 gEggMoves[] = { MOVE_SUPER_FANG, MOVE_SWAGGER, MOVE_TOXIC), +#endif //P_FAMILY_SHROODLE +#if P_FAMILY_BRAMBLIN egg_moves(BRAMBLIN, MOVE_BEAT_UP, MOVE_BLOCK, MOVE_LEECH_SEED, MOVE_SHADOW_SNEAK, MOVE_STRENGTH_SAP), +#endif //P_FAMILY_BRAMBLIN +#if P_FAMILY_TOEDSCOOL egg_moves(TOEDSCOOL, MOVE_ACUPRESSURE, MOVE_KNOCK_OFF, @@ -4574,77 +5327,103 @@ const u16 gEggMoves[] = { MOVE_RAPID_SPIN, MOVE_TICKLE, MOVE_TOXIC), +#endif //P_FAMILY_TOEDSCOOL +#if P_FAMILY_KLAWF egg_moves(KLAWF, MOVE_ANCIENT_POWER, MOVE_CRABHAMMER, MOVE_ENDEAVOR, MOVE_KNOCK_OFF), +#endif //P_FAMILY_KLAWF +#if P_FAMILY_CAPSAKID egg_moves(CAPSAKID, MOVE_INGRAIN, MOVE_LEECH_SEED, MOVE_RAGE_POWDER, MOVE_ROLLOUT, MOVE_WORRY_SEED), +#endif //P_FAMILY_CAPSAKID +#if P_FAMILY_RELLOR egg_moves(RELLOR, MOVE_COSMIC_POWER, MOVE_MEMENTO, MOVE_RECOVER, MOVE_WEATHER_BALL), +#endif //P_FAMILY_RELLOR +#if P_FAMILY_FLITTLE egg_moves(FLITTLE, MOVE_ALLY_SWITCH, MOVE_HYPNOSIS, MOVE_ROOST), +#endif //P_FAMILY_FLITTLE +#if P_FAMILY_TINKATINK egg_moves(TINKATINK, MOVE_FEINT, MOVE_ICE_HAMMER, MOVE_QUASH), +#endif //P_FAMILY_TINKATINK +#if P_FAMILY_WIGLETT egg_moves(WIGLETT, MOVE_FINAL_GAMBIT, MOVE_MEMENTO), +#endif //P_FAMILY_WIGLETT +#if P_FAMILY_BOMBIRDIER egg_moves(BOMBIRDIER, MOVE_FEATHER_DANCE, MOVE_POWER_TRIP, MOVE_ROOST, MOVE_SKY_ATTACK, MOVE_SUCKER_PUNCH), +#endif //P_FAMILY_BOMBIRDIER +#if P_FAMILY_FINIZEN egg_moves(FINIZEN, MOVE_BOOMBURST, MOVE_BOUNCE, MOVE_COUNTER, MOVE_HAZE, MOVE_TICKLE), +#endif //P_FAMILY_FINIZEN +#if P_FAMILY_VAROOM egg_moves(VAROOM, MOVE_HAZE, MOVE_PARTING_SHOT, MOVE_SELF_DESTRUCT, MOVE_TORMENT, MOVE_TOXIC), +#endif //P_FAMILY_VAROOM +#if P_FAMILY_CYCLIZAR egg_moves(CYCLIZAR, MOVE_AQUA_TAIL, MOVE_IRON_TAIL, MOVE_KNOCK_OFF, MOVE_POWER_WHIP), +#endif //P_FAMILY_CYCLIZAR +#if P_FAMILY_ORTHWORM egg_moves(ORTHWORM, MOVE_COIL, MOVE_CURSE, MOVE_METAL_BURST), +#endif //P_FAMILY_ORTHWORM +#if P_FAMILY_GLIMMET egg_moves(GLIMMET, MOVE_EXPLOSION, MOVE_MEMENTO, MOVE_TOXIC), +#endif //P_FAMILY_GLIMMET +#if P_FAMILY_GREAVARD egg_moves(GREAVARD, MOVE_ALLY_SWITCH, MOVE_DESTINY_BOND, @@ -4653,41 +5432,53 @@ const u16 gEggMoves[] = { MOVE_MEMENTO, MOVE_SHADOW_SNEAK, MOVE_YAWN), +#endif //P_FAMILY_GREAVARD +#if P_FAMILY_FLAMIGO egg_moves(FLAMIGO, MOVE_DOUBLE_TEAM, MOVE_QUICK_GUARD, MOVE_SKY_ATTACK), +#endif //P_FAMILY_FLAMIGO +#if P_FAMILY_CETODDLE egg_moves(CETODDLE, MOVE_BELLY_DRUM, MOVE_ENTRAINMENT, MOVE_ICICLE_CRASH, MOVE_SUPERPOWER, MOVE_YAWN), +#endif //P_FAMILY_CETODDLE +#if P_FAMILY_VELUZA egg_moves(VELUZA, MOVE_RECOVER, MOVE_THRASH), +#endif //P_FAMILY_VELUZA +#if P_FAMILY_DONDOZO egg_moves(DONDOZO, MOVE_CURSE, MOVE_FISSURE, MOVE_THRASH, MOVE_YAWN), +#endif //P_FAMILY_DONDOZO +#if P_FAMILY_TATSUGIRI egg_moves(TATSUGIRI, MOVE_BATON_PASS, MOVE_COUNTER, MOVE_RAPID_SPIN), +#endif //P_FAMILY_TATSUGIRI +#if P_FAMILY_FRIGIBAX egg_moves(FRIGIBAX, MOVE_AQUA_TAIL, MOVE_DRAGON_RUSH, MOVE_FREEZE_DRY, MOVE_ICICLE_SPEAR), - -#endif +#endif //P_FAMILY_FRIGIBAX EGG_MOVES_TERMINATOR }; + diff --git a/src/data/pokemon/evolution.h b/src/data/pokemon/evolution.h deleted file mode 100644 index 43c08fcfa9..0000000000 --- a/src/data/pokemon/evolution.h +++ /dev/null @@ -1,680 +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}}, -#if P_GEN_9_POKEMON == TRUE - [SPECIES_PRIMEAPE] = {{EVO_MOVE, MOVE_RAGE_FIST, SPECIES_ANNIHILAPE}}, -#endif - [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_9_POKEMON == TRUE - [SPECIES_WOOPER_PALDEAN] = {{EVO_LEVEL, 20, SPECIES_CLODSIRE}}, -#endif -#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 -#if P_GEN_9_POKEMON == TRUE - [SPECIES_GIRAFARIG] = {{EVO_MOVE, MOVE_TWIN_BEAM, SPECIES_FARIGIRAF}}, -#endif - [SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}}, -#if P_GEN_9_POKEMON == TRUE - [SPECIES_DUNSPARCE] = {{EVO_MOVE_TWO_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_TWO_SEGMENT}, - {EVO_MOVE_THREE_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_THREE_SEGMENT}}, -#endif -#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}}, -#if P_GEN_8_POKEMON == TRUE - [SPECIES_URSARING] = {{EVO_ITEM_NIGHT, ITEM_PEAT_BLOCK, SPECIES_URSALUNA}}, -#endif - [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 -#if P_GEN_8_POKEMON == TRUE - [SPECIES_STANTLER] = {{EVO_MOVE, MOVE_PSYSHIELD_BASH, SPECIES_WYRDEER}}, -#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}}, -#if P_GEN_9_POKEMON == TRUE - [SPECIES_BASCULIN_WHITE_STRIPED] = {{EVO_NONE, 0, SPECIES_BASCULEGION_MALE}, - {EVO_NONE, 0, SPECIES_BASCULEGION_FEMALE}}, -#endif - [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}}, -#if P_GEN_9_POKEMON == TRUE - [SPECIES_BISHARP] = {{EVO_NONE, 0, SPECIES_KINGAMBIT}}, -#endif - [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}, - {EVO_ITEM, ITEM_SYRUPY_APPLE, SPECIES_DIPPLIN}}, - [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 -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = {{EVO_LEVEL, 16, SPECIES_FLORAGATO}}, - [SPECIES_FLORAGATO] = {{EVO_LEVEL, 36, SPECIES_MEOWSCARADA}}, - [SPECIES_FUECOCO] = {{EVO_LEVEL, 16, SPECIES_CROCALOR}}, - [SPECIES_CROCALOR] = {{EVO_LEVEL, 36, SPECIES_SKELEDIRGE}}, - [SPECIES_QUAXLY] = {{EVO_LEVEL, 16, SPECIES_QUAXWELL}}, - [SPECIES_QUAXWELL] = {{EVO_LEVEL, 36, SPECIES_QUAQUAVAL}}, - [SPECIES_LECHONK] = {{EVO_LEVEL_MALE, 18, SPECIES_OINKOLOGNE_MALE}, - {EVO_LEVEL_FEMALE, 18, SPECIES_OINKOLOGNE_FEMALE}}, - [SPECIES_TAROUNTULA] = {{EVO_LEVEL, 15, SPECIES_SPIDOPS}}, - [SPECIES_NYMBLE] = {{EVO_LEVEL, 24, SPECIES_LOKIX}}, - [SPECIES_PAWMI] = {{EVO_LEVEL, 18, SPECIES_PAWMO}}, - [SPECIES_PAWMO] = {{EVO_NONE, 0, SPECIES_PAWMOT}}, - [SPECIES_TANDEMAUS] = {{EVO_LEVEL_FAMILY_OF_FOUR, 25, SPECIES_MAUSHOLD_FAMILY_OF_FOUR}, - {EVO_LEVEL_FAMILY_OF_THREE, 25, SPECIES_MAUSHOLD_FAMILY_OF_THREE}}, - [SPECIES_FIDOUGH] = {{EVO_LEVEL, 26, SPECIES_DACHSBUN}}, - [SPECIES_SMOLIV] = {{EVO_LEVEL, 25, SPECIES_DOLLIV}}, - [SPECIES_DOLLIV] = {{EVO_LEVEL, 35, SPECIES_ARBOLIVA}}, - [SPECIES_NACLI] = {{EVO_LEVEL, 24, SPECIES_NACLSTACK}}, - [SPECIES_NACLSTACK] = {{EVO_LEVEL, 38, SPECIES_GARGANACL}}, - [SPECIES_CHARCADET] = {{EVO_ITEM, ITEM_AUSPICIOUS_ARMOR, SPECIES_ARMAROUGE}, - {EVO_ITEM, ITEM_MALICIOUS_ARMOR, SPECIES_CERULEDGE}}, - [SPECIES_TADBULB] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_BELLIBOLT}}, - [SPECIES_WATTREL] = {{EVO_LEVEL, 25, SPECIES_KILOWATTREL}}, - [SPECIES_MASCHIFF] = {{EVO_LEVEL, 30, SPECIES_MABOSSTIFF}}, - [SPECIES_SHROODLE] = {{EVO_LEVEL, 28, SPECIES_GRAFAIAI}}, - [SPECIES_BRAMBLIN] = {{EVO_NONE, 0, SPECIES_BRAMBLEGHAST}}, - [SPECIES_TOEDSCOOL] = {{EVO_LEVEL, 30, SPECIES_TOEDSCRUEL}}, - [SPECIES_CAPSAKID] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SCOVILLAIN}}, - [SPECIES_RELLOR] = {{EVO_NONE, 0, SPECIES_RABSCA}}, - [SPECIES_FLITTLE] = {{EVO_LEVEL, 35, SPECIES_ESPATHRA}}, - [SPECIES_TINKATINK] = {{EVO_LEVEL, 24, SPECIES_TINKATUFF}}, - [SPECIES_TINKATUFF] = {{EVO_LEVEL, 38, SPECIES_TINKATON}}, - [SPECIES_WIGLETT] = {{EVO_LEVEL, 26, SPECIES_WUGTRIO}}, - [SPECIES_FINIZEN] = {{EVO_LEVEL, 38, SPECIES_PALAFIN_ZERO}}, - [SPECIES_VAROOM] = {{EVO_LEVEL, 40, SPECIES_REVAVROOM}}, - [SPECIES_GLIMMET] = {{EVO_LEVEL, 35, SPECIES_GLIMMORA}}, - [SPECIES_GREAVARD] = {{EVO_LEVEL_NIGHT, 30, SPECIES_HOUNDSTONE}}, - [SPECIES_CETODDLE] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_CETITAN}}, - [SPECIES_FRIGIBAX] = {{EVO_LEVEL, 35, SPECIES_ARCTIBAX}}, - [SPECIES_ARCTIBAX] = {{EVO_LEVEL, 54, SPECIES_BAXCALIBUR}}, - [SPECIES_GIMMIGHOUL_CHEST] = {{EVO_NONE, 0, SPECIES_GHOLDENGO}}, - [SPECIES_GIMMIGHOUL_ROAMING] = {{EVO_NONE, 0, SPECIES_GHOLDENGO}}, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = {{EVO_ITEM, ITEM_UNREMARKABLE_TEACUP, SPECIES_SINISTCHA_UNREMARKABLE}}, - [SPECIES_POLTCHAGEIST_ARTISAN] = {{EVO_ITEM, ITEM_MASTERPIECE_TEACUP, SPECIES_SINISTCHA_MASTERPIECE}}, -#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, 0, 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_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 42be2a904f..282ea29d3a 100644 --- a/src/data/pokemon/form_change_table_pointers.h +++ b/src/data/pokemon/form_change_table_pointers.h @@ -1,377 +1,34 @@ -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_ROTOM] = sRotomFormChangeTable, - [SPECIES_ROTOM_HEAT] = sRotomFormChangeTable, - [SPECIES_ROTOM_WASH] = sRotomFormChangeTable, - [SPECIES_ROTOM_FROST] = sRotomFormChangeTable, - [SPECIES_ROTOM_FAN] = sRotomFormChangeTable, - [SPECIES_ROTOM_MOW] = sRotomFormChangeTable, - [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] = sZygardeFormChangeTable, - [SPECIES_ZYGARDE_10] = sZygarde10FormChangeTable, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sZygardePowerConstructFormChangeTable, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sZygarde10PowerConstructFormChangeTable, - [SPECIES_ZYGARDE_COMPLETE] = sZygardeCompleteFormChangeTable, - [SPECIES_DIANCIE] = sDiancieFormChangeTable, - [SPECIES_DIANCIE_MEGA] = sDiancieFormChangeTable, - [SPECIES_HOOPA_CONFINED] = sHoopaFormChangeTable, - [SPECIES_HOOPA_UNBOUND] = sHoopaFormChangeTable, -#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, -#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_STRAWBERRY_VANILLA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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, -#endif -#if P_GEN_9_POKEMON == TRUE - [SPECIES_PALAFIN_ZERO] = sPalafinZeroFormChangeTable, - [SPECIES_PALAFIN_HERO] = sPalafinZeroFormChangeTable, - [SPECIES_OGERPON_TEAL_MASK] = sOgerponFormChangeTable, - [SPECIES_OGERPON_WELLSPRING_MASK] = sOgerponFormChangeTable, - [SPECIES_OGERPON_HEARTHFLAME_MASK] = sOgerponFormChangeTable, - [SPECIES_OGERPON_CORNERSTONE_MASK] = sOgerponFormChangeTable, - [SPECIES_OGERPON_TEAL_MASK_TERA] = sOgerponFormChangeTable, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = sOgerponFormChangeTable, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = sOgerponFormChangeTable, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = sOgerponFormChangeTable, -#endif +#if P_FAMILY_KYUREM + [SPECIES_KYUREM] = sKyuremFusionTable, +#if P_FAMILY_RESHIRAM + [SPECIES_KYUREM_WHITE] = sKyuremFusionTable, + [SPECIES_RESHIRAM] = sKyuremFusionTable, +#endif //P_FAMILY_RESHIRAM +#if P_FAMILY_ZEKROM + [SPECIES_KYUREM_BLACK] = sKyuremFusionTable, + [SPECIES_ZEKROM] = sKyuremFusionTable, +#endif //P_FAMILY_ZEKROM +#endif //P_FAMILY_KYUREM +#if P_FAMILY_NECROZMA + [SPECIES_NECROZMA] = sNecrozmaFusionTable, +#if P_FAMILY_COSMOG + [SPECIES_NECROZMA_DAWN_WINGS] = sNecrozmaFusionTable, + [SPECIES_SOLGALEO] = sNecrozmaFusionTable, + [SPECIES_NECROZMA_DUSK_MANE] = sNecrozmaFusionTable, + [SPECIES_LUNALA] = sNecrozmaFusionTable, +#endif //P_FAMILY_COSMOG +#endif //P_FAMILY_NECROZMA +#if P_FAMILY_CALYREX + [SPECIES_CALYREX] = sCalyrexFusionTable, +#if P_FAMILY_SPECTRIER + [SPECIES_CALYREX_SHADOW_RIDER] = sCalyrexFusionTable, + [SPECIES_SPECTRIER] = sCalyrexFusionTable, +#endif //P_FAMILY_SPECTRIER +#if P_FAMILY_GLASTRIER + [SPECIES_CALYREX_ICE_RIDER] = sCalyrexFusionTable, + [SPECIES_GLASTRIER] = sCalyrexFusionTable, +#endif //P_FAMILY_GLASTRIER +#endif //P_FAMILY_CALYREX }; diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index ccb736bba8..2411783728 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}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sManectricFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MANECTRIC_MEGA, ITEM_MANECTITE}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sCameruptFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CAMERUPT_MEGA, ITEM_CAMERUPTITE}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sGlalieFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GLALIE_MEGA, ITEM_GLALITITE}, - {FORM_CHANGE_TERMINATOR}, -}; - +#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 +#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 + +#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 +#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 + +#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 + +#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,80 @@ 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_DEOXYS +static const struct FormChange sDeoxysNormalFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_ATTACK, ITEM_METEORITE}, + {FORM_CHANGE_TERMINATOR}, +}; + +static const struct FormChange sDeoxysAttackFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_DEFENSE, ITEM_METEORITE}, + {FORM_CHANGE_TERMINATOR}, +}; + +static const struct FormChange sDeoxysDefenseFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_SPEED, ITEM_METEORITE}, + {FORM_CHANGE_TERMINATOR}, +}; + +static const struct FormChange sDeoxysSpeedFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_NORMAL, ITEM_METEORITE}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_DEOXYS + +#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 +419,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,32 +437,37 @@ 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}, - {FORM_CHANGE_TERMINATOR}, -}; - +#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}, @@ -292,19 +477,25 @@ static const struct FormChange sRotomFormChangeTable[] = { {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 @@ -313,14 +504,19 @@ 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_TIME_OF_DAY, SPECIES_SHAYMIN_LAND, NIGHT}, + {FORM_CHANGE_STATUS, SPECIES_SHAYMIN_LAND, (STATUS1_FREEZE | STATUS1_FROSTBITE)}, {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}, @@ -359,14 +555,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}, @@ -375,6 +573,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}, @@ -382,37 +581,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_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}, @@ -421,51 +649,57 @@ 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 -static const struct FormChange sZygardeFormChangeTable[] = { - {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10, ITEM_ZYGARDE_CUBE, 0}, +#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 sZygarde10FormChangeTable[] = { - {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE, ITEM_ZYGARDE_CUBE, 0}, +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 sZygardePowerConstructFormChangeTable[] = { +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, ITEM_ZYGARDE_CUBE, 1}, - {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50}, + {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, ITEM_ZYGARDE_CUBE, 1}, - {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50}, + {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}, }; @@ -474,20 +708,24 @@ static const struct FormChange sZygardeCompleteFormChangeTable[] = { {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}, @@ -495,6 +733,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}, @@ -503,7 +744,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}, @@ -525,13 +768,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}, @@ -588,6 +827,23 @@ static const struct FormChange sMiniorYellowFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_YELLOW}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MINIOR + +#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 + +#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 sNecrozmaDuskManeFormChangeTable[] = { {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, {FORM_CHANGE_TERMINATOR}, @@ -596,170 +852,73 @@ static const struct FormChange sNecrozmaDawnWingsFormChangeTable[] = { {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, {FORM_CHANGE_TERMINATOR}, }; -#endif +#endif //P_FAMILY_NECROZMA -#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 - -#if P_GEN_9_POKEMON == TRUE -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 - -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}, -}; - -static const struct FormChange sLaprasFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_LAPRAS_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sEeveeFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_EEVEE_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sSnorlaxFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SNORLAX_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -#if P_GEN_5_POKEMON == TRUE -static const struct FormChange sGarbodorFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GARBODOR_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -#endif -#if P_GEN_7_POKEMON == TRUE +#if P_FAMILY_MELTAN static const struct FormChange sMelmetalFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MELMETAL_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MELTAN -#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}, @@ -771,78 +930,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 +#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 -#endif +#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 eb3c09087f..0000000000 --- a/src/data/pokemon/form_species_table_pointers.h +++ /dev/null @@ -1,714 +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_TAUROS] = sTaurosFormSpeciesIdTable, - [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = sTaurosFormSpeciesIdTable, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = sTaurosFormSpeciesIdTable, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = sTaurosFormSpeciesIdTable, - [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_WOOPER] = sWooperFormSpeciesIdTable, - [SPECIES_WOOPER_PALDEAN] = sWooperFormSpeciesIdTable, - [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_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, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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 -#if P_GEN_9_POKEMON == TRUE - [SPECIES_OINKOLOGNE_MALE] = sOinkologneFormSpeciesIdTable, - [SPECIES_OINKOLOGNE_FEMALE] = sOinkologneFormSpeciesIdTable, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = sMausholdFormSpeciesIdTable, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = sMausholdFormSpeciesIdTable, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = sSquawkabillyFormSpeciesIdTable, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = sSquawkabillyFormSpeciesIdTable, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = sSquawkabillyFormSpeciesIdTable, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = sSquawkabillyFormSpeciesIdTable, - [SPECIES_PALAFIN_ZERO] = sPalafinFormSpeciesIdTable, - [SPECIES_PALAFIN_HERO] = sPalafinFormSpeciesIdTable, - [SPECIES_TATSUGIRI_CURLY] = sTatsugiriFormSpeciesIdTable, - [SPECIES_TATSUGIRI_DROOPY] = sTatsugiriFormSpeciesIdTable, - [SPECIES_TATSUGIRI_STRETCHY] = sTatsugiriFormSpeciesIdTable, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = sDudunsparceFormSpeciesIdTable, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = sDudunsparceFormSpeciesIdTable, - [SPECIES_GIMMIGHOUL_CHEST] = sGimmighoulFormSpeciesIdTable, - [SPECIES_GIMMIGHOUL_ROAMING] = sGimmighoulFormSpeciesIdTable, -#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, - // 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, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_GARBODOR_GIGANTAMAX] = sGarbodorFormSpeciesIdTable, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_MELMETAL_GIGANTAMAX] = sMelmetalFormSpeciesIdTable, -#endif - [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 1f2cef4d97..b9d2631739 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,43 +306,67 @@ 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, @@ -279,104 +374,106 @@ static const u16 sTaurosFormSpeciesIdTable[] = { 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 +#if P_FAMILY_WOOPER static const u16 sWooperFormSpeciesIdTable[] = { SPECIES_WOOPER, SPECIES_WOOPER_PALDEAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_WOOPER -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, - FORM_SPECIES_END, -}; - +#if P_FAMILY_UNOWN static const u16 sUnownFormSpeciesIdTable[] = { SPECIES_UNOWN, SPECIES_UNOWN_B, @@ -408,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, @@ -474,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, @@ -536,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, @@ -604,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, @@ -619,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, @@ -637,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, @@ -677,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, @@ -723,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, @@ -745,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, @@ -764,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, @@ -782,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, @@ -804,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, @@ -862,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, @@ -895,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, @@ -923,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, @@ -937,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, @@ -961,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, @@ -977,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, @@ -998,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, @@ -1026,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, @@ -1039,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, @@ -1067,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, @@ -1085,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, @@ -1099,64 +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 //P_FAMILY_MAGEARNA +#if P_FAMILY_MELTAN static const u16 sMelmetalFormSpeciesIdTable[] = { SPECIES_MELMETAL, SPECIES_MELMETAL_GIGANTAMAX, FORM_SPECIES_END, }; -#endif - -#if P_GEN_8_POKEMON == TRUE +#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, @@ -1168,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, @@ -1190,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, @@ -1214,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, @@ -1288,55 +1600,73 @@ static const u16 sAlcremieFormSpeciesIdTable[] = { 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, @@ -1344,46 +1674,50 @@ 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, - FORM_SPECIES_END, -}; -#endif - -#if P_GEN_9_POKEMON == TRUE +#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, @@ -1391,29 +1725,39 @@ static const u16 sSquawkabillyFormSpeciesIdTable[] = { 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 +#if P_FAMILY_TATSUGIRI static const u16 sTatsugiriFormSpeciesIdTable[] = { SPECIES_TATSUGIRI_CURLY, SPECIES_TATSUGIRI_DROOPY, SPECIES_TATSUGIRI_STRETCHY, FORM_SPECIES_END, }; +#endif //P_FAMILY_TATSUGIRI -static const u16 sDudunsparceFormSpeciesIdTable[] = { - SPECIES_DUDUNSPARCE_TWO_SEGMENT, - SPECIES_DUDUNSPARCE_THREE_SEGMENT, - FORM_SPECIES_END, -}; - +#if P_FAMILY_GIMMIGHOUL static const u16 sGimmighoulFormSpeciesIdTable[] = { SPECIES_GIMMIGHOUL_CHEST, SPECIES_GIMMIGHOUL_ROAMING, FORM_SPECIES_END, }; -#endif +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_OGERPON +static const u16 sOgerponFormSpeciesIdTable[] = { + SPECIES_OGERPON_TEAL_MASK, + SPECIES_OGERPON_WELLSPRING_MASK, + SPECIES_OGERPON_HEARTHFLAME_MASK, + SPECIES_OGERPON_CORNERSTONE_MASK, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_OGERPON 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 43b17b4185..0000000000 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ /dev/null @@ -1,1570 +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_TAUROS_PALDEAN_COMBAT_BREED] = sTaurosPaldeanCombatBreedLevelUpLearnset, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = sTaurosPaldeanBlazeBreedLevelUpLearnset, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = sTaurosPaldeanAquaBreedLevelUpLearnset, - [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_WOOPER_PALDEAN] = sWooperPaldeanLevelUpLearnset, - [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_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, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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_URSALUNA_BLOODMOON] = sUrsalunaBloodmoonLevelUpLearnset, - [SPECIES_BASCULEGION_MALE] = sBasculegionLevelUpLearnset, - [SPECIES_SNEASLER] = sSneaslerLevelUpLearnset, - [SPECIES_OVERQWIL] = sOverqwilLevelUpLearnset, - [SPECIES_ENAMORUS_INCARNATE] = sEnamorusLevelUpLearnset, -#endif -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = sSprigatitoLevelUpLearnset, - [SPECIES_FLORAGATO] = sFloragatoLevelUpLearnset, - [SPECIES_MEOWSCARADA] = sMeowscaradaLevelUpLearnset, - [SPECIES_FUECOCO] = sFuecocoLevelUpLearnset, - [SPECIES_CROCALOR] = sCrocalorLevelUpLearnset, - [SPECIES_SKELEDIRGE] = sSkeledirgeLevelUpLearnset, - [SPECIES_QUAXLY] = sQuaxlyLevelUpLearnset, - [SPECIES_QUAXWELL] = sQuaxwellLevelUpLearnset, - [SPECIES_QUAQUAVAL] = sQuaquavalLevelUpLearnset, - [SPECIES_LECHONK] = sLechonkLevelUpLearnset, - [SPECIES_OINKOLOGNE_MALE] = sOinkologneMaleLevelUpLearnset, - [SPECIES_OINKOLOGNE_FEMALE] = sOinkologneFemaleLevelUpLearnset, - [SPECIES_TAROUNTULA] = sTarountulaLevelUpLearnset, - [SPECIES_SPIDOPS] = sSpidopsLevelUpLearnset, - [SPECIES_NYMBLE] = sNymbleLevelUpLearnset, - [SPECIES_LOKIX] = sLokixLevelUpLearnset, - [SPECIES_PAWMI] = sPawmiLevelUpLearnset, - [SPECIES_PAWMO] = sPawmoLevelUpLearnset, - [SPECIES_PAWMOT] = sPawmotLevelUpLearnset, - [SPECIES_TANDEMAUS] = sTandemausLevelUpLearnset, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = sMausholdLevelUpLearnset, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = sMausholdLevelUpLearnset, - [SPECIES_FIDOUGH] = sFidoughLevelUpLearnset, - [SPECIES_DACHSBUN] = sDachsbunLevelUpLearnset, - [SPECIES_SMOLIV] = sSmolivLevelUpLearnset, - [SPECIES_DOLLIV] = sDollivLevelUpLearnset, - [SPECIES_ARBOLIVA] = sArbolivaLevelUpLearnset, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = sSquawkabillyLevelUpLearnset, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = sSquawkabillyLevelUpLearnset, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = sSquawkabillyLevelUpLearnset, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = sSquawkabillyLevelUpLearnset, - [SPECIES_NACLI] = sNacliLevelUpLearnset, - [SPECIES_NACLSTACK] = sNaclstackLevelUpLearnset, - [SPECIES_GARGANACL] = sGarganaclLevelUpLearnset, - [SPECIES_CHARCADET] = sCharcadetLevelUpLearnset, - [SPECIES_ARMAROUGE] = sArmarougeLevelUpLearnset, - [SPECIES_CERULEDGE] = sCeruledgeLevelUpLearnset, - [SPECIES_TADBULB] = sTadbulbLevelUpLearnset, - [SPECIES_BELLIBOLT] = sBelliboltLevelUpLearnset, - [SPECIES_WATTREL] = sWattrelLevelUpLearnset, - [SPECIES_KILOWATTREL] = sKilowattrelLevelUpLearnset, - [SPECIES_MASCHIFF] = sMaschiffLevelUpLearnset, - [SPECIES_MABOSSTIFF] = sMabosstiffLevelUpLearnset, - [SPECIES_SHROODLE] = sShroodleLevelUpLearnset, - [SPECIES_GRAFAIAI] = sGrafaiaiLevelUpLearnset, - [SPECIES_BRAMBLIN] = sBramblinLevelUpLearnset, - [SPECIES_BRAMBLEGHAST] = sBrambleghastLevelUpLearnset, - [SPECIES_TOEDSCOOL] = sToedscoolLevelUpLearnset, - [SPECIES_TOEDSCRUEL] = sToedscruelLevelUpLearnset, - [SPECIES_KLAWF] = sKlawfLevelUpLearnset, - [SPECIES_CAPSAKID] = sCapsakidLevelUpLearnset, - [SPECIES_SCOVILLAIN] = sScovillainLevelUpLearnset, - [SPECIES_RELLOR] = sRellorLevelUpLearnset, - [SPECIES_RABSCA] = sRabscaLevelUpLearnset, - [SPECIES_FLITTLE] = sFlittleLevelUpLearnset, - [SPECIES_ESPATHRA] = sEspathraLevelUpLearnset, - [SPECIES_TINKATINK] = sTinkatinkLevelUpLearnset, - [SPECIES_TINKATUFF] = sTinkatuffLevelUpLearnset, - [SPECIES_TINKATON] = sTinkatonLevelUpLearnset, - [SPECIES_WIGLETT] = sWiglettLevelUpLearnset, - [SPECIES_WUGTRIO] = sWugtrioLevelUpLearnset, - [SPECIES_BOMBIRDIER] = sBombirdierLevelUpLearnset, - [SPECIES_FINIZEN] = sFinizenLevelUpLearnset, - [SPECIES_PALAFIN_ZERO] = sPalafinLevelUpLearnset, - [SPECIES_PALAFIN_HERO] = sPalafinLevelUpLearnset, - [SPECIES_VAROOM] = sVaroomLevelUpLearnset, - [SPECIES_REVAVROOM] = sRevavroomLevelUpLearnset, - [SPECIES_CYCLIZAR] = sCyclizarLevelUpLearnset, - [SPECIES_ORTHWORM] = sOrthwormLevelUpLearnset, - [SPECIES_GLIMMET] = sGlimmetLevelUpLearnset, - [SPECIES_GLIMMORA] = sGlimmoraLevelUpLearnset, - [SPECIES_GREAVARD] = sGreavardLevelUpLearnset, - [SPECIES_HOUNDSTONE] = sHoundstoneLevelUpLearnset, - [SPECIES_FLAMIGO] = sFlamigoLevelUpLearnset, - [SPECIES_CETODDLE] = sCetoddleLevelUpLearnset, - [SPECIES_CETITAN] = sCetitanLevelUpLearnset, - [SPECIES_VELUZA] = sVeluzaLevelUpLearnset, - [SPECIES_DONDOZO] = sDondozoLevelUpLearnset, - [SPECIES_TATSUGIRI_CURLY] = sTatsugiriLevelUpLearnset, - [SPECIES_TATSUGIRI_DROOPY] = sTatsugiriLevelUpLearnset, - [SPECIES_TATSUGIRI_STRETCHY] = sTatsugiriLevelUpLearnset, - [SPECIES_ANNIHILAPE] = sAnnihilapeLevelUpLearnset, - [SPECIES_CLODSIRE] = sClodsireLevelUpLearnset, - [SPECIES_FARIGIRAF] = sFarigirafLevelUpLearnset, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = sDudunsparceLevelUpLearnset, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = sDudunsparceLevelUpLearnset, - [SPECIES_KINGAMBIT] = sKingambitLevelUpLearnset, - [SPECIES_GREAT_TUSK] = sGreatTuskLevelUpLearnset, - [SPECIES_SCREAM_TAIL] = sScreamTailLevelUpLearnset, - [SPECIES_BRUTE_BONNET] = sBruteBonnetLevelUpLearnset, - [SPECIES_FLUTTER_MANE] = sFlutterManeLevelUpLearnset, - [SPECIES_SLITHER_WING] = sSlitherWingLevelUpLearnset, - [SPECIES_SANDY_SHOCKS] = sSandyShocksLevelUpLearnset, - [SPECIES_IRON_TREADS] = sIronTreadsLevelUpLearnset, - [SPECIES_IRON_BUNDLE] = sIronBundleLevelUpLearnset, - [SPECIES_IRON_HANDS] = sIronHandsLevelUpLearnset, - [SPECIES_IRON_JUGULIS] = sIronJugulisLevelUpLearnset, - [SPECIES_IRON_MOTH] = sIronMothLevelUpLearnset, - [SPECIES_IRON_THORNS] = sIronThornsLevelUpLearnset, - [SPECIES_FRIGIBAX] = sFrigibaxLevelUpLearnset, - [SPECIES_ARCTIBAX] = sArctibaxLevelUpLearnset, - [SPECIES_BAXCALIBUR] = sBaxcaliburLevelUpLearnset, - [SPECIES_GIMMIGHOUL_CHEST] = sGimmighoulLevelUpLearnset, - [SPECIES_GIMMIGHOUL_ROAMING] = sGimmighoulLevelUpLearnset, - [SPECIES_GHOLDENGO] = sGholdengoLevelUpLearnset, - [SPECIES_WO_CHIEN] = sWoChienLevelUpLearnset, - [SPECIES_CHIEN_PAO] = sChienPaoLevelUpLearnset, - [SPECIES_TING_LU] = sTingLuLevelUpLearnset, - [SPECIES_CHI_YU] = sChiYuLevelUpLearnset, - [SPECIES_ROARING_MOON] = sRoaringMoonLevelUpLearnset, - [SPECIES_IRON_VALIANT] = sIronValiantLevelUpLearnset, - [SPECIES_KORAIDON] = sKoraidonLevelUpLearnset, - [SPECIES_MIRAIDON] = sMiraidonLevelUpLearnset, - [SPECIES_WALKING_WAKE] = sWalkingWakeLevelUpLearnset, - [SPECIES_IRON_LEAVES] = sIronLeavesLevelUpLearnset, - [SPECIES_DIPPLIN] = sDipplinLevelUpLearnset, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = sPoltchageistLevelUpLearnset, - [SPECIES_POLTCHAGEIST_ARTISAN] = sPoltchageistLevelUpLearnset, - [SPECIES_SINISTCHA_UNREMARKABLE] = sSinistchaLevelUpLearnset, - [SPECIES_SINISTCHA_MASTERPIECE] = sSinistchaLevelUpLearnset, - [SPECIES_OKIDOGI] = sOkidogiLevelUpLearnset, - [SPECIES_MUNKIDORI] = sMunkidoriLevelUpLearnset, - [SPECIES_FEZANDIPITI] = sFezandipitiLevelUpLearnset, - [SPECIES_OGERPON_TEAL_MASK] = sOgerponLevelUpLearnset, - [SPECIES_OGERPON_WELLSPRING_MASK] = sOgerponLevelUpLearnset, - [SPECIES_OGERPON_HEARTHFLAME_MASK] = sOgerponLevelUpLearnset, - [SPECIES_OGERPON_CORNERSTONE_MASK] = sOgerponLevelUpLearnset, - [SPECIES_OGERPON_TEAL_MASK_TERA] = sOgerponLevelUpLearnset, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = sOgerponLevelUpLearnset, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = sOgerponLevelUpLearnset, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = sOgerponLevelUpLearnset, -#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, - // 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, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_GARBODOR_GIGANTAMAX] = sGarbodorLevelUpLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_MELMETAL_GIGANTAMAX] = sMelmetalLevelUpLearnset, -#endif - [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 1cfa0157d9..3325cb2b8a 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -1,6 +1,12 @@ #define LEVEL_UP_MOVE(lvl, moveLearned) {.move = moveLearned, .level = lvl} #define LEVEL_UP_END {.move = LEVEL_UP_MOVE_END, .level = 0} +static const struct LevelUpMove sNoneLevelUpLearnset[] = { + LEVEL_UP_MOVE(1, MOVE_POUND), + LEVEL_UP_END +}; + +#if P_FAMILY_BULBASAUR static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -62,7 +68,9 @@ static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_SOLAR_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_BULBASAUR +#if P_FAMILY_CHARMANDER static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -121,7 +129,9 @@ static const struct LevelUpMove sCharizardLevelUpLearnset[] = { LEVEL_UP_MOVE(77, MOVE_FLARE_BLITZ), LEVEL_UP_END }; +#endif //P_FAMILY_CHARMANDER +#if P_FAMILY_SQUIRTLE static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), @@ -181,7 +191,9 @@ static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_SQUIRTLE +#if P_FAMILY_CATERPIE static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -216,7 +228,9 @@ static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { LEVEL_UP_MOVE(47, MOVE_QUIVER_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_CATERPIE +#if P_FAMILY_WEEDLE static const struct LevelUpMove sWeedleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -248,7 +262,9 @@ static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { LEVEL_UP_MOVE(44, MOVE_FELL_STINGER), LEVEL_UP_END }; +#endif //P_FAMILY_WEEDLE +#if P_FAMILY_PIDGEY static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), @@ -308,7 +324,9 @@ static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { LEVEL_UP_MOVE(68, MOVE_HURRICANE), LEVEL_UP_END }; +#endif //P_FAMILY_PIDGEY +#if P_FAMILY_RATTATA static const struct LevelUpMove sRattataLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -348,6 +366,49 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_PURSUIT), + LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), + LEVEL_UP_MOVE(19, MOVE_ASSURANCE), + LEVEL_UP_MOVE(24, MOVE_CRUNCH), + LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW static const struct LevelUpMove sSpearowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -384,7 +445,9 @@ static const struct LevelUpMove sFearowLevelUpLearnset[] = { LEVEL_UP_MOVE(45, MOVE_DRILL_RUN), LEVEL_UP_END }; +#endif //P_FAMILY_SPEAROW +#if P_FAMILY_EKANS static const struct LevelUpMove sEkansLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -433,6 +496,20 @@ static const struct LevelUpMove sArbokLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_GUNK_SHOT), LEVEL_UP_END }; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPichuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS static const struct LevelUpMove sPikachuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -464,6 +541,21 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), + LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -510,6 +602,43 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 3, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(26, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_HAIL), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN static const struct LevelUpMove sNidoranFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), @@ -603,6 +732,21 @@ static const struct LevelUpMove sNidokingLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_MEGAHORN), LEVEL_UP_END }; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCleffaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_ENCORE), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(13, MOVE_COPYCAT), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS static const struct LevelUpMove sClefairyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPOTLIGHT), @@ -640,7 +784,9 @@ static const struct LevelUpMove sClefableLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_METRONOME), LEVEL_UP_END }; +#endif //P_FAMILY_CLEFAIRY +#if P_FAMILY_VULPIX static const struct LevelUpMove sVulpixLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), @@ -675,6 +821,58 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(15, MOVE_ICY_WIND), + LEVEL_UP_MOVE(18, MOVE_PAYBACK), + LEVEL_UP_MOVE(20, MOVE_MIST), + LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(26, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(39, MOVE_IMPRISON), + LEVEL_UP_MOVE(42, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_GRUDGE), + LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_IMPRISON), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 5, MOVE_POUND), + LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(11, MOVE_COPYCAT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SING), LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), @@ -707,7 +905,9 @@ static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), LEVEL_UP_END }; +#endif //P_FAMILY_JIGGLYPUFF +#if P_FAMILY_ZUBAT static const struct LevelUpMove sZubatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), @@ -750,6 +950,35 @@ static const struct LevelUpMove sGolbatLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sCrobatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(24, MOVE_SWIFT), + LEVEL_UP_MOVE(27, MOVE_POISON_FANG), + LEVEL_UP_MOVE(32, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(40, MOVE_HAZE), + LEVEL_UP_MOVE(43, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(51, MOVE_QUICK_GUARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH static const struct LevelUpMove sOddishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_GROWTH), @@ -803,6 +1032,26 @@ static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBellossomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(39, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(59, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(69, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS static const struct LevelUpMove sParasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), @@ -838,7 +1087,9 @@ static const struct LevelUpMove sParasectLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_X_SCISSOR), LEVEL_UP_END }; +#endif //P_FAMILY_PARAS +#if P_FAMILY_VENONAT static const struct LevelUpMove sVenonatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DISABLE), @@ -882,7 +1133,9 @@ static const struct LevelUpMove sVenomothLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_QUIVER_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_VENONAT +#if P_FAMILY_DIGLETT static const struct LevelUpMove sDiglettLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), @@ -925,6 +1178,52 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(31, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(18, MOVE_BULLDOZE), + LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(35, MOVE_DIG), + LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(53, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH static const struct LevelUpMove sMeowthLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -969,6 +1268,97 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(30, MOVE_PAY_DAY), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_ASSURANCE), + LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(50, MOVE_FEINT), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_QUASH), + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_TAUNT), + LEVEL_UP_MOVE(32, MOVE_POWER_GEM), + LEVEL_UP_MOVE(37, MOVE_SLASH), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ASSURANCE), + LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_FEINT), + LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 8, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE(12, MOVE_PAY_DAY), + LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_SWAGGER), + LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), @@ -1012,7 +1402,9 @@ static const struct LevelUpMove sGolduckLevelUpLearnset[] = { LEVEL_UP_MOVE(51, MOVE_WONDER_ROOM), LEVEL_UP_END }; +#endif //P_FAMILY_PSYDUCK +#if P_FAMILY_MANKEY static const struct LevelUpMove sMankeyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COVET), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), @@ -1062,6 +1454,33 @@ static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_9_CROSS_EVOS +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 +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_ROAR), @@ -1094,6 +1513,52 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + 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( 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), LEVEL_UP_MOVE( 5, MOVE_WATER_GUN), @@ -1143,6 +1608,21 @@ static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(27, MOVE_SWAGGER), + LEVEL_UP_MOVE(37, MOVE_BOUNCE), + LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA static const struct LevelUpMove sAbraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TELEPORT), LEVEL_UP_END @@ -1189,7 +1669,9 @@ static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { LEVEL_UP_MOVE(46, MOVE_TRICK), LEVEL_UP_END }; +#endif //P_FAMILY_ABRA +#if P_FAMILY_MACHOP static const struct LevelUpMove sMachopLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -1259,7 +1741,9 @@ static const struct LevelUpMove sMachampLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_DYNAMIC_PUNCH), LEVEL_UP_END }; +#endif //P_FAMILY_MACHOP +#if P_FAMILY_BELLSPROUT static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 7, MOVE_GROWTH), @@ -1312,7 +1796,9 @@ static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), LEVEL_UP_END }; +#endif //P_FAMILY_BELLSPROUT +#if P_FAMILY_TENTACOOL static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 4, MOVE_SUPERSONIC), @@ -1359,7 +1845,9 @@ static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_WRING_OUT), LEVEL_UP_END }; +#endif //P_FAMILY_TENTACOOL +#if P_FAMILY_GEODUDE static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -1426,6 +1914,76 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_EXPLOSION), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), + LEVEL_UP_MOVE(12, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(44, MOVE_EXPLOSION), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA static const struct LevelUpMove sPonytaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -1468,6 +2026,48 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(30, MOVE_STOMP), + LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 1, MOVE_YAWN), @@ -1512,6 +2112,108 @@ static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(14, MOVE_CONFUSION), + LEVEL_UP_MOVE(19, MOVE_DISABLE), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(41, MOVE_SWAGGER), + LEVEL_UP_MOVE(45, MOVE_PSYCHIC), + LEVEL_UP_MOVE(49, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(54, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 3, MOVE_GROWL), + LEVEL_UP_MOVE( 6, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; + +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CURSE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_YAWN), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(15, MOVE_DISABLE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(27, MOVE_AMNESIA), + LEVEL_UP_MOVE(30, MOVE_SURF), + LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(36, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), @@ -1562,6 +2264,40 @@ static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(11, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(23, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(33, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(39, MOVE_SCREECH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_LOCK_ON), + LEVEL_UP_MOVE(53, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(59, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(63, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), @@ -1585,6 +2321,52 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_LEER), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(25, MOVE_DETECT), + LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(35, MOVE_DEFOG), + LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_SLAM), + LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), + LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO static const struct LevelUpMove sDoduoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -1628,7 +2410,9 @@ static const struct LevelUpMove sDodrioLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_THRASH), LEVEL_UP_END }; +#endif //P_FAMILY_DODUO +#if P_FAMILY_SEEL static const struct LevelUpMove sSeelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -1675,7 +2459,9 @@ static const struct LevelUpMove sDewgongLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_HAIL), LEVEL_UP_END }; +#endif //P_FAMILY_SEEL +#if P_FAMILY_GRIMER static const struct LevelUpMove sGrimerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), @@ -1720,6 +2506,54 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_BELCH), + LEVEL_UP_MOVE(48, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(18, MOVE_POISON_FANG), + LEVEL_UP_MOVE(21, MOVE_MINIMIZE), + LEVEL_UP_MOVE(26, MOVE_FLING), + LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(52, MOVE_BELCH), + LEVEL_UP_MOVE(57, MOVE_MEMENTO), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER static const struct LevelUpMove sShellderLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -1754,7 +2588,9 @@ static const struct LevelUpMove sCloysterLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_ICICLE_CRASH), LEVEL_UP_END }; +#endif //P_FAMILY_SHELLDER +#if P_FAMILY_GASTLY static const struct LevelUpMove sGastlyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_MOVE( 1, MOVE_LICK), @@ -1817,7 +2653,9 @@ static const struct LevelUpMove sGengarLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_NIGHTMARE), LEVEL_UP_END }; +#endif //P_FAMILY_GASTLY +#if P_FAMILY_ONIX static const struct LevelUpMove sOnixLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -1844,6 +2682,39 @@ static const struct LevelUpMove sOnixLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSteelixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 4, MOVE_CURSE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_RAGE), + LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(19, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(20, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_SCREECH), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(43, MOVE_DIG), + LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), @@ -1891,7 +2762,9 @@ static const struct LevelUpMove sHypnoLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_FUTURE_SIGHT), LEVEL_UP_END }; +#endif //P_FAMILY_DROWZEE +#if P_FAMILY_KRABBY static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), LEVEL_UP_MOVE( 1, MOVE_BUBBLE), @@ -1932,7 +2805,9 @@ static const struct LevelUpMove sKinglerLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_FLAIL), LEVEL_UP_END }; +#endif //P_FAMILY_KRABBY +#if P_FAMILY_VOLTORB static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CHARGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -1978,6 +2853,53 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + 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( 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_UPROAR), @@ -2011,6 +2933,24 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), + LEVEL_UP_MOVE( 1, MOVE_BARRAGE), + LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), + LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE static const struct LevelUpMove sCuboneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), @@ -2054,6 +2994,43 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_ALOLAN_FORMS +static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), + LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(13, MOVE_LEER), + LEVEL_UP_MOVE(17, MOVE_HEX), + LEVEL_UP_MOVE(21, MOVE_BONEMERANG), + LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), + LEVEL_UP_MOVE(33, MOVE_THRASH), + LEVEL_UP_MOVE(37, MOVE_FLING), + LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(59, MOVE_RETALIATE), + LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), + LEVEL_UP_END +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_KICK), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), @@ -2111,6 +3088,37 @@ static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), + LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(24, MOVE_FEINT), + LEVEL_UP_MOVE(28, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TRIPLE_KICK), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(46, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(46, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(50, MOVE_DETECT), + LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG static const struct LevelUpMove sLickitungLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), @@ -2130,6 +3138,32 @@ static const struct LevelUpMove sLickitungLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(17, MOVE_WRAP), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_DISABLE), + LEVEL_UP_MOVE(29, MOVE_SLAM), + LEVEL_UP_MOVE(33, MOVE_ROLLOUT), + LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_REFRESH), + LEVEL_UP_MOVE(49, MOVE_SCREECH), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(57, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING static const struct LevelUpMove sKoffingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -2172,6 +3206,38 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), + LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(16, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_SLUDGE), + LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(38, MOVE_TOXIC), + LEVEL_UP_MOVE(44, MOVE_BELCH), + LEVEL_UP_MOVE(50, MOVE_EXPLOSION), + LEVEL_UP_MOVE(56, MOVE_MEMENTO), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -2215,6 +3281,47 @@ static const struct LevelUpMove sRhydonLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_ROCK_WRECKER), + LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_STOMP), + LEVEL_UP_MOVE(21, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(33, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(55, MOVE_MEGAHORN), + LEVEL_UP_MOVE(62, MOVE_HORN_DRILL), + LEVEL_UP_MOVE(69, MOVE_ROCK_WRECKER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHappinyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + static const struct LevelUpMove sChanseyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -2237,6 +3344,32 @@ static const struct LevelUpMove sChanseyLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 9, MOVE_REFRESH), + LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED), + LEVEL_UP_MOVE(20, MOVE_BESTOW), + LEVEL_UP_MOVE(23, MOVE_MINIMIZE), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_SING), + LEVEL_UP_MOVE(34, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(44, MOVE_EGG_BOMB), + LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA static const struct LevelUpMove sTangelaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_INGRAIN), LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), @@ -2260,6 +3393,35 @@ static const struct LevelUpMove sTangelaLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(10, MOVE_ABSORB), + LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(17, MOVE_BIND), + LEVEL_UP_MOVE(20, MOVE_GROWTH), + LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(33, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(40, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(43, MOVE_SLAM), + LEVEL_UP_MOVE(46, MOVE_TICKLE), + LEVEL_UP_MOVE(49, MOVE_WRING_OUT), + LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(56, MOVE_BLOCK), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COMET_PUNCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -2278,7 +3440,9 @@ static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_REVERSAL), LEVEL_UP_END }; +#endif //P_FAMILY_KANGASKHAN +#if P_FAMILY_HORSEA static const struct LevelUpMove sHorseaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), @@ -2315,6 +3479,31 @@ static const struct LevelUpMove sSeadraLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sKingdraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 9, MOVE_LEER), + LEVEL_UP_MOVE(13, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_TWISTER), + LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_BRINE), + LEVEL_UP_MOVE(38, MOVE_AGILITY), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(52, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -2353,7 +3542,9 @@ static const struct LevelUpMove sSeakingLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_MEGAHORN), LEVEL_UP_END }; +#endif //P_FAMILY_GOLDEEN +#if P_FAMILY_STARYU static const struct LevelUpMove sStaryuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -2387,6 +3578,33 @@ static const struct LevelUpMove sStarmieLevelUpLearnset[] = { LEVEL_UP_MOVE(40, MOVE_CONFUSE_RAY), LEVEL_UP_END }; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_BARRIER), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_COPYCAT), + LEVEL_UP_MOVE( 8, MOVE_MEDITATE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(18, MOVE_ENCORE), + LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(22, MOVE_REFLECT), + LEVEL_UP_MOVE(25, MOVE_PSYBEAM), + LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(32, MOVE_RECYCLE), + LEVEL_UP_MOVE(36, MOVE_TRICK), + LEVEL_UP_MOVE(39, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(46, MOVE_BATON_PASS), + LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), @@ -2417,6 +3635,74 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE( 1, MOVE_REFLECT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(12, MOVE_CONFUSION), + LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(20, MOVE_ICY_WIND), + LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(28, MOVE_PSYBEAM), + LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(48, MOVE_PSYCHIC), + LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER static const struct LevelUpMove sScytherLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VACUUM_WAVE), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -2439,6 +3725,74 @@ static const struct LevelUpMove sScytherLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sScizorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 9, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(29, MOVE_SLASH), + LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(61, MOVE_FEINT), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +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( 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 +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_CONFUSION), + LEVEL_UP_MOVE(18, MOVE_SING), + LEVEL_UP_MOVE(21, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(35, MOVE_AVALANCHE), + LEVEL_UP_MOVE(38, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + static const struct LevelUpMove sJynxLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DRAINING_KISS), LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), @@ -2462,6 +3816,28 @@ static const struct LevelUpMove sJynxLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sElekidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(33, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -2482,6 +3858,55 @@ static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sElectivireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SWIFT), + LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(42, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(55, MOVE_THUNDER), + LEVEL_UP_MOVE(62, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(65, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sMagbyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(33, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(43, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + static const struct LevelUpMove sMagmarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SMOG), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -2501,6 +3926,32 @@ static const struct LevelUpMove sMagmarLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(42, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR static const struct LevelUpMove sPinsirLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), @@ -2520,7 +3971,9 @@ static const struct LevelUpMove sPinsirLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_GUILLOTINE), LEVEL_UP_END }; +#endif //P_FAMILY_PINSIR +#if P_FAMILY_TAUROS static const struct LevelUpMove sTaurosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), @@ -2540,6 +3993,64 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_PALDEAN_FORMS +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 +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE(15, MOVE_TACKLE), @@ -2565,7 +4076,9 @@ static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_MAGIKARP +#if P_FAMILY_LAPRAS static const struct LevelUpMove sLaprasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SING), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -2584,12 +4097,16 @@ static const struct LevelUpMove sLaprasLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), LEVEL_UP_END }; +#endif //P_FAMILY_LAPRAS +#if P_FAMILY_DITTO static const struct LevelUpMove sDittoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TRANSFORM), LEVEL_UP_END }; +#endif //P_FAMILY_DITTO +#if P_FAMILY_EEVEE static const struct LevelUpMove sEeveeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COVET), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -2671,6 +4188,115 @@ static const struct LevelUpMove sFlareonLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sEspeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(37, MOVE_PSYCHIC), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_POWER_SWAP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUmbreonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(29, MOVE_SCREECH), + LEVEL_UP_MOVE(33, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(37, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_GUARD_SWAP), + LEVEL_UP_END +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(37, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(25, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(29, MOVE_BARRIER), + LEVEL_UP_MOVE(33, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(37, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const struct LevelUpMove sSylveonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SWIFT), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(37, MOVE_MOONBLAST), + LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), + LEVEL_UP_END +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON static const struct LevelUpMove sPorygonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -2690,6 +4316,57 @@ static const struct LevelUpMove sPorygonLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_2_CROSS_EVOS +static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_RECYCLE), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CONVERSION), + LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(12, MOVE_AGILITY), + LEVEL_UP_MOVE(18, MOVE_RECOVER), + LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_DISCHARGE), + LEVEL_UP_MOVE(45, MOVE_LOCK_ON), + LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -2729,7 +4406,9 @@ static const struct LevelUpMove sOmastarLevelUpLearnset[] = { LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_OMANYTE +#if P_FAMILY_KABUTO static const struct LevelUpMove sKabutoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -2768,7 +4447,9 @@ static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { LEVEL_UP_MOVE(72, MOVE_NIGHT_SLASH), LEVEL_UP_END }; +#endif //P_FAMILY_KABUTO +#if P_FAMILY_AERODACTYL static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), @@ -2790,6 +4471,34 @@ static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { LEVEL_UP_MOVE(81, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_METRONOME), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 9, MOVE_AMNESIA), + LEVEL_UP_MOVE(12, MOVE_LICK), + LEVEL_UP_MOVE(17, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(33, MOVE_SWALLOW), + LEVEL_UP_MOVE(36, MOVE_ROLLOUT), + LEVEL_UP_MOVE(41, MOVE_FLING), + LEVEL_UP_MOVE(44, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(49, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(50, MOVE_SNATCH), + LEVEL_UP_MOVE(57, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -2811,7 +4520,9 @@ static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_HIGH_HORSEPOWER), LEVEL_UP_END }; +#endif //P_FAMILY_SNORLAX +#if P_FAMILY_ARTICUNO static const struct LevelUpMove sArticunoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -2832,6 +4543,30 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_REFLECT), + LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_TAILWIND), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(40, MOVE_RECOVER), + LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), + LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_MIND_READER), + LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS static const struct LevelUpMove sZapdosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -2852,6 +4587,30 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(15, MOVE_PLUCK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(55, MOVE_COUNTER), + LEVEL_UP_MOVE(60, MOVE_DETECT), + LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_REVERSAL), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES static const struct LevelUpMove sMoltresLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -2872,6 +4631,30 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_PAYBACK), + LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(20, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), + LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), + LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_MOVE(60, MOVE_ENDURE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI static const struct LevelUpMove sDratiniLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -2936,7 +4719,9 @@ static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { LEVEL_UP_MOVE(81, MOVE_HURRICANE), LEVEL_UP_END }; +#endif //P_FAMILY_DRATINI +#if P_FAMILY_MEWTWO static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), @@ -2960,7 +4745,9 @@ static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { LEVEL_UP_MOVE(100, MOVE_PSYSTRIKE), LEVEL_UP_END }; +#endif //P_FAMILY_MEWTWO +#if P_FAMILY_MEW static const struct LevelUpMove sMewLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), @@ -2977,7 +4764,9 @@ static const struct LevelUpMove sMewLevelUpLearnset[] = { LEVEL_UP_MOVE(100, MOVE_AURA_SPHERE), LEVEL_UP_END }; +#endif //P_FAMILY_MEW +#if P_FAMILY_CHIKORITA static const struct LevelUpMove sChikoritaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -3039,7 +4828,9 @@ static const struct LevelUpMove sMeganiumLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_PETAL_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_CHIKORITA +#if P_FAMILY_CYNDAQUIL static const struct LevelUpMove sCyndaquilLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -3106,6 +4897,32 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE static const struct LevelUpMove sTotodileLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -3169,7 +4986,9 @@ static const struct LevelUpMove sFeraligatrLevelUpLearnset[] = { LEVEL_UP_MOVE(76, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_TOTODILE +#if P_FAMILY_SENTRET static const struct LevelUpMove sSentretLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), @@ -3210,7 +5029,9 @@ static const struct LevelUpMove sFurretLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_HYPER_VOICE), LEVEL_UP_END }; +#endif //P_FAMILY_SENTRET +#if P_FAMILY_HOOTHOOT static const struct LevelUpMove sHoothootLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -3257,7 +5078,9 @@ static const struct LevelUpMove sNoctowlLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_DREAM_EATER), LEVEL_UP_END }; +#endif //P_FAMILY_HOOTHOOT +#if P_FAMILY_LEDYBA static const struct LevelUpMove sLedybaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), @@ -3295,7 +5118,9 @@ static const struct LevelUpMove sLedianLevelUpLearnset[] = { LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; +#endif //P_FAMILY_LEDYBA +#if P_FAMILY_SPINARAK static const struct LevelUpMove sSpinarakLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -3346,32 +5171,9 @@ static const struct LevelUpMove sAriadosLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_TOXIC_THREAD), LEVEL_UP_END }; +#endif //P_FAMILY_SPINARAK -static const struct LevelUpMove sCrobatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_CROSS_POISON), - LEVEL_UP_MOVE( 1, MOVE_CROSS_POISON), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 7, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_BITE), - LEVEL_UP_MOVE(13, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(19, MOVE_AIR_CUTTER), - LEVEL_UP_MOVE(24, MOVE_SWIFT), - LEVEL_UP_MOVE(27, MOVE_POISON_FANG), - LEVEL_UP_MOVE(32, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(35, MOVE_LEECH_LIFE), - LEVEL_UP_MOVE(40, MOVE_HAZE), - LEVEL_UP_MOVE(43, MOVE_VENOSHOCK), - LEVEL_UP_MOVE(48, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(51, MOVE_QUICK_GUARD), - LEVEL_UP_END -}; - +#if P_FAMILY_CHINCHOU static const struct LevelUpMove sChinchouLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), @@ -3421,38 +5223,9 @@ static const struct LevelUpMove sLanturnLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_CHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_CHINCHOU -static const struct LevelUpMove sPichuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(13, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(18, MOVE_THUNDER_WAVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCleffaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 4, MOVE_ENCORE), - LEVEL_UP_MOVE( 7, MOVE_SING), - LEVEL_UP_MOVE(10, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(13, MOVE_COPYCAT), - LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), - LEVEL_UP_END -}; - -static const struct LevelUpMove sIgglybuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 5, MOVE_POUND), - LEVEL_UP_MOVE( 9, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(11, MOVE_COPYCAT), - LEVEL_UP_END -}; - +#if P_FAMILY_TOGEPI static const struct LevelUpMove sTogepiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_CHARM), @@ -3495,6 +5268,19 @@ static const struct LevelUpMove sTogeticLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sTogekissLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU static const struct LevelUpMove sNatuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -3539,7 +5325,9 @@ static const struct LevelUpMove sXatuLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_ME_FIRST), LEVEL_UP_END }; +#endif //P_FAMILY_NATU +#if P_FAMILY_MAREEP static const struct LevelUpMove sMareepLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -3608,22 +5396,24 @@ static const struct LevelUpMove sAmpharosLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_DRAGON_PULSE), LEVEL_UP_END }; +#endif //P_FAMILY_MAREEP -static const struct LevelUpMove sBellossomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), - LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(39, MOVE_QUIVER_DANCE), - LEVEL_UP_MOVE(49, MOVE_PETAL_BLIZZARD), - LEVEL_UP_MOVE(59, MOVE_PETAL_DANCE), - LEVEL_UP_MOVE(69, MOVE_LEAF_STORM), +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sAzurillLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE), + LEVEL_UP_MOVE(10, MOVE_CHARM), + LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(23, MOVE_BOUNCE), LEVEL_UP_END }; +#endif //P_GEN_3_CROSS_EVOS static const struct LevelUpMove sMarillLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -3666,6 +5456,28 @@ static const struct LevelUpMove sAzumarillLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBonslyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_FLAIL), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(15, MOVE_MIMIC), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE(26, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(29, MOVE_BLOCK), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(36, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SLAM), @@ -3692,18 +5504,9 @@ static const struct LevelUpMove sSudowoodoLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_HEAD_SMASH), LEVEL_UP_END }; +#endif //P_FAMILY_SUDOWOODO -static const struct LevelUpMove sPolitoedLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(27, MOVE_SWAGGER), - LEVEL_UP_MOVE(37, MOVE_BOUNCE), - LEVEL_UP_MOVE(48, MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - +#if P_FAMILY_HOPPIP static const struct LevelUpMove sHoppipLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -3779,7 +5582,9 @@ static const struct LevelUpMove sJumpluffLevelUpLearnset[] = { LEVEL_UP_MOVE(69, MOVE_MEMENTO), LEVEL_UP_END }; +#endif //P_FAMILY_HOPPIP +#if P_FAMILY_AIPOM static const struct LevelUpMove sAipomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -3798,6 +5603,31 @@ static const struct LevelUpMove sAipomLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_BATON_PASS), + LEVEL_UP_MOVE(15, MOVE_TICKLE), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(22, MOVE_SWIFT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(36, MOVE_FLING), + LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN static const struct LevelUpMove sSunkernLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_GROWTH), @@ -3840,7 +5670,9 @@ static const struct LevelUpMove sSunfloraLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_SUNKERN +#if P_FAMILY_YANMA static const struct LevelUpMove sYanmaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), @@ -3861,6 +5693,36 @@ static const struct LevelUpMove sYanmaLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE(17, MOVE_DETECT), + LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(30, MOVE_PURSUIT), + LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(38, MOVE_FEINT), + LEVEL_UP_MOVE(43, MOVE_SLASH), + LEVEL_UP_MOVE(46, MOVE_SCREECH), + LEVEL_UP_MOVE(49, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER static const struct LevelUpMove sWooperLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -3896,46 +5758,43 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sEspeonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), +#if P_PALDEAN_FORMS +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(17, MOVE_SWIFT), - LEVEL_UP_MOVE(20, MOVE_PSYBEAM), - LEVEL_UP_MOVE(25, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(29, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(33, MOVE_MORNING_SUN), - LEVEL_UP_MOVE(37, MOVE_PSYCHIC), - LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), - LEVEL_UP_MOVE(45, MOVE_POWER_SWAP), + 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 sUmbreonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_PURSUIT), - LEVEL_UP_MOVE( 1, MOVE_PURSUIT), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(17, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(20, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_ASSURANCE), - LEVEL_UP_MOVE(29, MOVE_SCREECH), - LEVEL_UP_MOVE(33, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(37, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), - LEVEL_UP_MOVE(45, MOVE_GUARD_SWAP), + 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 }; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER +#if P_FAMILY_MURKROW static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -3955,29 +5814,26 @@ static const struct LevelUpMove sMurkrowLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), - LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), - LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_GROWL), - LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), - LEVEL_UP_MOVE(14, MOVE_CONFUSION), - LEVEL_UP_MOVE(19, MOVE_DISABLE), - LEVEL_UP_MOVE(23, MOVE_HEADBUTT), - LEVEL_UP_MOVE(28, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(32, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(36, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(41, MOVE_SWAGGER), - LEVEL_UP_MOVE(45, MOVE_PSYCHIC), - LEVEL_UP_MOVE(49, MOVE_TRUMP_CARD), - LEVEL_UP_MOVE(54, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(58, MOVE_HEAL_PULSE), +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PURSUIT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(25, MOVE_SWAGGER), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(55, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(65, MOVE_QUASH), + LEVEL_UP_MOVE(75, MOVE_DARK_PULSE), LEVEL_UP_END }; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW +#if P_FAMILY_MISDREAVUS static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), @@ -3996,10 +5852,42 @@ static const struct LevelUpMove sMisdreavusLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN static const struct LevelUpMove sUnownLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HIDDEN_POWER), LEVEL_UP_END }; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const struct LevelUpMove sWynautLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE(15, MOVE_COUNTER), + LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_3_CROSS_EVOS static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COUNTER), @@ -4008,7 +5896,9 @@ static const struct LevelUpMove sWobbuffetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), LEVEL_UP_END }; +#endif //P_FAMILY_WOBBUFFET +#if P_FAMILY_GIRAFARIG static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), @@ -4030,6 +5920,30 @@ static const struct LevelUpMove sGirafarigLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_9_CROSS_EVOS +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 +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO static const struct LevelUpMove sPinecoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_PROTECT), @@ -4078,7 +5992,9 @@ static const struct LevelUpMove sForretressLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_HEAVY_SLAM), LEVEL_UP_END }; +#endif //P_FAMILY_PINECO +#if P_FAMILY_DUNSPARCE static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_RAGE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -4105,6 +6021,31 @@ static const struct LevelUpMove sDunsparceLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_9_CROSS_EVOS +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 +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR static const struct LevelUpMove sGligarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), @@ -4124,35 +6065,36 @@ static const struct LevelUpMove sGligarLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSteelixLevelUpLearnset[] = { +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGliscorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_BIND), - LEVEL_UP_MOVE( 4, MOVE_CURSE), - LEVEL_UP_MOVE( 7, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(13, MOVE_RAGE), - LEVEL_UP_MOVE(16, MOVE_STEALTH_ROCK), - LEVEL_UP_MOVE(19, MOVE_AUTOTOMIZE), - LEVEL_UP_MOVE(20, MOVE_GYRO_BALL), - LEVEL_UP_MOVE(22, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(25, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(28, MOVE_SLAM), - LEVEL_UP_MOVE(31, MOVE_SCREECH), - LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(37, MOVE_CRUNCH), - LEVEL_UP_MOVE(40, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(43, MOVE_DIG), - LEVEL_UP_MOVE(46, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(52, MOVE_SANDSTORM), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_HARDEN), + LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_ACROBATICS), + LEVEL_UP_MOVE(27, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(30, MOVE_U_TURN), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(45, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), LEVEL_UP_END }; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR +#if P_FAMILY_SNUBBULL static const struct LevelUpMove sSnubbullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), @@ -4192,7 +6134,9 @@ static const struct LevelUpMove sGranbullLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_SNUBBULL +#if P_FAMILY_QWILFISH static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), @@ -4220,29 +6164,52 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sScizorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FEINT), - LEVEL_UP_MOVE( 1, MOVE_BULLET_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 9, MOVE_PURSUIT), - LEVEL_UP_MOVE(13, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(17, MOVE_AGILITY), - LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(25, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(29, MOVE_SLASH), - LEVEL_UP_MOVE(33, MOVE_RAZOR_WIND), - LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(41, MOVE_X_SCISSOR), - LEVEL_UP_MOVE(45, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(49, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE(50, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(57, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(61, MOVE_FEINT), +#if P_HISUIAN_FORMS +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + 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 sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE static const struct LevelUpMove sShuckleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STICKY_WEB), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -4266,7 +6233,9 @@ static const struct LevelUpMove sShuckleLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_STICKY_WEB), LEVEL_UP_END }; +#endif //P_FAMILY_SHUCKLE +#if P_FAMILY_HERACROSS static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), LEVEL_UP_MOVE( 1, MOVE_BULLET_SEED), @@ -4288,7 +6257,9 @@ static const struct LevelUpMove sHeracrossLevelUpLearnset[] = { LEVEL_UP_MOVE(46, MOVE_REVERSAL), LEVEL_UP_END }; +#endif //P_FAMILY_HERACROSS +#if P_FAMILY_SNEASEL static const struct LevelUpMove sSneaselLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -4309,6 +6280,72 @@ static const struct LevelUpMove sSneaselLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sWeavileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBARGO), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(22, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(28, MOVE_FLING), + LEVEL_UP_MOVE(32, MOVE_SCREECH), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_SNATCH), + LEVEL_UP_MOVE(44, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(47, MOVE_DARK_PULSE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + 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 +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA static const struct LevelUpMove sTeddiursaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FLING), LEVEL_UP_MOVE( 1, MOVE_COVET), @@ -4349,6 +6386,52 @@ static const struct LevelUpMove sUrsaringLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + 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 +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA static const struct LevelUpMove sSlugmaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_YAWN), LEVEL_UP_MOVE( 1, MOVE_SMOG), @@ -4393,7 +6476,9 @@ static const struct LevelUpMove sMagcargoLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_EARTH_POWER), LEVEL_UP_END }; +#endif //P_FAMILY_SLUGMA +#if P_FAMILY_SWINUB static const struct LevelUpMove sSwinubLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), @@ -4437,6 +6522,35 @@ static const struct LevelUpMove sPiloswineLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(14, MOVE_ENDURE), + LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(21, MOVE_HAIL), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(37, MOVE_MIST), + LEVEL_UP_MOVE(41, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_SCARY_FACE), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -4459,6 +6573,45 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCursolaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE(15, MOVE_SPITE), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_HEX), + LEVEL_UP_MOVE(30, MOVE_CURSE), + LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(40, MOVE_POWER_GEM), + LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(50, MOVE_GRUDGE), + LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID static const struct LevelUpMove sRemoraidLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 6, MOVE_LOCK_ON), @@ -4499,12 +6652,37 @@ static const struct LevelUpMove sOctilleryLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_SOAK), LEVEL_UP_END }; +#endif //P_FAMILY_REMORAID +#if P_FAMILY_DELIBIRD static const struct LevelUpMove sDelibirdLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PRESENT), LEVEL_UP_MOVE(25, MOVE_DRILL_PECK), LEVEL_UP_END }; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sMantykeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(14, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_AQUA_RING), + LEVEL_UP_MOVE(46, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS static const struct LevelUpMove sMantineLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), @@ -4530,7 +6708,9 @@ static const struct LevelUpMove sMantineLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_MANTINE +#if P_FAMILY_SKARMORY static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -4550,7 +6730,9 @@ static const struct LevelUpMove sSkarmoryLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_NIGHT_SLASH), LEVEL_UP_END }; +#endif //P_FAMILY_SKARMORY +#if P_FAMILY_HOUNDOUR static const struct LevelUpMove sHoundourLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -4595,28 +6777,9 @@ static const struct LevelUpMove sHoundoomLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_INFERNO), LEVEL_UP_END }; +#endif //P_FAMILY_HOUNDOUR -static const struct LevelUpMove sKingdraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 5, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 9, MOVE_LEER), - LEVEL_UP_MOVE(13, MOVE_WATER_GUN), - LEVEL_UP_MOVE(17, MOVE_TWISTER), - LEVEL_UP_MOVE(21, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(26, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(31, MOVE_BRINE), - LEVEL_UP_MOVE(38, MOVE_AGILITY), - LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(52, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE(60, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - +#if P_FAMILY_PHANPY static const struct LevelUpMove sPhanpyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -4654,29 +6817,9 @@ static const struct LevelUpMove sDonphanLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_PHANPY -static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CONVERSION), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), - LEVEL_UP_MOVE(12, MOVE_AGILITY), - LEVEL_UP_MOVE(18, MOVE_RECOVER), - LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), - LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE(34, MOVE_RECYCLE), - LEVEL_UP_MOVE(40, MOVE_DISCHARGE), - LEVEL_UP_MOVE(45, MOVE_LOCK_ON), - LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - +#if P_FAMILY_STANTLER static const struct LevelUpMove sStantlerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -4697,6 +6840,29 @@ static const struct LevelUpMove sStantlerLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_8_CROSS_EVOS +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + 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(49, MOVE_IMPRISON), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_MEGAHORN), + LEVEL_UP_END +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SKETCH), LEVEL_UP_MOVE(11, MOVE_SKETCH), @@ -4710,97 +6876,9 @@ static const struct LevelUpMove sSmeargleLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_SKETCH), LEVEL_UP_END }; +#endif //P_FAMILY_SMEARGLE -static const struct LevelUpMove sTyrogueLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHitmontopLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ROLLING_KICK), - LEVEL_UP_MOVE( 1, MOVE_ROLLING_KICK), - LEVEL_UP_MOVE( 1, MOVE_ENDEAVOR), - LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE( 1, MOVE_DETECT), - LEVEL_UP_MOVE( 1, MOVE_REVENGE), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_PURSUIT), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(10, MOVE_PURSUIT), - LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(19, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(24, MOVE_FEINT), - LEVEL_UP_MOVE(28, MOVE_COUNTER), - LEVEL_UP_MOVE(33, MOVE_TRIPLE_KICK), - LEVEL_UP_MOVE(37, MOVE_AGILITY), - LEVEL_UP_MOVE(42, MOVE_GYRO_BALL), - LEVEL_UP_MOVE(46, MOVE_WIDE_GUARD), - LEVEL_UP_MOVE(46, MOVE_QUICK_GUARD), - LEVEL_UP_MOVE(50, MOVE_DETECT), - LEVEL_UP_MOVE(55, MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSmoochumLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 5, MOVE_LICK), - LEVEL_UP_MOVE( 8, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(11, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(15, MOVE_CONFUSION), - LEVEL_UP_MOVE(18, MOVE_SING), - LEVEL_UP_MOVE(21, MOVE_HEART_STAMP), - LEVEL_UP_MOVE(25, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(28, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(31, MOVE_LUCKY_CHANT), - LEVEL_UP_MOVE(35, MOVE_AVALANCHE), - LEVEL_UP_MOVE(38, MOVE_PSYCHIC), - LEVEL_UP_MOVE(41, MOVE_COPYCAT), - LEVEL_UP_MOVE(45, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(48, MOVE_BLIZZARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElekidLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), - LEVEL_UP_MOVE(12, MOVE_SWIFT), - LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), - LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(33, MOVE_DISCHARGE), - LEVEL_UP_MOVE(36, MOVE_SCREECH), - LEVEL_UP_MOVE(40, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(43, MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagbyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SMOG), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_EMBER), - LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), - LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), - LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE(33, MOVE_LAVA_PLUME), - LEVEL_UP_MOVE(36, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(43, MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - +#if P_FAMILY_MILTANK static const struct LevelUpMove sMiltankLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -4817,29 +6895,9 @@ static const struct LevelUpMove sMiltankLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_WAKE_UP_SLAP), LEVEL_UP_END }; +#endif //P_FAMILY_MILTANK -static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9, MOVE_REFRESH), - LEVEL_UP_MOVE(12, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(16, MOVE_SOFT_BOILED), - LEVEL_UP_MOVE(20, MOVE_BESTOW), - LEVEL_UP_MOVE(23, MOVE_MINIMIZE), - LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(31, MOVE_SING), - LEVEL_UP_MOVE(34, MOVE_FLING), - LEVEL_UP_MOVE(39, MOVE_HEAL_PULSE), - LEVEL_UP_MOVE(44, MOVE_EGG_BOMB), - LEVEL_UP_MOVE(50, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), - LEVEL_UP_MOVE(65, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - +#if P_FAMILY_RAIKOU static const struct LevelUpMove sRaikouLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EXTRASENSORY), LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), @@ -4859,7 +6917,9 @@ static const struct LevelUpMove sRaikouLevelUpLearnset[] = { LEVEL_UP_MOVE(85, MOVE_THUNDER), LEVEL_UP_END }; +#endif //P_FAMILY_RAIKOU +#if P_FAMILY_ENTEI static const struct LevelUpMove sEnteiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SACRED_FIRE), LEVEL_UP_MOVE( 1, MOVE_ERUPTION), @@ -4881,7 +6941,9 @@ static const struct LevelUpMove sEnteiLevelUpLearnset[] = { LEVEL_UP_MOVE(85, MOVE_ERUPTION), LEVEL_UP_END }; +#endif //P_FAMILY_ENTEI +#if P_FAMILY_SUICUNE static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), LEVEL_UP_MOVE( 1, MOVE_BITE), @@ -4902,7 +6964,9 @@ static const struct LevelUpMove sSuicuneLevelUpLearnset[] = { LEVEL_UP_MOVE(85, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_SUICUNE +#if P_FAMILY_LARVITAR static const struct LevelUpMove sLarvitarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -4964,7 +7028,9 @@ static const struct LevelUpMove sTyranitarLevelUpLearnset[] = { LEVEL_UP_MOVE(82, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_LARVITAR +#if P_FAMILY_LUGIA static const struct LevelUpMove sLugiaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), @@ -4984,7 +7050,9 @@ static const struct LevelUpMove sLugiaLevelUpLearnset[] = { LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), LEVEL_UP_END }; +#endif //P_FAMILY_LUGIA +#if P_FAMILY_HO_OH static const struct LevelUpMove sHoOhLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), @@ -5004,7 +7072,9 @@ static const struct LevelUpMove sHoOhLevelUpLearnset[] = { LEVEL_UP_MOVE(99, MOVE_SKY_ATTACK), LEVEL_UP_END }; +#endif //P_FAMILY_HO_OH +#if P_FAMILY_CELEBI static const struct LevelUpMove sCelebiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -5022,132 +7092,9 @@ static const struct LevelUpMove sCelebiLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), LEVEL_UP_END }; +#endif //P_FAMILY_CELEBI -static const struct LevelUpMove sSpecies252LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies253LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies254LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies255LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies256LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies257LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies258LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies259LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies260LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies261LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies262LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies263LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies264LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies265LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies266LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies267LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies268LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies269LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies270LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies271LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies272LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies273LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies274LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies275LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpecies276LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_END -}; - +#if P_FAMILY_TREECKO static const struct LevelUpMove sTreeckoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -5214,7 +7161,9 @@ static const struct LevelUpMove sSceptileLevelUpLearnset[] = { LEVEL_UP_MOVE(69, MOVE_SCREECH), LEVEL_UP_END }; +#endif //P_FAMILY_TREECKO +#if P_FAMILY_TORCHIC static const struct LevelUpMove sTorchicLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -5276,7 +7225,9 @@ static const struct LevelUpMove sBlazikenLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_FLARE_BLITZ), LEVEL_UP_END }; +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP static const struct LevelUpMove sMudkipLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -5336,7 +7287,9 @@ static const struct LevelUpMove sSwampertLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_HAMMER_ARM), LEVEL_UP_END }; +#endif //P_FAMILY_MUDKIP +#if P_FAMILY_POOCHYENA static const struct LevelUpMove sPoochyenaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_HOWL), @@ -5386,7 +7339,9 @@ static const struct LevelUpMove sMightyenaLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_PLAY_ROUGH), LEVEL_UP_END }; +#endif //P_FAMILY_POOCHYENA +#if P_FAMILY_ZIGZAGOON static const struct LevelUpMove sZigzagoonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -5431,6 +7386,77 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(21, MOVE_REST), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(38, MOVE_COUNTER), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), + LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_SNARL), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(23, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(42, MOVE_COUNTER), + LEVEL_UP_MOVE(49, MOVE_TAUNT), + LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE static const struct LevelUpMove sWurmpleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -5486,7 +7512,9 @@ static const struct LevelUpMove sDustoxLevelUpLearnset[] = { LEVEL_UP_MOVE(40, MOVE_QUIVER_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_WURMPLE +#if P_FAMILY_LOTAD static const struct LevelUpMove sLotadLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -5528,7 +7556,9 @@ static const struct LevelUpMove sLudicoloLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_NATURE_POWER), LEVEL_UP_END }; +#endif //P_FAMILY_LOTAD +#if P_FAMILY_SEEDOT static const struct LevelUpMove sSeedotLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BIDE), LEVEL_UP_MOVE( 3, MOVE_HARDEN), @@ -5567,65 +7597,9 @@ static const struct LevelUpMove sShiftryLevelUpLearnset[] = { LEVEL_UP_MOVE(44, MOVE_LEAF_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_SEEDOT -static const struct LevelUpMove sNincadaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 5, MOVE_ABSORB), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(25, MOVE_MIND_READER), - LEVEL_UP_MOVE(29, MOVE_BIDE), - LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(37, MOVE_DIG), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 0, MOVE_SCREECH), - LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 5, MOVE_ABSORB), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_AGILITY), - LEVEL_UP_MOVE(23, MOVE_SLASH), - LEVEL_UP_MOVE(29, MOVE_MIND_READER), - LEVEL_UP_MOVE(35, MOVE_BATON_PASS), - LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 5, MOVE_ABSORB), - LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_SPITE), - LEVEL_UP_MOVE(21, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(25, MOVE_MIND_READER), - LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(37, MOVE_GRUDGE), - LEVEL_UP_MOVE(41, MOVE_HEAL_BLOCK), - LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), - LEVEL_UP_END -}; - +#if P_FAMILY_TAILLOW static const struct LevelUpMove sTaillowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -5664,62 +7638,9 @@ static const struct LevelUpMove sSwellowLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_REVERSAL), LEVEL_UP_END }; +#endif //P_FAMILY_TAILLOW -static const struct LevelUpMove sShroomishLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(15, MOVE_HEADBUTT), - LEVEL_UP_MOVE(19, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(22, MOVE_WORRY_SEED), - LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(29, MOVE_GROWTH), - LEVEL_UP_MOVE(33, MOVE_TOXIC), - LEVEL_UP_MOVE(36, MOVE_SEED_BOMB), - LEVEL_UP_MOVE(40, MOVE_SPORE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBreloomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(15, MOVE_HEADBUTT), - LEVEL_UP_MOVE(19, MOVE_FEINT), - LEVEL_UP_MOVE(22, MOVE_COUNTER), - LEVEL_UP_MOVE(28, MOVE_FORCE_PALM), - LEVEL_UP_MOVE(33, MOVE_MIND_READER), - LEVEL_UP_MOVE(39, MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), - LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpindaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_COPYCAT), - LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(14, MOVE_PSYBEAM), - LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(23, MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(32, MOVE_TEETER_DANCE), - LEVEL_UP_MOVE(37, MOVE_UPROAR), - LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(50, MOVE_FLAIL), - LEVEL_UP_MOVE(55, MOVE_THRASH), - LEVEL_UP_END -}; - +#if P_FAMILY_WINGULL static const struct LevelUpMove sWingullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -5765,1733 +7686,9 @@ static const struct LevelUpMove sPelipperLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_HURRICANE), LEVEL_UP_END }; +#endif //P_FAMILY_WINGULL -static const struct LevelUpMove sSurskitLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(14, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(22, MOVE_AGILITY), - LEVEL_UP_MOVE(25, MOVE_MIST), - LEVEL_UP_MOVE(25, MOVE_HAZE), - LEVEL_UP_MOVE(30, MOVE_AQUA_JET), - LEVEL_UP_MOVE(35, MOVE_BATON_PASS), - LEVEL_UP_MOVE(38, MOVE_STICKY_WEB), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), - LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(14, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(17, MOVE_GUST), - LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER), - LEVEL_UP_MOVE(26, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(32, MOVE_SILVER_WIND), - LEVEL_UP_MOVE(38, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), - LEVEL_UP_MOVE(48, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWailmerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), - LEVEL_UP_MOVE(10, MOVE_ROLLOUT), - LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE(16, MOVE_ASTONISH), - LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(22, MOVE_MIST), - LEVEL_UP_MOVE(25, MOVE_BRINE), - LEVEL_UP_MOVE(29, MOVE_REST), - LEVEL_UP_MOVE(33, MOVE_WATER_SPOUT), - LEVEL_UP_MOVE(37, MOVE_AMNESIA), - LEVEL_UP_MOVE(41, MOVE_DIVE), - LEVEL_UP_MOVE(45, MOVE_BOUNCE), - LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(53, MOVE_HEAVY_SLAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWailordLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SOAK), - LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), - LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), - LEVEL_UP_MOVE(10, MOVE_ROLLOUT), - LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE(16, MOVE_ASTONISH), - LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(22, MOVE_MIST), - LEVEL_UP_MOVE(25, MOVE_BRINE), - LEVEL_UP_MOVE(29, MOVE_REST), - LEVEL_UP_MOVE(33, MOVE_WATER_SPOUT), - LEVEL_UP_MOVE(37, MOVE_AMNESIA), - LEVEL_UP_MOVE(44, MOVE_DIVE), - LEVEL_UP_MOVE(51, MOVE_BOUNCE), - LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(65, MOVE_HEAVY_SLAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSkittyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 7, MOVE_SING), - LEVEL_UP_MOVE(10, MOVE_ATTRACT), - LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE), - LEVEL_UP_MOVE(16, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(19, MOVE_COPYCAT), - LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_CHARM), - LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), - LEVEL_UP_MOVE(31, MOVE_ASSIST), - LEVEL_UP_MOVE(34, MOVE_COVET), - LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), - LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 1, MOVE_ATTRACT), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKecleonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THIEF), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 4, MOVE_BIND), - LEVEL_UP_MOVE( 7, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(10, MOVE_FEINT), - LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(18, MOVE_PSYBEAM), - LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(25, MOVE_SLASH), - LEVEL_UP_MOVE(30, MOVE_CAMOUFLAGE), - LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW), - LEVEL_UP_MOVE(38, MOVE_SCREECH), - LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE), - LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK), - LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(16, MOVE_PSYBEAM), - LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(25, MOVE_POWER_TRICK), - LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), - LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), - LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), - LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(40, MOVE_SANDSTORM), - LEVEL_UP_MOVE(43, MOVE_IMPRISON), - LEVEL_UP_MOVE(46, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sClaydolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK), - LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(16, MOVE_PSYBEAM), - LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(25, MOVE_POWER_TRICK), - LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), - LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), - LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), - LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(46, MOVE_SANDSTORM), - LEVEL_UP_MOVE(52, MOVE_IMPRISON), - LEVEL_UP_MOVE(58, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNosepassLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_BLOCK), - LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(16, MOVE_REST), - LEVEL_UP_MOVE(19, MOVE_SPARK), - LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(25, MOVE_POWER_GEM), - LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(31, MOVE_DISCHARGE), - LEVEL_UP_MOVE(34, MOVE_SANDSTORM), - LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(43, MOVE_LOCK_ON), - LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 4, MOVE_SMOG), - LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), - LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(15, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(22, MOVE_CURSE), - LEVEL_UP_MOVE(25, MOVE_LAVA_PLUME), - LEVEL_UP_MOVE(27, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(30, MOVE_PROTECT), - LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(40, MOVE_AMNESIA), - LEVEL_UP_MOVE(42, MOVE_FLAIL), - LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE), - LEVEL_UP_MOVE(47, MOVE_SHELL_SMASH), - LEVEL_UP_MOVE(50, MOVE_INFERNO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSableyeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(14, MOVE_DETECT), - LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(24, MOVE_PUNISHMENT), - LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(29, MOVE_SHADOW_CLAW), - LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(36, MOVE_POWER_GEM), - LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(41, MOVE_FOUL_PLAY), - LEVEL_UP_MOVE(44, MOVE_QUASH), - LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBarboachLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), - LEVEL_UP_MOVE(13, MOVE_MUD_BOMB), - LEVEL_UP_MOVE(15, MOVE_AMNESIA), - LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(20, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(25, MOVE_REST), - LEVEL_UP_MOVE(25, MOVE_SNORE), - LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(35, MOVE_MUDDY_WATER), - LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(44, MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_THRASH), - LEVEL_UP_MOVE( 1, MOVE_THRASH), - LEVEL_UP_MOVE( 1, MOVE_BELCH), - LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 1, MOVE_TICKLE), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), - LEVEL_UP_MOVE(13, MOVE_MUD_BOMB), - LEVEL_UP_MOVE(15, MOVE_AMNESIA), - LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(20, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(25, MOVE_REST), - LEVEL_UP_MOVE(25, MOVE_SNORE), - LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), - LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(52, MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_AGILITY), - LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS), - LEVEL_UP_MOVE(13, MOVE_LUCKY_CHANT), - LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(20, MOVE_ATTRACT), - LEVEL_UP_MOVE(22, MOVE_HEART_STAMP), - LEVEL_UP_MOVE(26, MOVE_FLAIL), - LEVEL_UP_MOVE(31, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(40, MOVE_AQUA_RING), - LEVEL_UP_MOVE(42, MOVE_SOAK), - LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(49, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCorphishLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 5, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP), - LEVEL_UP_MOVE(10, MOVE_LEER), - LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(17, MOVE_PROTECT), - LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(31, MOVE_RAZOR_SHELL), - LEVEL_UP_MOVE(34, MOVE_TAUNT), - LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(39, MOVE_CRUNCH), - LEVEL_UP_MOVE(43, MOVE_CRABHAMMER), - LEVEL_UP_MOVE(48, MOVE_GUILLOTINE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SWIFT), - LEVEL_UP_MOVE( 1, MOVE_SWIFT), - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP), - LEVEL_UP_MOVE(10, MOVE_LEER), - LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(17, MOVE_PROTECT), - LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), - LEVEL_UP_MOVE(36, MOVE_TAUNT), - LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(43, MOVE_CRUNCH), - LEVEL_UP_MOVE(48, MOVE_CRABHAMMER), - LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFeebasLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE(15, MOVE_TACKLE), - LEVEL_UP_MOVE(30, MOVE_FLAIL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMiloticLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1, MOVE_REFRESH), - LEVEL_UP_MOVE( 4, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 7, MOVE_REFRESH), - LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), - LEVEL_UP_MOVE(14, MOVE_TWISTER), - LEVEL_UP_MOVE(17, MOVE_AQUA_RING), - LEVEL_UP_MOVE(21, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(24, MOVE_DRAGON_TAIL), - LEVEL_UP_MOVE(27, MOVE_RECOVER), - LEVEL_UP_MOVE(31, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(34, MOVE_ATTRACT), - LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(41, MOVE_COIL), - LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(47, MOVE_RAIN_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 4, MOVE_RAGE), - LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(11, MOVE_AQUA_JET), - LEVEL_UP_MOVE(15, MOVE_ASSURANCE), - LEVEL_UP_MOVE(18, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_SWAGGER), - LEVEL_UP_MOVE(25, MOVE_ICE_FANG), - LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(32, MOVE_POISON_FANG), - LEVEL_UP_MOVE(36, MOVE_CRUNCH), - LEVEL_UP_MOVE(39, MOVE_AGILITY), - LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SLASH), - LEVEL_UP_MOVE( 1, MOVE_SLASH), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_FEINT), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_RAGE), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 4, MOVE_RAGE), - LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(11, MOVE_AQUA_JET), - LEVEL_UP_MOVE(15, MOVE_ASSURANCE), - LEVEL_UP_MOVE(18, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_SWAGGER), - LEVEL_UP_MOVE(25, MOVE_ICE_FANG), - LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(34, MOVE_POISON_FANG), - LEVEL_UP_MOVE(40, MOVE_CRUNCH), - LEVEL_UP_MOVE(45, MOVE_AGILITY), - LEVEL_UP_MOVE(51, MOVE_SKULL_BASH), - LEVEL_UP_MOVE(56, MOVE_TAUNT), - LEVEL_UP_MOVE(62, MOVE_NIGHT_SLASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), - LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(19, MOVE_DIG), - LEVEL_UP_MOVE(22, MOVE_CRUNCH), - LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(29, MOVE_FEINT), - LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(36, MOVE_SANDSTORM), - LEVEL_UP_MOVE(40, MOVE_SUPERPOWER), - LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE(47, MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVibravaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), - LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(22, MOVE_SCREECH), - LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(29, MOVE_BUG_BUZZ), - LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(36, MOVE_SANDSTORM), - LEVEL_UP_MOVE(40, MOVE_UPROAR), - LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE(47, MOVE_BOOMBURST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFlygonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), - LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), - LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(22, MOVE_SCREECH), - LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(29, MOVE_DRAGON_TAIL), - LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(36, MOVE_SANDSTORM), - LEVEL_UP_MOVE(40, MOVE_UPROAR), - LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), - LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), - LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), - LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(28, MOVE_SMELLING_SALTS), - LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(34, MOVE_WAKE_UP_SLAP), - LEVEL_UP_MOVE(37, MOVE_ENDURE), - LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE(43, MOVE_REVERSAL), - LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BRINE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), - LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), - LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), - LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), - LEVEL_UP_MOVE(26, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(30, MOVE_SMELLING_SALTS), - LEVEL_UP_MOVE(34, MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE(38, MOVE_WAKE_UP_SLAP), - LEVEL_UP_MOVE(42, MOVE_ENDURE), - LEVEL_UP_MOVE(46, MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE(50, MOVE_REVERSAL), - LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 4, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_HOWL), - LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_SPARK), - LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG), - LEVEL_UP_MOVE(24, MOVE_BITE), - LEVEL_UP_MOVE(29, MOVE_DISCHARGE), - LEVEL_UP_MOVE(34, MOVE_ROAR), - LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), - LEVEL_UP_MOVE(44, MOVE_CHARGE), - LEVEL_UP_MOVE(49, MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sManectricLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 4, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_HOWL), - LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(13, MOVE_SPARK), - LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG), - LEVEL_UP_MOVE(24, MOVE_BITE), - LEVEL_UP_MOVE(30, MOVE_DISCHARGE), - LEVEL_UP_MOVE(36, MOVE_ROAR), - LEVEL_UP_MOVE(42, MOVE_WILD_CHARGE), - LEVEL_UP_MOVE(48, MOVE_CHARGE), - LEVEL_UP_MOVE(54, MOVE_THUNDER), - LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNumelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_EMBER), - LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), - LEVEL_UP_MOVE(19, MOVE_AMNESIA), - LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), - LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(29, MOVE_CURSE), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(36, MOVE_YAWN), - LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCameruptLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 1, MOVE_FISSURE), - LEVEL_UP_MOVE( 1, MOVE_ERUPTION), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 8, MOVE_EMBER), - LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), - LEVEL_UP_MOVE(19, MOVE_AMNESIA), - LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), - LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(29, MOVE_CURSE), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(39, MOVE_YAWN), - LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(52, MOVE_ERUPTION), - LEVEL_UP_MOVE(59, MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSphealLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), - LEVEL_UP_MOVE( 9, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_ICE_BALL), - LEVEL_UP_MOVE(17, MOVE_BRINE), - LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(31, MOVE_REST), - LEVEL_UP_MOVE(31, MOVE_SNORE), - LEVEL_UP_MOVE(36, MOVE_HAIL), - LEVEL_UP_MOVE(41, MOVE_BLIZZARD), - LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSealeoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SWAGGER), - LEVEL_UP_MOVE( 1, MOVE_SWAGGER), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), - LEVEL_UP_MOVE( 9, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_ICE_BALL), - LEVEL_UP_MOVE(17, MOVE_BRINE), - LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(31, MOVE_REST), - LEVEL_UP_MOVE(31, MOVE_SNORE), - LEVEL_UP_MOVE(38, MOVE_HAIL), - LEVEL_UP_MOVE(45, MOVE_BLIZZARD), - LEVEL_UP_MOVE(52, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWalreinLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ICE_FANG), - LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), - LEVEL_UP_MOVE( 1, MOVE_SWAGGER), - LEVEL_UP_MOVE( 1, MOVE_CRUNCH), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), - LEVEL_UP_MOVE( 7, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_ICE_BALL), - LEVEL_UP_MOVE(19, MOVE_BRINE), - LEVEL_UP_MOVE(19, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(31, MOVE_REST), - LEVEL_UP_MOVE(31, MOVE_SNORE), - LEVEL_UP_MOVE(38, MOVE_HAIL), - LEVEL_UP_MOVE(49, MOVE_BLIZZARD), - LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCacneaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 4, MOVE_ABSORB), - LEVEL_UP_MOVE( 7, MOVE_GROWTH), - LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(22, MOVE_INGRAIN), - LEVEL_UP_MOVE(26, MOVE_PAYBACK), - LEVEL_UP_MOVE(30, MOVE_SPIKES), - LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(46, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(50, MOVE_SANDSTORM), - LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCacturneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD), - LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), - LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 1, MOVE_REVENGE), - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE( 4, MOVE_ABSORB), - LEVEL_UP_MOVE( 7, MOVE_GROWTH), - LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(22, MOVE_INGRAIN), - LEVEL_UP_MOVE(26, MOVE_PAYBACK), - LEVEL_UP_MOVE(30, MOVE_SPIKES), - LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE), - LEVEL_UP_MOVE(54, MOVE_SANDSTORM), - LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(14, MOVE_ICY_WIND), - LEVEL_UP_MOVE(19, MOVE_BITE), - LEVEL_UP_MOVE(23, MOVE_ICE_FANG), - LEVEL_UP_MOVE(28, MOVE_HEADBUTT), - LEVEL_UP_MOVE(32, MOVE_PROTECT), - LEVEL_UP_MOVE(37, MOVE_FROST_BREATH), - LEVEL_UP_MOVE(41, MOVE_CRUNCH), - LEVEL_UP_MOVE(46, MOVE_BLIZZARD), - LEVEL_UP_MOVE(50, MOVE_HAIL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGlalieLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_FREEZE_DRY), - LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), - LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), - LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(14, MOVE_ICY_WIND), - LEVEL_UP_MOVE(19, MOVE_BITE), - LEVEL_UP_MOVE(23, MOVE_ICE_FANG), - LEVEL_UP_MOVE(28, MOVE_HEADBUTT), - LEVEL_UP_MOVE(32, MOVE_PROTECT), - LEVEL_UP_MOVE(37, MOVE_FROST_BREATH), - LEVEL_UP_MOVE(41, MOVE_CRUNCH), - LEVEL_UP_MOVE(48, MOVE_BLIZZARD), - LEVEL_UP_MOVE(54, MOVE_HAIL), - LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), - LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK), - LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH), - LEVEL_UP_MOVE(13, MOVE_PSYWAVE), - LEVEL_UP_MOVE(17, MOVE_EMBARGO), - LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(29, MOVE_PSYCHIC), - LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), - LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(45, MOVE_EXPLOSION), - LEVEL_UP_MOVE(49, MOVE_MAGIC_ROOM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSolrockLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 5, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH), - LEVEL_UP_MOVE(13, MOVE_PSYWAVE), - LEVEL_UP_MOVE(17, MOVE_EMBARGO), - LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(29, MOVE_PSYCHIC), - LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), - LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), - LEVEL_UP_MOVE(45, MOVE_EXPLOSION), - LEVEL_UP_MOVE(49, MOVE_WONDER_ROOM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAzurillLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 2, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 7, MOVE_BUBBLE), - LEVEL_UP_MOVE(10, MOVE_CHARM), - LEVEL_UP_MOVE(13, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(20, MOVE_SLAM), - LEVEL_UP_MOVE(23, MOVE_BOUNCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), - LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(14, MOVE_PSYBEAM), - LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(29, MOVE_POWER_GEM), - LEVEL_UP_MOVE(29, MOVE_REST), - LEVEL_UP_MOVE(33, MOVE_SNORE), - LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), - LEVEL_UP_MOVE(40, MOVE_PAYBACK), - LEVEL_UP_MOVE(44, MOVE_PSYCHIC), - LEVEL_UP_MOVE(50, MOVE_BOUNCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_TEETER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_BELCH), - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), - LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), - LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(14, MOVE_PSYBEAM), - LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(29, MOVE_POWER_GEM), - LEVEL_UP_MOVE(35, MOVE_REST), - LEVEL_UP_MOVE(35, MOVE_SNORE), - LEVEL_UP_MOVE(42, MOVE_PSYSHOCK), - LEVEL_UP_MOVE(46, MOVE_PAYBACK), - LEVEL_UP_MOVE(52, MOVE_PSYCHIC), - LEVEL_UP_MOVE(60, MOVE_BOUNCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPlusleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_NUZZLE), - LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 7, MOVE_SPARK), - LEVEL_UP_MOVE(10, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_BESTOW), - LEVEL_UP_MOVE(16, MOVE_SWIFT), - LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), - LEVEL_UP_MOVE(22, MOVE_COPYCAT), - LEVEL_UP_MOVE(25, MOVE_CHARM), - LEVEL_UP_MOVE(28, MOVE_CHARGE), - LEVEL_UP_MOVE(31, MOVE_DISCHARGE), - LEVEL_UP_MOVE(34, MOVE_BATON_PASS), - LEVEL_UP_MOVE(37, MOVE_AGILITY), - LEVEL_UP_MOVE(40, MOVE_LAST_RESORT), - LEVEL_UP_MOVE(43, MOVE_THUNDER), - LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMinunLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_NUZZLE), - LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 7, MOVE_SPARK), - LEVEL_UP_MOVE(10, MOVE_ENCORE), - LEVEL_UP_MOVE(13, MOVE_SWITCHEROO), - LEVEL_UP_MOVE(16, MOVE_SWIFT), - LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), - LEVEL_UP_MOVE(22, MOVE_COPYCAT), - LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE(28, MOVE_CHARGE), - LEVEL_UP_MOVE(31, MOVE_DISCHARGE), - LEVEL_UP_MOVE(34, MOVE_BATON_PASS), - LEVEL_UP_MOVE(37, MOVE_AGILITY), - LEVEL_UP_MOVE(40, MOVE_TRUMP_CARD), - LEVEL_UP_MOVE(43, MOVE_THUNDER), - LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMawileLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), - LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 1, MOVE_TAUNT), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 5, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 9, MOVE_BITE), - LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(17, MOVE_VISE_GRIP), - LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_BATON_PASS), - LEVEL_UP_MOVE(29, MOVE_CRUNCH), - LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(41, MOVE_STOCKPILE), - LEVEL_UP_MOVE(41, MOVE_SWALLOW), - LEVEL_UP_MOVE(41, MOVE_SPIT_UP), - LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMedititeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 4, MOVE_MEDITATE), - LEVEL_UP_MOVE( 7, MOVE_CONFUSION), - LEVEL_UP_MOVE( 9, MOVE_DETECT), - LEVEL_UP_MOVE(12, MOVE_ENDURE), - LEVEL_UP_MOVE(15, MOVE_FEINT), - LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), - LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), - LEVEL_UP_MOVE(23, MOVE_CALM_MIND), - LEVEL_UP_MOVE(25, MOVE_MIND_READER), - LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), - LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), - LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), - LEVEL_UP_MOVE(39, MOVE_REVERSAL), - LEVEL_UP_MOVE(41, MOVE_RECOVER), - LEVEL_UP_MOVE(44, MOVE_COUNTER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMedichamLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_BIDE), - LEVEL_UP_MOVE( 1, MOVE_MEDITATE), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_DETECT), - LEVEL_UP_MOVE( 4, MOVE_MEDITATE), - LEVEL_UP_MOVE( 7, MOVE_CONFUSION), - LEVEL_UP_MOVE( 9, MOVE_DETECT), - LEVEL_UP_MOVE(12, MOVE_ENDURE), - LEVEL_UP_MOVE(15, MOVE_FEINT), - LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), - LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), - LEVEL_UP_MOVE(23, MOVE_CALM_MIND), - LEVEL_UP_MOVE(25, MOVE_MIND_READER), - LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), - LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), - LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), - LEVEL_UP_MOVE(42, MOVE_REVERSAL), - LEVEL_UP_MOVE(47, MOVE_RECOVER), - LEVEL_UP_MOVE(53, MOVE_COUNTER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSwabluLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 3, MOVE_ASTONISH), - LEVEL_UP_MOVE( 5, MOVE_SING), - LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), - LEVEL_UP_MOVE(14, MOVE_MIST), - LEVEL_UP_MOVE(17, MOVE_ROUND), - LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT), - LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(26, MOVE_REFRESH), - LEVEL_UP_MOVE(30, MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD), - LEVEL_UP_MOVE(38, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(42, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(46, MOVE_MOONBLAST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAltariaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_PLUCK), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_SING), - LEVEL_UP_MOVE( 3, MOVE_ASTONISH), - LEVEL_UP_MOVE( 5, MOVE_SING), - LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), - LEVEL_UP_MOVE(14, MOVE_MIST), - LEVEL_UP_MOVE(17, MOVE_ROUND), - LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT), - LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(26, MOVE_REFRESH), - LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD), - LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), - LEVEL_UP_MOVE(52, MOVE_MOONBLAST), - LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWynautLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SPLASH), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE(15, MOVE_COUNTER), - LEVEL_UP_MOVE(15, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE(15, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(15, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDuskullLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 6, MOVE_DISABLE), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(14, MOVE_FORESIGHT), - LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(22, MOVE_PURSUIT), - LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(33, MOVE_CURSE), - LEVEL_UP_MOVE(38, MOVE_HEX), - LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(49, MOVE_PAYBACK), - LEVEL_UP_MOVE(54, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_GRAVITY), - LEVEL_UP_MOVE( 1, MOVE_BIND), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 6, MOVE_DISABLE), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(14, MOVE_FORESIGHT), - LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(22, MOVE_PURSUIT), - LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(33, MOVE_CURSE), - LEVEL_UP_MOVE(40, MOVE_HEX), - LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(52, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(57, MOVE_PAYBACK), - LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 4, MOVE_GROWTH), - LEVEL_UP_MOVE( 7, MOVE_POISON_STING), - LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(22, MOVE_GRASS_WHISTLE), - LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), - LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(34, MOVE_INGRAIN), - LEVEL_UP_MOVE(37, MOVE_PETAL_BLIZZARD), - LEVEL_UP_MOVE(40, MOVE_TOXIC), - LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), - LEVEL_UP_MOVE(46, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(50, MOVE_PETAL_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlakothLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 6, MOVE_ENCORE), - LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), - LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(17, MOVE_AMNESIA), - LEVEL_UP_MOVE(22, MOVE_COVET), - LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), - LEVEL_UP_MOVE(30, MOVE_COUNTER), - LEVEL_UP_MOVE(33, MOVE_FLAIL), - LEVEL_UP_MOVE(38, MOVE_PLAY_ROUGH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVigorothLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_REVERSAL), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 1, MOVE_UPROAR), - LEVEL_UP_MOVE( 6, MOVE_ENCORE), - LEVEL_UP_MOVE( 9, MOVE_UPROAR), - LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_ENDURE), - LEVEL_UP_MOVE(23, MOVE_SLASH), - LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), - LEVEL_UP_MOVE(33, MOVE_COUNTER), - LEVEL_UP_MOVE(37, MOVE_FOCUS_PUNCH), - LEVEL_UP_MOVE(43, MOVE_REVERSAL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlakingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SWAGGER), - LEVEL_UP_MOVE( 1, MOVE_SWAGGER), - LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), - LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), - LEVEL_UP_MOVE( 1, MOVE_FLING), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), - LEVEL_UP_MOVE( 6, MOVE_ENCORE), - LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), - LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(17, MOVE_AMNESIA), - LEVEL_UP_MOVE(23, MOVE_COVET), - LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), - LEVEL_UP_MOVE(33, MOVE_COUNTER), - LEVEL_UP_MOVE(39, MOVE_FLAIL), - LEVEL_UP_MOVE(47, MOVE_FLING), - LEVEL_UP_MOVE(53, MOVE_PUNISHMENT), - LEVEL_UP_MOVE(61, MOVE_HAMMER_ARM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGulpinLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 5, MOVE_YAWN), - LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), - LEVEL_UP_MOVE(10, MOVE_SLUDGE), - LEVEL_UP_MOVE(12, MOVE_AMNESIA), - LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE(20, MOVE_ENCORE), - LEVEL_UP_MOVE(25, MOVE_TOXIC), - LEVEL_UP_MOVE(28, MOVE_STOCKPILE), - LEVEL_UP_MOVE(28, MOVE_SPIT_UP), - LEVEL_UP_MOVE(28, MOVE_SWALLOW), - LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), - LEVEL_UP_MOVE(41, MOVE_BELCH), - LEVEL_UP_MOVE(44, MOVE_WRING_OUT), - LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSwalotLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), - LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), - LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_YAWN), - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_SLUDGE), - LEVEL_UP_MOVE( 5, MOVE_YAWN), - LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), - LEVEL_UP_MOVE(10, MOVE_SLUDGE), - LEVEL_UP_MOVE(12, MOVE_AMNESIA), - LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE(20, MOVE_ENCORE), - LEVEL_UP_MOVE(25, MOVE_TOXIC), - LEVEL_UP_MOVE(30, MOVE_STOCKPILE), - LEVEL_UP_MOVE(30, MOVE_SPIT_UP), - LEVEL_UP_MOVE(30, MOVE_SWALLOW), - LEVEL_UP_MOVE(37, MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID), - LEVEL_UP_MOVE(49, MOVE_BELCH), - LEVEL_UP_MOVE(54, MOVE_WRING_OUT), - LEVEL_UP_MOVE(61, MOVE_GUNK_SHOT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTropiusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 6, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(10, MOVE_STOMP), - LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), - LEVEL_UP_MOVE(26, MOVE_LEAF_TORNADO), - LEVEL_UP_MOVE(30, MOVE_NATURAL_GIFT), - LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(46, MOVE_BESTOW), - LEVEL_UP_MOVE(50, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), - LEVEL_UP_MOVE(61, MOVE_LEAF_STORM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWhismurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), - LEVEL_UP_MOVE( 8, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_HOWL), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(22, MOVE_STOMP), - LEVEL_UP_MOVE(25, MOVE_UPROAR), - LEVEL_UP_MOVE(29, MOVE_ROAR), - LEVEL_UP_MOVE(32, MOVE_REST), - LEVEL_UP_MOVE(36, MOVE_SLEEP_TALK), - LEVEL_UP_MOVE(39, MOVE_HYPER_VOICE), - LEVEL_UP_MOVE(43, MOVE_SYNCHRONOISE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLoudredLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_HOWL), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(23, MOVE_STOMP), - LEVEL_UP_MOVE(27, MOVE_UPROAR), - LEVEL_UP_MOVE(32, MOVE_ROAR), - LEVEL_UP_MOVE(36, MOVE_REST), - LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), - LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), - LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sExploudLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_CRUNCH), - LEVEL_UP_MOVE( 1, MOVE_CRUNCH), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), - LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), - LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_HOWL), - LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_HOWL), - LEVEL_UP_MOVE(15, MOVE_SCREECH), - LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(23, MOVE_STOMP), - LEVEL_UP_MOVE(27, MOVE_UPROAR), - LEVEL_UP_MOVE(32, MOVE_ROAR), - LEVEL_UP_MOVE(36, MOVE_REST), - LEVEL_UP_MOVE(42, MOVE_SLEEP_TALK), - LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), - LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), - LEVEL_UP_MOVE(58, MOVE_BOOMBURST), - LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sClamperlLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_CLAMP), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHuntailLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 5, MOVE_SCREECH), - LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(11, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(16, MOVE_ICE_FANG), - LEVEL_UP_MOVE(19, MOVE_BRINE), - LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(26, MOVE_DIVE), - LEVEL_UP_MOVE(29, MOVE_BATON_PASS), - LEVEL_UP_MOVE(34, MOVE_CRUNCH), - LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(45, MOVE_COIL), - LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 9, MOVE_AGILITY), - LEVEL_UP_MOVE(11, MOVE_DRAINING_KISS), - LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(16, MOVE_AMNESIA), - LEVEL_UP_MOVE(19, MOVE_AQUA_RING), - LEVEL_UP_MOVE(23, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(26, MOVE_DIVE), - LEVEL_UP_MOVE(29, MOVE_BATON_PASS), - LEVEL_UP_MOVE(34, MOVE_PSYCHIC), - LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(45, MOVE_COIL), - LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAbsolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), - LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_FEINT), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 4, MOVE_LEER), - LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(10, MOVE_PURSUIT), - LEVEL_UP_MOVE(13, MOVE_TAUNT), - LEVEL_UP_MOVE(16, MOVE_BITE), - LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(22, MOVE_SLASH), - LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(29, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(33, MOVE_DETECT), - LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), - LEVEL_UP_MOVE(41, MOVE_ME_FIRST), - LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(49, MOVE_RAZOR_WIND), - LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(57, MOVE_PERISH_SONG), - LEVEL_UP_END -}; - -static const struct LevelUpMove sShuppetLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 4, MOVE_SCREECH), - LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(10, MOVE_SPITE), - LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(22, MOVE_HEX), - LEVEL_UP_MOVE(26, MOVE_CURSE), - LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(34, MOVE_EMBARGO), - LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(42, MOVE_SNATCH), - LEVEL_UP_MOVE(46, MOVE_GRUDGE), - LEVEL_UP_MOVE(50, MOVE_TRICK), - LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBanetteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), - LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 1, MOVE_SCREECH), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 1, MOVE_SPITE), - LEVEL_UP_MOVE( 4, MOVE_SCREECH), - LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(10, MOVE_SPITE), - LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(22, MOVE_HEX), - LEVEL_UP_MOVE(26, MOVE_CURSE), - LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(34, MOVE_EMBARGO), - LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(46, MOVE_SNATCH), - LEVEL_UP_MOVE(52, MOVE_GRUDGE), - LEVEL_UP_MOVE(58, MOVE_TRICK), - LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSeviperLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_SWAGGER), - LEVEL_UP_MOVE( 4, MOVE_BITE), - LEVEL_UP_MOVE( 6, MOVE_LICK), - LEVEL_UP_MOVE( 9, MOVE_POISON_TAIL), - LEVEL_UP_MOVE(11, MOVE_FEINT), - LEVEL_UP_MOVE(14, MOVE_SCREECH), - LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), - LEVEL_UP_MOVE(19, MOVE_GLARE), - LEVEL_UP_MOVE(21, MOVE_POISON_FANG), - LEVEL_UP_MOVE(24, MOVE_VENOM_DRENCH), - LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), - LEVEL_UP_MOVE(31, MOVE_POISON_JAB), - LEVEL_UP_MOVE(34, MOVE_HAZE), - LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(39, MOVE_CRUNCH), - LEVEL_UP_MOVE(41, MOVE_BELCH), - LEVEL_UP_MOVE(44, MOVE_COIL), - LEVEL_UP_MOVE(46, MOVE_WRING_OUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sZangooseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(12, MOVE_PURSUIT), - LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(19, MOVE_SLASH), - LEVEL_UP_MOVE(22, MOVE_REVENGE), - LEVEL_UP_MOVE(26, MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(33, MOVE_EMBARGO), - LEVEL_UP_MOVE(36, MOVE_DETECT), - LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), - LEVEL_UP_MOVE(43, MOVE_TAUNT), - LEVEL_UP_MOVE(47, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FLAIL), - LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(26, MOVE_DIVE), - LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(35, MOVE_YAWN), - LEVEL_UP_MOVE(41, MOVE_REST), - LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAronLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), - LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(16, MOVE_PROTECT), - LEVEL_UP_MOVE(19, MOVE_ROAR), - LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(34, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), - LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), - LEVEL_UP_MOVE(49, MOVE_METAL_BURST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLaironLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), - LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(16, MOVE_PROTECT), - LEVEL_UP_MOVE(19, MOVE_ROAR), - LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(35, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), - LEVEL_UP_MOVE(51, MOVE_HEAVY_SLAM), - LEVEL_UP_MOVE(55, MOVE_METAL_BURST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAggronLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), - LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), - LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(16, MOVE_PROTECT), - LEVEL_UP_MOVE(19, MOVE_ROAR), - LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(35, MOVE_IRON_TAIL), - LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(51, MOVE_AUTOTOMIZE), - LEVEL_UP_MOVE(57, MOVE_HEAVY_SLAM), - LEVEL_UP_MOVE(63, MOVE_METAL_BURST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCastformLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE(10, MOVE_WATER_GUN), - LEVEL_UP_MOVE(10, MOVE_EMBER), - LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(15, MOVE_HEADBUTT), - LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(20, MOVE_HAIL), - LEVEL_UP_MOVE(25, MOVE_WEATHER_BALL), - LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(35, MOVE_FIRE_BLAST), - LEVEL_UP_MOVE(35, MOVE_BLIZZARD), - LEVEL_UP_MOVE(45, MOVE_HURRICANE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FLASH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), - LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(22, MOVE_TAIL_GLOW), - LEVEL_UP_MOVE(26, MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE(29, MOVE_PROTECT), - LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), - LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), - LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(50, MOVE_INFESTATION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 9, MOVE_CHARM), - LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), - LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), - LEVEL_UP_MOVE(22, MOVE_WISH), - LEVEL_UP_MOVE(26, MOVE_ENCORE), - LEVEL_UP_MOVE(29, MOVE_FLATTER), - LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), - LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), - LEVEL_UP_MOVE(47, MOVE_COVET), - LEVEL_UP_MOVE(50, MOVE_INFESTATION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLileepLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 5, MOVE_ACID), - LEVEL_UP_MOVE( 9, MOVE_INGRAIN), - LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(21, MOVE_BRINE), - LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID), - LEVEL_UP_MOVE(36, MOVE_AMNESIA), - LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(46, MOVE_STOCKPILE), - LEVEL_UP_MOVE(46, MOVE_SPIT_UP), - LEVEL_UP_MOVE(46, MOVE_SWALLOW), - LEVEL_UP_MOVE(52, MOVE_WRING_OUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCradilyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1, MOVE_ACID), - LEVEL_UP_MOVE( 1, MOVE_INGRAIN), - LEVEL_UP_MOVE( 5, MOVE_ACID), - LEVEL_UP_MOVE( 9, MOVE_INGRAIN), - LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(21, MOVE_BRINE), - LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID), - LEVEL_UP_MOVE(36, MOVE_AMNESIA), - LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(52, MOVE_STOCKPILE), - LEVEL_UP_MOVE(52, MOVE_SPIT_UP), - LEVEL_UP_MOVE(52, MOVE_SWALLOW), - LEVEL_UP_MOVE(61, MOVE_WRING_OUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAnorithLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), - LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(25, MOVE_BUG_BITE), - LEVEL_UP_MOVE(29, MOVE_BRINE), - LEVEL_UP_MOVE(34, MOVE_SLASH), - LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), - LEVEL_UP_MOVE(49, MOVE_PROTECT), - LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), - LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(25, MOVE_BUG_BITE), - LEVEL_UP_MOVE(29, MOVE_BRINE), - LEVEL_UP_MOVE(34, MOVE_SLASH), - LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE(46, MOVE_X_SCISSOR), - LEVEL_UP_MOVE(53, MOVE_PROTECT), - LEVEL_UP_MOVE(61, MOVE_ROCK_BLAST), - LEVEL_UP_END -}; - +#if P_FAMILY_RALTS static const struct LevelUpMove sRaltsLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_CONFUSION), @@ -7566,6 +7763,2102 @@ static const struct LevelUpMove sGardevoirLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sGalladeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 4, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 9, MOVE_TELEPORT), + LEVEL_UP_MOVE(11, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(31, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_FEINT), + LEVEL_UP_MOVE(44, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(49, MOVE_PROTECT), + LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(58, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const struct LevelUpMove sSurskitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(17, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(22, MOVE_AGILITY), + LEVEL_UP_MOVE(25, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_HAZE), + LEVEL_UP_MOVE(30, MOVE_AQUA_JET), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(38, MOVE_STICKY_WEB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMasquerainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(14, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(17, MOVE_GUST), + LEVEL_UP_MOVE(22, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(22, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE(26, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(32, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(38, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(42, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(48, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const struct LevelUpMove sShroomishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(22, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_GROWTH), + LEVEL_UP_MOVE(33, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBreloomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MACH_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 5, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(12, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(19, MOVE_FEINT), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(33, MOVE_MIND_READER), + LEVEL_UP_MOVE(39, MOVE_SKY_UPPERCUT), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(50, MOVE_DYNAMIC_PUNCH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const struct LevelUpMove sSlakothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_COVET), + LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(30, MOVE_COUNTER), + LEVEL_UP_MOVE(33, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVigorothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_UPROAR), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_UPROAR), + LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_ENDURE), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(37, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlakingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_PUNISHMENT), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_ENCORE), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 6, MOVE_ENCORE), + LEVEL_UP_MOVE( 9, MOVE_SLACK_OFF), + LEVEL_UP_MOVE(14, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(17, MOVE_AMNESIA), + LEVEL_UP_MOVE(23, MOVE_COVET), + LEVEL_UP_MOVE(27, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(33, MOVE_COUNTER), + LEVEL_UP_MOVE(39, MOVE_FLAIL), + LEVEL_UP_MOVE(47, MOVE_FLING), + LEVEL_UP_MOVE(53, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(61, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA +static const struct LevelUpMove sNincadaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(21, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(29, MOVE_BIDE), + LEVEL_UP_MOVE(33, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(37, MOVE_DIG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNinjaskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 0, MOVE_SCREECH), + LEVEL_UP_MOVE( 0, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_AGILITY), + LEVEL_UP_MOVE(23, MOVE_SLASH), + LEVEL_UP_MOVE(29, MOVE_MIND_READER), + LEVEL_UP_MOVE(35, MOVE_BATON_PASS), + LEVEL_UP_MOVE(41, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(47, MOVE_X_SCISSOR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShedinjaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(17, MOVE_SPITE), + LEVEL_UP_MOVE(21, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(29, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(37, MOVE_GRUDGE), + LEVEL_UP_MOVE(41, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(45, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR +static const struct LevelUpMove sWhismurLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_STOMP), + LEVEL_UP_MOVE(25, MOVE_UPROAR), + LEVEL_UP_MOVE(29, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_REST), + LEVEL_UP_MOVE(36, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(39, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(43, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLoudredLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(45, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sExploudLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_BOOMBURST), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(23, MOVE_STOMP), + LEVEL_UP_MOVE(27, MOVE_UPROAR), + LEVEL_UP_MOVE(32, MOVE_ROAR), + LEVEL_UP_MOVE(36, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(47, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(53, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(58, MOVE_BOOMBURST), + LEVEL_UP_MOVE(64, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const struct LevelUpMove sMakuhitaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(25, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(28, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(31, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(34, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(37, MOVE_ENDURE), + LEVEL_UP_MOVE(40, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHariyamaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BRINE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(10, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(13, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(22, MOVE_VITAL_THROW), + LEVEL_UP_MOVE(26, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(30, MOVE_SMELLING_SALTS), + LEVEL_UP_MOVE(34, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(38, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(42, MOVE_ENDURE), + LEVEL_UP_MOVE(46, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(50, MOVE_REVERSAL), + LEVEL_UP_MOVE(54, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const struct LevelUpMove sNosepassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sProbopassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_BLOCK), + LEVEL_UP_MOVE(10, MOVE_MAGNET_BOMB), + LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(16, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_SPARK), + LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_POWER_GEM), + LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(43, MOVE_LOCK_ON), + LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const struct LevelUpMove sSkittyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 7, MOVE_SING), + LEVEL_UP_MOVE(10, MOVE_ATTRACT), + LEVEL_UP_MOVE(13, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_SLAP), + LEVEL_UP_MOVE(19, MOVE_COPYCAT), + LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(31, MOVE_ASSIST), + LEVEL_UP_MOVE(34, MOVE_COVET), + LEVEL_UP_MOVE(37, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(46, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDelcattyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_ATTRACT), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_SLAP), + LEVEL_UP_END +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const struct LevelUpMove sSableyeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_FORESIGHT), + LEVEL_UP_MOVE( 6, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(11, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(14, MOVE_DETECT), + LEVEL_UP_MOVE(16, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(21, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(24, MOVE_PUNISHMENT), + LEVEL_UP_MOVE(26, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(29, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(31, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(34, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_POWER_GEM), + LEVEL_UP_MOVE(39, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(41, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(44, MOVE_QUASH), + LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const struct LevelUpMove sMawileLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 9, MOVE_BITE), + LEVEL_UP_MOVE(13, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(17, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(21, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(25, MOVE_BATON_PASS), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(33, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_STOCKPILE), + LEVEL_UP_MOVE(41, MOVE_SWALLOW), + LEVEL_UP_MOVE(41, MOVE_SPIT_UP), + LEVEL_UP_MOVE(45, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const struct LevelUpMove sAronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(34, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(37, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(43, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(46, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLaironLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(51, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(55, MOVE_METAL_BURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAggronLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_HEADBUTT), + LEVEL_UP_MOVE(10, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(19, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(25, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(31, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(39, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(45, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_AUTOTOMIZE), + LEVEL_UP_MOVE(57, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_METAL_BURST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const struct LevelUpMove sMedititeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(41, MOVE_RECOVER), + LEVEL_UP_MOVE(44, MOVE_COUNTER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMedichamLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 1, MOVE_MEDITATE), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_MEDITATE), + LEVEL_UP_MOVE( 7, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_ENDURE), + LEVEL_UP_MOVE(15, MOVE_FEINT), + LEVEL_UP_MOVE(17, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CALM_MIND), + LEVEL_UP_MOVE(25, MOVE_MIND_READER), + LEVEL_UP_MOVE(28, MOVE_HIGH_JUMP_KICK), + LEVEL_UP_MOVE(31, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(33, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(36, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(42, MOVE_REVERSAL), + LEVEL_UP_MOVE(47, MOVE_RECOVER), + LEVEL_UP_MOVE(53, MOVE_COUNTER), + LEVEL_UP_END +}; +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const struct LevelUpMove sElectrikeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_ROAR), + LEVEL_UP_MOVE(39, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(44, MOVE_CHARGE), + LEVEL_UP_MOVE(49, MOVE_THUNDER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sManectricLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(10, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(13, MOVE_SPARK), + LEVEL_UP_MOVE(16, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(19, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(30, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_ROAR), + LEVEL_UP_MOVE(42, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(48, MOVE_CHARGE), + LEVEL_UP_MOVE(54, MOVE_THUNDER), + LEVEL_UP_MOVE(60, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_END +}; +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const struct LevelUpMove sPlusleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_BESTOW), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const struct LevelUpMove sMinunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(10, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(16, MOVE_SWIFT), + LEVEL_UP_MOVE(19, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(22, MOVE_COPYCAT), + LEVEL_UP_MOVE(25, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(28, MOVE_CHARGE), + LEVEL_UP_MOVE(31, MOVE_DISCHARGE), + LEVEL_UP_MOVE(34, MOVE_BATON_PASS), + LEVEL_UP_MOVE(37, MOVE_AGILITY), + LEVEL_UP_MOVE(40, MOVE_TRUMP_CARD), + LEVEL_UP_MOVE(43, MOVE_THUNDER), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(49, MOVE_ENTRAINMENT), + LEVEL_UP_END +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const struct LevelUpMove sVolbeatLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 8, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_TAIL_GLOW), + LEVEL_UP_MOVE(26, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(29, MOVE_PROTECT), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_INFESTATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIllumiseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 9, MOVE_CHARM), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(15, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(19, MOVE_MOONLIGHT), + LEVEL_UP_MOVE(22, MOVE_WISH), + LEVEL_UP_MOVE(26, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_FLATTER), + LEVEL_UP_MOVE(33, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(36, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(43, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(47, MOVE_COVET), + LEVEL_UP_MOVE(50, MOVE_INFESTATION), + LEVEL_UP_END +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sBudewLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sRoseliaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 4, MOVE_GROWTH), + LEVEL_UP_MOVE( 7, MOVE_POISON_STING), + LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(16, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(19, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(22, MOVE_GRASS_WHISTLE), + LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(28, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(31, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(34, MOVE_INGRAIN), + LEVEL_UP_MOVE(37, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(43, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(46, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(50, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const struct LevelUpMove sGulpinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 5, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), + LEVEL_UP_MOVE(10, MOVE_SLUDGE), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(28, MOVE_STOCKPILE), + LEVEL_UP_MOVE(28, MOVE_SPIT_UP), + LEVEL_UP_MOVE(28, MOVE_SWALLOW), + LEVEL_UP_MOVE(33, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(36, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_WRING_OUT), + LEVEL_UP_MOVE(49, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSwalotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_BODY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE( 1, MOVE_GUNK_SHOT), + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_YAWN), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_SLUDGE), + LEVEL_UP_MOVE( 5, MOVE_YAWN), + LEVEL_UP_MOVE( 8, MOVE_POISON_GAS), + LEVEL_UP_MOVE(10, MOVE_SLUDGE), + LEVEL_UP_MOVE(12, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(20, MOVE_ENCORE), + LEVEL_UP_MOVE(25, MOVE_TOXIC), + LEVEL_UP_MOVE(30, MOVE_STOCKPILE), + LEVEL_UP_MOVE(30, MOVE_SPIT_UP), + LEVEL_UP_MOVE(30, MOVE_SWALLOW), + LEVEL_UP_MOVE(37, MOVE_SLUDGE_BOMB), + LEVEL_UP_MOVE(42, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(49, MOVE_BELCH), + LEVEL_UP_MOVE(54, MOVE_WRING_OUT), + LEVEL_UP_MOVE(61, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA +static const struct LevelUpMove sCarvanhaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 4, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_AQUA_JET), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_SWAGGER), + LEVEL_UP_MOVE(25, MOVE_ICE_FANG), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(32, MOVE_POISON_FANG), + LEVEL_UP_MOVE(36, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSharpedoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_RAGE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 4, MOVE_RAGE), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(11, MOVE_AQUA_JET), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(18, MOVE_SCREECH), + LEVEL_UP_MOVE(22, MOVE_SWAGGER), + LEVEL_UP_MOVE(25, MOVE_ICE_FANG), + LEVEL_UP_MOVE(29, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_POISON_FANG), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_AGILITY), + LEVEL_UP_MOVE(51, MOVE_SKULL_BASH), + LEVEL_UP_MOVE(56, MOVE_TAUNT), + LEVEL_UP_MOVE(62, MOVE_NIGHT_SLASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER +static const struct LevelUpMove sWailmerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_BRINE), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_DIVE), + LEVEL_UP_MOVE(45, MOVE_BOUNCE), + LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(53, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWailordLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SOAK), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(16, MOVE_ASTONISH), + LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(22, MOVE_MIST), + LEVEL_UP_MOVE(25, MOVE_BRINE), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_WATER_SPOUT), + LEVEL_UP_MOVE(37, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_DIVE), + LEVEL_UP_MOVE(51, MOVE_BOUNCE), + LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(65, MOVE_HEAVY_SLAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL +static const struct LevelUpMove sNumelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(36, MOVE_YAWN), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(43, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCameruptLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_FISSURE), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 8, MOVE_EMBER), + LEVEL_UP_MOVE( 8, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(15, MOVE_FLAME_BURST), + LEVEL_UP_MOVE(19, MOVE_AMNESIA), + LEVEL_UP_MOVE(22, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_CURSE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(39, MOVE_YAWN), + LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_ERUPTION), + LEVEL_UP_MOVE(59, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const struct LevelUpMove sTorkoalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_WITHDRAW), + LEVEL_UP_MOVE(10, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(15, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(22, MOVE_CURSE), + LEVEL_UP_MOVE(25, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(27, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(42, MOVE_FLAIL), + LEVEL_UP_MOVE(45, MOVE_HEAT_WAVE), + LEVEL_UP_MOVE(47, MOVE_SHELL_SMASH), + LEVEL_UP_MOVE(50, MOVE_INFERNO), + LEVEL_UP_END +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const struct LevelUpMove sSpoinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(29, MOVE_REST), + LEVEL_UP_MOVE(33, MOVE_SNORE), + LEVEL_UP_MOVE(38, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(40, MOVE_PAYBACK), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(50, MOVE_BOUNCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrumpigLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), + LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE( 1, MOVE_PSYBEAM), + LEVEL_UP_MOVE( 7, MOVE_PSYWAVE), + LEVEL_UP_MOVE(10, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(15, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(18, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(26, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_POWER_GEM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_SNORE), + LEVEL_UP_MOVE(42, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(46, MOVE_PAYBACK), + LEVEL_UP_MOVE(52, MOVE_PSYCHIC), + LEVEL_UP_MOVE(60, MOVE_BOUNCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const struct LevelUpMove sSpindaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_COPYCAT), + LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(23, MOVE_DIZZY_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(32, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE(37, MOVE_UPROAR), + LEVEL_UP_MOVE(41, MOVE_PSYCH_UP), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_THRASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const struct LevelUpMove sTrapinchLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_DIG), + LEVEL_UP_MOVE(22, MOVE_CRUNCH), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_FEINT), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVibravaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(47, MOVE_BOOMBURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlygonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), + LEVEL_UP_MOVE( 1, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BIDE), + LEVEL_UP_MOVE( 5, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_BULLDOZE), + LEVEL_UP_MOVE(12, MOVE_SAND_TOMB), + LEVEL_UP_MOVE(15, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(19, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(22, MOVE_SCREECH), + LEVEL_UP_MOVE(26, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(29, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(33, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(36, MOVE_SANDSTORM), + LEVEL_UP_MOVE(40, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(47, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const struct LevelUpMove sCacneaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(34, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(46, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(50, MOVE_SANDSTORM), + LEVEL_UP_MOVE(54, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCacturneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_REVENGE), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(13, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(16, MOVE_NEEDLE_ARM), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_INGRAIN), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(30, MOVE_SPIKES), + LEVEL_UP_MOVE(35, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(38, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(49, MOVE_COTTON_SPORE), + LEVEL_UP_MOVE(54, MOVE_SANDSTORM), + LEVEL_UP_MOVE(59, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU +static const struct LevelUpMove sSwabluLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_SING), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_MIST), + LEVEL_UP_MOVE(17, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(30, MOVE_MIRROR_MOVE), + LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(38, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(42, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAltariaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PLUCK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 3, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_SING), + LEVEL_UP_MOVE( 7, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE( 9, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_MIST), + LEVEL_UP_MOVE(17, MOVE_ROUND), + LEVEL_UP_MOVE(20, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(23, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(26, MOVE_REFRESH), + LEVEL_UP_MOVE(30, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(34, MOVE_COTTON_GUARD), + LEVEL_UP_MOVE(40, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(46, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(52, MOVE_MOONBLAST), + LEVEL_UP_MOVE(59, MOVE_SKY_ATTACK), + LEVEL_UP_END +}; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const struct LevelUpMove sZangooseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(12, MOVE_PURSUIT), + LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(19, MOVE_SLASH), + LEVEL_UP_MOVE(22, MOVE_REVENGE), + LEVEL_UP_MOVE(26, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(29, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(33, MOVE_EMBARGO), + LEVEL_UP_MOVE(36, MOVE_DETECT), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(43, MOVE_TAUNT), + LEVEL_UP_MOVE(47, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(50, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const struct LevelUpMove sSeviperLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE( 6, MOVE_LICK), + LEVEL_UP_MOVE( 9, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(19, MOVE_GLARE), + LEVEL_UP_MOVE(21, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(29, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(31, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BELCH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(46, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const struct LevelUpMove sLunatoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), + LEVEL_UP_MOVE( 1, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_HYPNOSIS), + LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(17, MOVE_EMBARGO), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(29, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(41, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_MAGIC_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const struct LevelUpMove sSolrockLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 5, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(13, MOVE_PSYWAVE), + LEVEL_UP_MOVE(17, MOVE_EMBARGO), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(25, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(29, MOVE_PSYCHIC), + LEVEL_UP_MOVE(33, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(37, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(41, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(45, MOVE_EXPLOSION), + LEVEL_UP_MOVE(49, MOVE_WONDER_ROOM), + LEVEL_UP_END +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH +static const struct LevelUpMove sBarboachLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(15, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(25, MOVE_SNORE), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(32, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(35, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(39, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(44, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWhiscashLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE( 1, MOVE_TICKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 6, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_MUD_BOMB), + LEVEL_UP_MOVE(15, MOVE_AMNESIA), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_MAGNITUDE), + LEVEL_UP_MOVE(25, MOVE_REST), + LEVEL_UP_MOVE(25, MOVE_SNORE), + LEVEL_UP_MOVE(28, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(34, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(52, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH +static const struct LevelUpMove sCorphishLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(31, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(34, MOVE_TAUNT), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(39, MOVE_CRUNCH), + LEVEL_UP_MOVE(43, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(48, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrawdauntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_SWIFT), + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_VISE_GRIP), + LEVEL_UP_MOVE(10, MOVE_LEER), + LEVEL_UP_MOVE(14, MOVE_BUBBLE_BEAM), + LEVEL_UP_MOVE(17, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(23, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(26, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(32, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(36, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(43, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_CRABHAMMER), + LEVEL_UP_MOVE(54, MOVE_GUILLOTINE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY +static const struct LevelUpMove sBaltoyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(25, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(40, MOVE_SANDSTORM), + LEVEL_UP_MOVE(43, MOVE_IMPRISON), + LEVEL_UP_MOVE(46, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClaydolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE( 1, MOVE_TELEPORT), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 4, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(10, MOVE_HEAL_BLOCK), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(25, MOVE_POWER_TRICK), + LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(34, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(34, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(46, MOVE_SANDSTORM), + LEVEL_UP_MOVE(52, MOVE_IMPRISON), + LEVEL_UP_MOVE(58, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const struct LevelUpMove sLileepLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_INGRAIN), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(41, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(46, MOVE_STOCKPILE), + LEVEL_UP_MOVE(46, MOVE_SPIT_UP), + LEVEL_UP_MOVE(46, MOVE_SWALLOW), + LEVEL_UP_MOVE(52, MOVE_WRING_OUT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCradilyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_INGRAIN), + LEVEL_UP_MOVE( 5, MOVE_ACID), + LEVEL_UP_MOVE( 9, MOVE_INGRAIN), + LEVEL_UP_MOVE(13, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(17, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_BRINE), + LEVEL_UP_MOVE(26, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(31, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(52, MOVE_STOCKPILE), + LEVEL_UP_MOVE(52, MOVE_SPIT_UP), + LEVEL_UP_MOVE(52, MOVE_SWALLOW), + LEVEL_UP_MOVE(61, MOVE_WRING_OUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const struct LevelUpMove sAnorithLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BUG_BITE), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(44, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(49, MOVE_PROTECT), + LEVEL_UP_MOVE(55, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmaldoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 7, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_BUG_BITE), + LEVEL_UP_MOVE(29, MOVE_BRINE), + LEVEL_UP_MOVE(34, MOVE_SLASH), + LEVEL_UP_MOVE(39, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(46, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(53, MOVE_PROTECT), + LEVEL_UP_MOVE(61, MOVE_ROCK_BLAST), + LEVEL_UP_END +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS +static const struct LevelUpMove sFeebasLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(30, MOVE_FLAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiloticLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 1, MOVE_REFRESH), + LEVEL_UP_MOVE( 4, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 7, MOVE_REFRESH), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(14, MOVE_TWISTER), + LEVEL_UP_MOVE(17, MOVE_AQUA_RING), + LEVEL_UP_MOVE(21, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(24, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(27, MOVE_RECOVER), + LEVEL_UP_MOVE(31, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(34, MOVE_ATTRACT), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(41, MOVE_COIL), + LEVEL_UP_MOVE(44, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(47, MOVE_RAIN_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +static const struct LevelUpMove sCastformLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(10, MOVE_EMBER), + LEVEL_UP_MOVE(10, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(15, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(20, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(20, MOVE_HAIL), + LEVEL_UP_MOVE(25, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(35, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(35, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(35, MOVE_BLIZZARD), + LEVEL_UP_MOVE(45, MOVE_HURRICANE), + LEVEL_UP_END +}; +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON +static const struct LevelUpMove sKecleonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THIEF), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 4, MOVE_BIND), + LEVEL_UP_MOVE( 7, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(10, MOVE_FEINT), + LEVEL_UP_MOVE(13, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(16, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(18, MOVE_PSYBEAM), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(25, MOVE_SLASH), + LEVEL_UP_MOVE(30, MOVE_CAMOUFLAGE), + LEVEL_UP_MOVE(33, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(38, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(46, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_SYNCHRONOISE), + LEVEL_UP_END +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const struct LevelUpMove sShuppetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(42, MOVE_SNATCH), + LEVEL_UP_MOVE(46, MOVE_GRUDGE), + LEVEL_UP_MOVE(50, MOVE_TRICK), + LEVEL_UP_MOVE(54, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBanetteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE( 1, MOVE_SCREECH), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 4, MOVE_SCREECH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(10, MOVE_SPITE), + LEVEL_UP_MOVE(13, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(22, MOVE_HEX), + LEVEL_UP_MOVE(26, MOVE_CURSE), + LEVEL_UP_MOVE(30, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(34, MOVE_EMBARGO), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(46, MOVE_SNATCH), + LEVEL_UP_MOVE(52, MOVE_GRUDGE), + LEVEL_UP_MOVE(58, MOVE_TRICK), + LEVEL_UP_MOVE(64, MOVE_PHANTOM_FORCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const struct LevelUpMove sDuskullLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_FORESIGHT), + LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_CURSE), + LEVEL_UP_MOVE(38, MOVE_HEX), + LEVEL_UP_MOVE(41, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(46, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(49, MOVE_PAYBACK), + LEVEL_UP_MOVE(54, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDusclopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_FORESIGHT), + LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_HEX), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(52, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_PAYBACK), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_GRAVITY), + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_DISABLE), + LEVEL_UP_MOVE( 9, MOVE_ASTONISH), + LEVEL_UP_MOVE(14, MOVE_FORESIGHT), + LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(22, MOVE_PURSUIT), + LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(33, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_HEX), + LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(52, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(57, MOVE_PAYBACK), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const struct LevelUpMove sTropiusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE( 6, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(10, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(21, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(26, MOVE_LEAF_TORNADO), + LEVEL_UP_MOVE(30, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(41, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(46, MOVE_BESTOW), + LEVEL_UP_MOVE(50, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(56, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(61, MOVE_LEAF_STORM), + LEVEL_UP_END +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sChinglingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_LAST_RESORT), + LEVEL_UP_MOVE(19, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS + +static const struct LevelUpMove sChimechoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 1, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_YAWN), + LEVEL_UP_MOVE(16, MOVE_PSYWAVE), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(27, MOVE_HEAL_BELL), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(47, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(52, MOVE_SYNCHRONOISE), + LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const struct LevelUpMove sAbsolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), + LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 4, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_PURSUIT), + LEVEL_UP_MOVE(13, MOVE_TAUNT), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(19, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(29, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(33, MOVE_DETECT), + LEVEL_UP_MOVE(37, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(41, MOVE_ME_FIRST), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(49, MOVE_RAZOR_WIND), + LEVEL_UP_MOVE(53, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(57, MOVE_PERISH_SONG), + LEVEL_UP_END +}; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct LevelUpMove sSnoruntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(46, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_HAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlalieLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_ICE_FANG), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(32, MOVE_PROTECT), + LEVEL_UP_MOVE(37, MOVE_FROST_BREATH), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_MOVE(54, MOVE_HAIL), + LEVEL_UP_MOVE(61, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +#if P_GEN_4_CROSS_EVOS +static const struct LevelUpMove sFroslassLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(14, MOVE_ICY_WIND), + LEVEL_UP_MOVE(19, MOVE_ASTONISH), + LEVEL_UP_MOVE(23, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(28, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(37, MOVE_WAKE_UP_SLAP), + LEVEL_UP_MOVE(41, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_BLIZZARD), + LEVEL_UP_MOVE(54, MOVE_HAIL), + LEVEL_UP_MOVE(61, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const struct LevelUpMove sSphealLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(17, MOVE_BRINE), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(36, MOVE_HAIL), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSealeoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 9, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(17, MOVE_BRINE), + LEVEL_UP_MOVE(21, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(26, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(45, MOVE_BLIZZARD), + LEVEL_UP_MOVE(52, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalreinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_SWAGGER), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 7, MOVE_ENCORE), + LEVEL_UP_MOVE(13, MOVE_ICE_BALL), + LEVEL_UP_MOVE(19, MOVE_BRINE), + LEVEL_UP_MOVE(19, MOVE_AURORA_BEAM), + LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(31, MOVE_REST), + LEVEL_UP_MOVE(31, MOVE_SNORE), + LEVEL_UP_MOVE(38, MOVE_HAIL), + LEVEL_UP_MOVE(49, MOVE_BLIZZARD), + LEVEL_UP_MOVE(60, MOVE_SHEER_COLD), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const struct LevelUpMove sClamperlLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CLAMP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_SHELL_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHuntailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 5, MOVE_SCREECH), + LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(11, MOVE_FEINT_ATTACK), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_ICE_FANG), + LEVEL_UP_MOVE(19, MOVE_BRINE), + LEVEL_UP_MOVE(23, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGorebyssLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_WATER_SPORT), + LEVEL_UP_MOVE( 9, MOVE_AGILITY), + LEVEL_UP_MOVE(11, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(16, MOVE_AMNESIA), + LEVEL_UP_MOVE(19, MOVE_AQUA_RING), + LEVEL_UP_MOVE(23, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(34, MOVE_PSYCHIC), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_COIL), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const struct LevelUpMove sRelicanthLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 6, MOVE_MUD_SPORT), + LEVEL_UP_MOVE(10, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(21, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(26, MOVE_DIVE), + LEVEL_UP_MOVE(31, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(35, MOVE_YAWN), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const struct LevelUpMove sLuvdiscLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_CHARM), + LEVEL_UP_MOVE( 4, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_AGILITY), + LEVEL_UP_MOVE( 9, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(13, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(20, MOVE_ATTRACT), + LEVEL_UP_MOVE(22, MOVE_HEART_STAMP), + LEVEL_UP_MOVE(26, MOVE_FLAIL), + LEVEL_UP_MOVE(31, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(34, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(37, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(40, MOVE_AQUA_RING), + LEVEL_UP_MOVE(42, MOVE_SOAK), + LEVEL_UP_MOVE(46, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(49, MOVE_SAFEGUARD), + LEVEL_UP_END +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON static const struct LevelUpMove sBagonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_RAGE), LEVEL_UP_MOVE( 4, MOVE_EMBER), @@ -7630,7 +9923,9 @@ static const struct LevelUpMove sSalamenceLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; +#endif //P_FAMILY_BAGON +#if P_FAMILY_BELDUM static const struct LevelUpMove sBeldumLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), LEVEL_UP_END @@ -7675,7 +9970,9 @@ static const struct LevelUpMove sMetagrossLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_BELDUM +#if P_FAMILY_REGIROCK static const struct LevelUpMove sRegirockLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), LEVEL_UP_MOVE( 1, MOVE_STOMP), @@ -7696,7 +9993,9 @@ static const struct LevelUpMove sRegirockLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_REGIROCK +#if P_FAMILY_REGICE static const struct LevelUpMove sRegiceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), LEVEL_UP_MOVE( 1, MOVE_STOMP), @@ -7717,7 +10016,9 @@ static const struct LevelUpMove sRegiceLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_REGICE +#if P_FAMILY_REGISTEEL static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EXPLOSION), LEVEL_UP_MOVE( 1, MOVE_STOMP), @@ -7740,60 +10041,9 @@ static const struct LevelUpMove sRegisteelLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_REGISTEEL -static const struct LevelUpMove sKyogreLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(15, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(30, MOVE_AQUA_RING), - LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(45, MOVE_ORIGIN_PULSE), - LEVEL_UP_MOVE(50, MOVE_CALM_MIND), - LEVEL_UP_MOVE(60, MOVE_MUDDY_WATER), - LEVEL_UP_MOVE(65, MOVE_SHEER_COLD), - LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(90, MOVE_WATER_SPOUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGroudonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(15, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(20, MOVE_LAVA_PLUME), - LEVEL_UP_MOVE(30, MOVE_REST), - LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(45, MOVE_PRECIPICE_BLADES), - LEVEL_UP_MOVE(50, MOVE_BULK_UP), - LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), - LEVEL_UP_MOVE(65, MOVE_FISSURE), - LEVEL_UP_MOVE(75, MOVE_FIRE_BLAST), - LEVEL_UP_MOVE(80, MOVE_HAMMER_ARM), - LEVEL_UP_MOVE(90, MOVE_ERUPTION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TWISTER), - LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(20, MOVE_CRUNCH), - LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(35, MOVE_REST), - LEVEL_UP_MOVE(45, MOVE_EXTREME_SPEED), - LEVEL_UP_MOVE(50, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE(65, MOVE_FLY), - LEVEL_UP_MOVE(75, MOVE_HYPER_VOICE), - LEVEL_UP_MOVE(80, MOVE_OUTRAGE), - LEVEL_UP_MOVE(90, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - +#if P_FAMILY_LATIAS static const struct LevelUpMove sLatiasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -7817,7 +10067,9 @@ static const struct LevelUpMove sLatiasLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_HEALING_WISH), LEVEL_UP_END }; +#endif //P_FAMILY_LATIAS +#if P_FAMILY_LATIOS static const struct LevelUpMove sLatiosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MEMENTO), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -7841,7 +10093,68 @@ static const struct LevelUpMove sLatiosLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_MEMENTO), LEVEL_UP_END }; +#endif //P_FAMILY_LATIOS +#if P_FAMILY_KYOGRE +static const struct LevelUpMove sKyogreLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_WATER_PULSE), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(20, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(30, MOVE_AQUA_RING), + LEVEL_UP_MOVE(35, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(45, MOVE_ORIGIN_PULSE), + LEVEL_UP_MOVE(50, MOVE_CALM_MIND), + LEVEL_UP_MOVE(60, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(65, MOVE_SHEER_COLD), + LEVEL_UP_MOVE(75, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(80, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(90, MOVE_WATER_SPOUT), + LEVEL_UP_END +}; +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const struct LevelUpMove sGroudonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(20, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(30, MOVE_REST), + LEVEL_UP_MOVE(35, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_PRECIPICE_BLADES), + LEVEL_UP_MOVE(50, MOVE_BULK_UP), + LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(65, MOVE_FISSURE), + LEVEL_UP_MOVE(75, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(80, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(90, MOVE_ERUPTION), + LEVEL_UP_END +}; +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const struct LevelUpMove sRayquazaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 5, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_CRUNCH), + LEVEL_UP_MOVE(30, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(50, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(60, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(65, MOVE_FLY), + LEVEL_UP_MOVE(75, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(80, MOVE_OUTRAGE), + LEVEL_UP_MOVE(90, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI static const struct LevelUpMove sJirachiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WISH), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -7861,7 +10174,9 @@ static const struct LevelUpMove sJirachiLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_DOOM_DESIRE), LEVEL_UP_END }; +#endif //P_FAMILY_JIRACHI +#if P_FAMILY_DEOXYS static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), @@ -7880,31 +10195,64 @@ static const struct LevelUpMove sDeoxysNormalLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sChimechoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), - LEVEL_UP_MOVE( 1, MOVE_SYNCHRONOISE), +static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_ASTONISH), - LEVEL_UP_MOVE(10, MOVE_CONFUSION), - LEVEL_UP_MOVE(13, MOVE_YAWN), - LEVEL_UP_MOVE(16, MOVE_PSYWAVE), - LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(22, MOVE_EXTRASENSORY), - LEVEL_UP_MOVE(27, MOVE_HEAL_BELL), - LEVEL_UP_MOVE(32, MOVE_UPROAR), - LEVEL_UP_MOVE(37, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(47, MOVE_HEAL_PULSE), - LEVEL_UP_MOVE(52, MOVE_SYNCHRONOISE), - LEVEL_UP_MOVE(57, MOVE_HEALING_WISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_TAUNT), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), + LEVEL_UP_MOVE(61, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), LEVEL_UP_END }; -#if P_GEN_4_POKEMON == TRUE +static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_TELEPORT), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_SPIKES), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SNATCH), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(55, MOVE_AMNESIA), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_COUNTER), + LEVEL_UP_MOVE(73, MOVE_MIRROR_COAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(25, MOVE_PURSUIT), + LEVEL_UP_MOVE(31, MOVE_PSYCHIC), + LEVEL_UP_MOVE(37, MOVE_SWIFT), + LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), + LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(55, MOVE_AGILITY), + LEVEL_UP_MOVE(61, MOVE_RECOVER), + LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), + LEVEL_UP_MOVE(73, MOVE_EXTREME_SPEED), + LEVEL_UP_END +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG static const struct LevelUpMove sTurtwigLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_WITHDRAW), @@ -7960,7 +10308,9 @@ static const struct LevelUpMove sTorterraLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_LEAF_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_TURTWIG +#if P_FAMILY_CHIMCHAR static const struct LevelUpMove sChimcharLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -8019,7 +10369,9 @@ static const struct LevelUpMove sInfernapeLevelUpLearnset[] = { LEVEL_UP_MOVE(68, MOVE_FLARE_BLITZ), LEVEL_UP_END }; +#endif //P_FAMILY_CHIMCHAR +#if P_FAMILY_PIPLUP static const struct LevelUpMove sPiplupLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -8079,7 +10431,9 @@ static const struct LevelUpMove sEmpoleonLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_PIPLUP +#if P_FAMILY_STARLY static const struct LevelUpMove sStarlyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -8132,7 +10486,9 @@ static const struct LevelUpMove sStaraptorLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), LEVEL_UP_END }; +#endif //P_FAMILY_STARLY +#if P_FAMILY_BIDOOF static const struct LevelUpMove sBidoofLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -8172,7 +10528,9 @@ static const struct LevelUpMove sBibarelLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_CURSE), LEVEL_UP_END }; +#endif //P_FAMILY_BIDOOF +#if P_FAMILY_KRICKETOT static const struct LevelUpMove sKricketotLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_BIDE), @@ -8200,7 +10558,9 @@ static const struct LevelUpMove sKricketuneLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_PERISH_SONG), LEVEL_UP_END }; +#endif //P_FAMILY_KRICKETOT +#if P_FAMILY_SHINX static const struct LevelUpMove sShinxLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -8254,28 +10614,9 @@ static const struct LevelUpMove sLuxrayLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_ELECTRIC_TERRAIN), LEVEL_UP_END }; +#endif //P_FAMILY_SHINX -static const struct LevelUpMove sBudewLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 4, MOVE_GROWTH), - LEVEL_UP_MOVE( 7, MOVE_WATER_SPORT), - LEVEL_UP_MOVE(10, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(13, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(16, MOVE_WORRY_SEED), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRoseradeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), - LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_WEATHER_BALL), - LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), - LEVEL_UP_END -}; - +#if P_FAMILY_CRANIDOS static const struct LevelUpMove sCranidosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -8311,7 +10652,9 @@ static const struct LevelUpMove sRampardosLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_HEAD_SMASH), LEVEL_UP_END }; +#endif //P_FAMILY_CRANIDOS +#if P_FAMILY_SHIELDON static const struct LevelUpMove sShieldonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_PROTECT), @@ -8347,7 +10690,9 @@ static const struct LevelUpMove sBastiodonLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), LEVEL_UP_END }; +#endif //P_FAMILY_SHIELDON +#if P_FAMILY_BURMY static const struct LevelUpMove sBurmyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE(10, MOVE_TACKLE), @@ -8379,6 +10724,53 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_HARDEN), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_FISSURE), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE(10, MOVE_PROTECT), + LEVEL_UP_MOVE(15, MOVE_BUG_BITE), + LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), + LEVEL_UP_MOVE(23, MOVE_CONFUSION), + LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), + LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(32, MOVE_PSYBEAM), + LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), + LEVEL_UP_MOVE(38, MOVE_FLAIL), + LEVEL_UP_MOVE(41, MOVE_ATTRACT), + LEVEL_UP_MOVE(44, MOVE_PSYCHIC), + LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), + LEVEL_UP_END +}; + static const struct LevelUpMove sMothimLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), @@ -8400,7 +10792,9 @@ static const struct LevelUpMove sMothimLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), LEVEL_UP_END }; +#endif //P_FAMILY_BURMY +#if P_FAMILY_COMBEE static const struct LevelUpMove sCombeeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), LEVEL_UP_MOVE( 1, MOVE_GUST), @@ -8433,7 +10827,9 @@ static const struct LevelUpMove sVespiquenLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_FELL_STINGER), LEVEL_UP_END }; +#endif //P_FAMILY_COMBEE +#if P_FAMILY_PACHIRISU static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_BIDE), @@ -8452,7 +10848,9 @@ static const struct LevelUpMove sPachirisuLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_HYPER_FANG), LEVEL_UP_END }; +#endif //P_FAMILY_PACHIRISU +#if P_FAMILY_BUIZEL static const struct LevelUpMove sBuizelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SONIC_BOOM), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -8493,7 +10891,9 @@ static const struct LevelUpMove sFloatzelLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_BUIZEL +#if P_FAMILY_CHERUBI static const struct LevelUpMove sCherubiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -8529,7 +10929,9 @@ static const struct LevelUpMove sCherrimLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_PETAL_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_SHELLOS static const struct LevelUpMove sShellosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 2, MOVE_MUD_SPORT), @@ -8560,28 +10962,9 @@ static const struct LevelUpMove sGastrodonLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_RECOVER), LEVEL_UP_END }; +#endif //P_FAMILY_SHELLOS -static const struct LevelUpMove sAmbipomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_DUAL_CHOP), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 8, MOVE_ASTONISH), - LEVEL_UP_MOVE(11, MOVE_BATON_PASS), - LEVEL_UP_MOVE(15, MOVE_TICKLE), - LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(22, MOVE_SWIFT), - LEVEL_UP_MOVE(25, MOVE_SCREECH), - LEVEL_UP_MOVE(29, MOVE_AGILITY), - LEVEL_UP_MOVE(32, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE(36, MOVE_FLING), - LEVEL_UP_MOVE(39, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(43, MOVE_LAST_RESORT), - LEVEL_UP_END -}; - +#if P_FAMILY_DRIFLOON static const struct LevelUpMove sDrifloonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), LEVEL_UP_MOVE( 1, MOVE_MINIMIZE), @@ -8623,7 +11006,9 @@ static const struct LevelUpMove sDrifblimLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_PHANTOM_FORCE), LEVEL_UP_END }; +#endif //P_FAMILY_DRIFLOON +#if P_FAMILY_BUNEARY static const struct LevelUpMove sBunearyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FRUSTRATION), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -8672,36 +11057,9 @@ static const struct LevelUpMove sLopunnyLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_HIGH_JUMP_KICK), LEVEL_UP_END }; +#endif //P_FAMILY_BUNEARY -static const struct LevelUpMove sMismagiusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), - LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), - LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), - LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), - LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), - LEVEL_UP_MOVE( 1, MOVE_SPITE), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHonchkrowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_PURSUIT), - LEVEL_UP_MOVE( 1, MOVE_HAZE), - LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(25, MOVE_SWAGGER), - LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(45, MOVE_FOUL_PLAY), - LEVEL_UP_MOVE(55, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(65, MOVE_QUASH), - LEVEL_UP_MOVE(75, MOVE_DARK_PULSE), - LEVEL_UP_END -}; - +#if P_FAMILY_GLAMEOW static const struct LevelUpMove sGlameowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 5, MOVE_SCRATCH), @@ -8740,19 +11098,9 @@ static const struct LevelUpMove sPuruglyLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_HONE_CLAWS), LEVEL_UP_END }; +#endif //P_FAMILY_GLAMEOW -static const struct LevelUpMove sChinglingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_ASTONISH), - LEVEL_UP_MOVE(10, MOVE_CONFUSION), - LEVEL_UP_MOVE(13, MOVE_YAWN), - LEVEL_UP_MOVE(16, MOVE_LAST_RESORT), - LEVEL_UP_MOVE(19, MOVE_ENTRAINMENT), - LEVEL_UP_MOVE(32, MOVE_UPROAR), - LEVEL_UP_END -}; - +#if P_FAMILY_STUNKY static const struct LevelUpMove sStunkyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), @@ -8798,7 +11146,9 @@ static const struct LevelUpMove sSkuntankLevelUpLearnset[] = { LEVEL_UP_MOVE(45, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_STUNKY +#if P_FAMILY_BRONZOR static const struct LevelUpMove sBronzorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -8844,57 +11194,9 @@ static const struct LevelUpMove sBronzongLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_HEAVY_SLAM), LEVEL_UP_END }; +#endif //P_FAMILY_BRONZOR -static const struct LevelUpMove sBonslyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 1, MOVE_COPYCAT), - LEVEL_UP_MOVE( 5, MOVE_FLAIL), - LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), - LEVEL_UP_MOVE(12, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(15, MOVE_MIMIC), - LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(22, MOVE_TEARFUL_LOOK), - LEVEL_UP_MOVE(26, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(29, MOVE_BLOCK), - LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(36, MOVE_COUNTER), - LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMimeJrLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TICKLE), - LEVEL_UP_MOVE( 1, MOVE_BARRIER), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 4, MOVE_COPYCAT), - LEVEL_UP_MOVE( 8, MOVE_MEDITATE), - LEVEL_UP_MOVE(11, MOVE_DOUBLE_SLAP), - LEVEL_UP_MOVE(15, MOVE_MIMIC), - LEVEL_UP_MOVE(18, MOVE_ENCORE), - LEVEL_UP_MOVE(22, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(22, MOVE_REFLECT), - LEVEL_UP_MOVE(25, MOVE_PSYBEAM), - LEVEL_UP_MOVE(29, MOVE_SUBSTITUTE), - LEVEL_UP_MOVE(32, MOVE_RECYCLE), - LEVEL_UP_MOVE(36, MOVE_TRICK), - LEVEL_UP_MOVE(39, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), - LEVEL_UP_MOVE(46, MOVE_BATON_PASS), - LEVEL_UP_MOVE(50, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHappinyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_CHARM), - LEVEL_UP_MOVE( 5, MOVE_COPYCAT), - LEVEL_UP_MOVE( 9, MOVE_REFRESH), - LEVEL_UP_MOVE(12, MOVE_SWEET_KISS), - LEVEL_UP_END -}; - +#if P_FAMILY_CHATOT static const struct LevelUpMove sChatotLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), LEVEL_UP_MOVE( 1, MOVE_CHATTER), @@ -8917,7 +11219,9 @@ static const struct LevelUpMove sChatotLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_HYPER_VOICE), LEVEL_UP_END }; +#endif //P_FAMILY_CHATOT +#if P_FAMILY_SPIRITOMB static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 1, MOVE_PURSUIT), @@ -8934,7 +11238,9 @@ static const struct LevelUpMove sSpiritombLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_DARK_PULSE), LEVEL_UP_END }; +#endif //P_FAMILY_SPIRITOMB +#if P_FAMILY_GIBLE static const struct LevelUpMove sGibleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -8987,31 +11293,9 @@ static const struct LevelUpMove sGarchompLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_DRAGON_RUSH), LEVEL_UP_END }; +#endif //P_FAMILY_GIBLE -static const struct LevelUpMove sMunchlaxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), - LEVEL_UP_MOVE( 1, MOVE_RECYCLE), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 1, MOVE_METRONOME), - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 9, MOVE_AMNESIA), - LEVEL_UP_MOVE(12, MOVE_LICK), - LEVEL_UP_MOVE(17, MOVE_CHIP_AWAY), - LEVEL_UP_MOVE(20, MOVE_SCREECH), - LEVEL_UP_MOVE(25, MOVE_BODY_SLAM), - LEVEL_UP_MOVE(28, MOVE_STOCKPILE), - LEVEL_UP_MOVE(33, MOVE_SWALLOW), - LEVEL_UP_MOVE(36, MOVE_ROLLOUT), - LEVEL_UP_MOVE(41, MOVE_FLING), - LEVEL_UP_MOVE(44, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(49, MOVE_NATURAL_GIFT), - LEVEL_UP_MOVE(50, MOVE_SNATCH), - LEVEL_UP_MOVE(57, MOVE_LAST_RESORT), - LEVEL_UP_END -}; - +#if P_FAMILY_RIOLU static const struct LevelUpMove sRioluLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -9051,7 +11335,9 @@ static const struct LevelUpMove sLucarioLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_EXTREME_SPEED), LEVEL_UP_END }; +#endif //P_FAMILY_RIOLU +#if P_FAMILY_HIPPOPOTAS static const struct LevelUpMove sHippopotasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), @@ -9086,7 +11372,9 @@ static const struct LevelUpMove sHippowdonLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_FISSURE), LEVEL_UP_END }; +#endif //P_FAMILY_HIPPOPOTAS +#if P_FAMILY_SKORUPI static const struct LevelUpMove sSkorupiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), @@ -9132,7 +11420,9 @@ static const struct LevelUpMove sDrapionLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_CROSS_POISON), LEVEL_UP_END }; +#endif //P_FAMILY_SKORUPI +#if P_FAMILY_CROAGUNK static const struct LevelUpMove sCroagunkLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 3, MOVE_MUD_SLAP), @@ -9174,7 +11464,9 @@ static const struct LevelUpMove sToxicroakLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_FLATTER), LEVEL_UP_END }; +#endif //P_FAMILY_CROAGUNK +#if P_FAMILY_CARNIVINE static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BIND), LEVEL_UP_MOVE( 1, MOVE_GROWTH), @@ -9192,7 +11484,9 @@ static const struct LevelUpMove sCarnivineLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_POWER_WHIP), LEVEL_UP_END }; +#endif //P_FAMILY_CARNIVINE +#if P_FAMILY_FINNEON static const struct LevelUpMove sFinneonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 6, MOVE_WATER_GUN), @@ -9232,26 +11526,9 @@ static const struct LevelUpMove sLumineonLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_SOAK), LEVEL_UP_END }; +#endif //P_FAMILY_FINNEON -static const struct LevelUpMove sMantykeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 3, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 7, MOVE_BUBBLE_BEAM), - LEVEL_UP_MOVE(11, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(14, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(16, MOVE_HEADBUTT), - LEVEL_UP_MOVE(19, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), - LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(32, MOVE_AGILITY), - LEVEL_UP_MOVE(36, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(39, MOVE_AQUA_RING), - LEVEL_UP_MOVE(46, MOVE_BOUNCE), - LEVEL_UP_MOVE(49, MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - +#if P_FAMILY_SNOVER static const struct LevelUpMove sSnoverLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -9286,441 +11563,9 @@ static const struct LevelUpMove sAbomasnowLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_SHEER_COLD), LEVEL_UP_END }; +#endif //P_FAMILY_SNOVER -static const struct LevelUpMove sWeavileLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_EMBARGO), - LEVEL_UP_MOVE( 1, MOVE_REVENGE), - LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_TAUNT), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(10, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(14, MOVE_ICY_WIND), - LEVEL_UP_MOVE(16, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(20, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(22, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(25, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(28, MOVE_FLING), - LEVEL_UP_MOVE(32, MOVE_SCREECH), - LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(40, MOVE_SNATCH), - LEVEL_UP_MOVE(44, MOVE_PUNISHMENT), - LEVEL_UP_MOVE(47, MOVE_DARK_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), - LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 1, MOVE_BARRIER), - LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 7, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(11, MOVE_MAGNET_BOMB), - LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(17, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE(19, MOVE_SPARK), - LEVEL_UP_MOVE(23, MOVE_MIRROR_SHOT), - LEVEL_UP_MOVE(25, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(29, MOVE_ELECTRO_BALL), - LEVEL_UP_MOVE(33, MOVE_FLASH_CANNON), - LEVEL_UP_MOVE(39, MOVE_SCREECH), - LEVEL_UP_MOVE(43, MOVE_DISCHARGE), - LEVEL_UP_MOVE(49, MOVE_LOCK_ON), - LEVEL_UP_MOVE(53, MOVE_MAGNET_RISE), - LEVEL_UP_MOVE(59, MOVE_GYRO_BALL), - LEVEL_UP_MOVE(63, MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_WRING_OUT), - LEVEL_UP_MOVE( 1, MOVE_POWER_WHIP), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 5, MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 9, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE(13, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(17, MOVE_WRAP), - LEVEL_UP_MOVE(21, MOVE_STOMP), - LEVEL_UP_MOVE(25, MOVE_DISABLE), - LEVEL_UP_MOVE(29, MOVE_SLAM), - LEVEL_UP_MOVE(33, MOVE_ROLLOUT), - LEVEL_UP_MOVE(37, MOVE_CHIP_AWAY), - LEVEL_UP_MOVE(41, MOVE_ME_FIRST), - LEVEL_UP_MOVE(45, MOVE_REFRESH), - LEVEL_UP_MOVE(49, MOVE_SCREECH), - LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), - LEVEL_UP_MOVE(57, MOVE_WRING_OUT), - LEVEL_UP_MOVE(61, MOVE_GYRO_BALL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), - LEVEL_UP_MOVE( 1, MOVE_ROCK_WRECKER), - LEVEL_UP_MOVE( 1, MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), - LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 5, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(13, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(17, MOVE_STOMP), - LEVEL_UP_MOVE(21, MOVE_BULLDOZE), - LEVEL_UP_MOVE(25, MOVE_CHIP_AWAY), - LEVEL_UP_MOVE(29, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(33, MOVE_DRILL_RUN), - LEVEL_UP_MOVE(37, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(41, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(55, MOVE_MEGAHORN), - LEVEL_UP_MOVE(62, MOVE_HORN_DRILL), - LEVEL_UP_MOVE(69, MOVE_ROCK_WRECKER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BLOCK), - LEVEL_UP_MOVE( 1, MOVE_INGRAIN), - LEVEL_UP_MOVE( 1, MOVE_CONSTRICT), - LEVEL_UP_MOVE( 4, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 7, MOVE_VINE_WHIP), - LEVEL_UP_MOVE(10, MOVE_ABSORB), - LEVEL_UP_MOVE(14, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(17, MOVE_BIND), - LEVEL_UP_MOVE(20, MOVE_GROWTH), - LEVEL_UP_MOVE(23, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE(27, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(30, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(33, MOVE_NATURAL_GIFT), - LEVEL_UP_MOVE(36, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(40, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(43, MOVE_SLAM), - LEVEL_UP_MOVE(46, MOVE_TICKLE), - LEVEL_UP_MOVE(49, MOVE_WRING_OUT), - LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), - LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), - LEVEL_UP_MOVE(56, MOVE_BLOCK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectivireLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_ION_DELUGE), - LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), - LEVEL_UP_MOVE( 5, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), - LEVEL_UP_MOVE(12, MOVE_SWIFT), - LEVEL_UP_MOVE(15, MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE(19, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), - LEVEL_UP_MOVE(26, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(29, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(36, MOVE_DISCHARGE), - LEVEL_UP_MOVE(42, MOVE_SCREECH), - LEVEL_UP_MOVE(49, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(55, MOVE_THUNDER), - LEVEL_UP_MOVE(62, MOVE_GIGA_IMPACT), - LEVEL_UP_MOVE(65, MOVE_ELECTRIC_TERRAIN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_SMOG), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_EMBER), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 5, MOVE_EMBER), - LEVEL_UP_MOVE( 8, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE(12, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(15, MOVE_FIRE_SPIN), - LEVEL_UP_MOVE(19, MOVE_CLEAR_SMOG), - LEVEL_UP_MOVE(22, MOVE_FLAME_BURST), - LEVEL_UP_MOVE(26, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(29, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE(36, MOVE_LAVA_PLUME), - LEVEL_UP_MOVE(42, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(55, MOVE_FIRE_BLAST), - LEVEL_UP_MOVE(62, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTogekissLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), - LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_EXTREME_SPEED), - LEVEL_UP_MOVE( 1, MOVE_AURA_SPHERE), - LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sYanmegaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUG_BUZZ), - LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_FORESIGHT), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(11, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(14, MOVE_SONIC_BOOM), - LEVEL_UP_MOVE(17, MOVE_DETECT), - LEVEL_UP_MOVE(22, MOVE_SUPERSONIC), - LEVEL_UP_MOVE(27, MOVE_UPROAR), - LEVEL_UP_MOVE(30, MOVE_PURSUIT), - LEVEL_UP_MOVE(33, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(38, MOVE_FEINT), - LEVEL_UP_MOVE(43, MOVE_SLASH), - LEVEL_UP_MOVE(46, MOVE_SCREECH), - LEVEL_UP_MOVE(49, MOVE_U_TURN), - LEVEL_UP_MOVE(54, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(57, MOVE_BUG_BUZZ), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLeafeonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 1, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(17, MOVE_GRASS_WHISTLE), - LEVEL_UP_MOVE(20, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(25, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(29, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(33, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(37, MOVE_SUNNY_DAY), - LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), - LEVEL_UP_MOVE(45, MOVE_LEAF_BLADE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGlaceonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(17, MOVE_BITE), - LEVEL_UP_MOVE(20, MOVE_ICE_FANG), - LEVEL_UP_MOVE(25, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(29, MOVE_BARRIER), - LEVEL_UP_MOVE(33, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE(37, MOVE_HAIL), - LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), - LEVEL_UP_MOVE(45, MOVE_BLIZZARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGliscorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), - LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), - LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), - LEVEL_UP_MOVE( 1, MOVE_POISON_JAB), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 7, MOVE_HARDEN), - LEVEL_UP_MOVE(10, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(16, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(19, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(22, MOVE_ACROBATICS), - LEVEL_UP_MOVE(27, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(30, MOVE_U_TURN), - LEVEL_UP_MOVE(35, MOVE_SCREECH), - LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), - LEVEL_UP_MOVE(45, MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE(50, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(55, MOVE_GUILLOTINE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMamoswineLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 1, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 5, MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 8, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE(11, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(14, MOVE_ENDURE), - LEVEL_UP_MOVE(18, MOVE_MUD_BOMB), - LEVEL_UP_MOVE(21, MOVE_HAIL), - LEVEL_UP_MOVE(24, MOVE_ICE_FANG), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(33, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE(37, MOVE_MIST), - LEVEL_UP_MOVE(41, MOVE_THRASH), - LEVEL_UP_MOVE(46, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(52, MOVE_BLIZZARD), - LEVEL_UP_MOVE(58, MOVE_SCARY_FACE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPorygonZLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TRICK_ROOM), - LEVEL_UP_MOVE( 1, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 1, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE( 1, MOVE_CONVERSION_2), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CONVERSION), - LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), - LEVEL_UP_MOVE(12, MOVE_AGILITY), - LEVEL_UP_MOVE(18, MOVE_RECOVER), - LEVEL_UP_MOVE(23, MOVE_MAGNET_RISE), - LEVEL_UP_MOVE(29, MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE(34, MOVE_EMBARGO), - LEVEL_UP_MOVE(40, MOVE_DISCHARGE), - LEVEL_UP_MOVE(45, MOVE_LOCK_ON), - LEVEL_UP_MOVE(50, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE(56, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE(62, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(67, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGalladeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SLASH), - LEVEL_UP_MOVE( 1, MOVE_SLASH), - LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), - LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 1, MOVE_TELEPORT), - LEVEL_UP_MOVE( 4, MOVE_CONFUSION), - LEVEL_UP_MOVE( 6, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 9, MOVE_TELEPORT), - LEVEL_UP_MOVE(11, MOVE_QUICK_GUARD), - LEVEL_UP_MOVE(14, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(17, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(19, MOVE_HEAL_PULSE), - LEVEL_UP_MOVE(23, MOVE_WIDE_GUARD), - LEVEL_UP_MOVE(26, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(31, MOVE_PSYCHO_CUT), - LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(40, MOVE_FEINT), - LEVEL_UP_MOVE(44, MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE(49, MOVE_PROTECT), - LEVEL_UP_MOVE(53, MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE(58, MOVE_STORED_POWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sProbopassLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_MAGNETIC_FLUX), - LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), - LEVEL_UP_MOVE( 1, MOVE_GRAVITY), - LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 1, MOVE_BLOCK), - LEVEL_UP_MOVE( 1, MOVE_MAGNET_BOMB), - LEVEL_UP_MOVE( 4, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 7, MOVE_BLOCK), - LEVEL_UP_MOVE(10, MOVE_MAGNET_BOMB), - LEVEL_UP_MOVE(13, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(16, MOVE_REST), - LEVEL_UP_MOVE(19, MOVE_SPARK), - LEVEL_UP_MOVE(22, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(25, MOVE_POWER_GEM), - LEVEL_UP_MOVE(28, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(31, MOVE_DISCHARGE), - LEVEL_UP_MOVE(34, MOVE_SANDSTORM), - LEVEL_UP_MOVE(37, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(40, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(43, MOVE_LOCK_ON), - LEVEL_UP_MOVE(43, MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDusknoirLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 1, MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_GRAVITY), - LEVEL_UP_MOVE( 1, MOVE_BIND), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 6, MOVE_DISABLE), - LEVEL_UP_MOVE( 9, MOVE_ASTONISH), - LEVEL_UP_MOVE(14, MOVE_FORESIGHT), - LEVEL_UP_MOVE(17, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE(22, MOVE_PURSUIT), - LEVEL_UP_MOVE(25, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(33, MOVE_CURSE), - LEVEL_UP_MOVE(40, MOVE_HEX), - LEVEL_UP_MOVE(45, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(52, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(57, MOVE_PAYBACK), - LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFroslassLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_OMINOUS_WIND), - LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), - LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), - LEVEL_UP_MOVE( 5, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(14, MOVE_ICY_WIND), - LEVEL_UP_MOVE(19, MOVE_ASTONISH), - LEVEL_UP_MOVE(23, MOVE_DRAINING_KISS), - LEVEL_UP_MOVE(28, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(32, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(37, MOVE_WAKE_UP_SLAP), - LEVEL_UP_MOVE(41, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(48, MOVE_BLIZZARD), - LEVEL_UP_MOVE(54, MOVE_HAIL), - LEVEL_UP_MOVE(61, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - +#if P_FAMILY_ROTOM static const struct LevelUpMove sRotomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -9740,7 +11585,9 @@ static const struct LevelUpMove sRotomLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_DISCHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_ROTOM +#if P_FAMILY_UXIE static const struct LevelUpMove sUxieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MEMENTO), LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), @@ -9759,7 +11606,9 @@ static const struct LevelUpMove sUxieLevelUpLearnset[] = { LEVEL_UP_MOVE(76, MOVE_MEMENTO), LEVEL_UP_END }; +#endif //P_FAMILY_UXIE +#if P_FAMILY_MESPRIT static const struct LevelUpMove sMespritLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEALING_WISH), LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), @@ -9778,7 +11627,9 @@ static const struct LevelUpMove sMespritLevelUpLearnset[] = { LEVEL_UP_MOVE(76, MOVE_HEALING_WISH), LEVEL_UP_END }; +#endif //P_FAMILY_MESPRIT +#if P_FAMILY_AZELF static const struct LevelUpMove sAzelfLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_NATURAL_GIFT), LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), @@ -9796,7 +11647,9 @@ static const struct LevelUpMove sAzelfLevelUpLearnset[] = { LEVEL_UP_MOVE(76, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_AZELF +#if P_FAMILY_DIALGA static const struct LevelUpMove sDialgaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), @@ -9813,7 +11666,9 @@ static const struct LevelUpMove sDialgaLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_FLASH_CANNON), LEVEL_UP_END }; +#endif //P_FAMILY_DIALGA +#if P_FAMILY_PALKIA static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), @@ -9830,7 +11685,9 @@ static const struct LevelUpMove sPalkiaLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_PALKIA +#if P_FAMILY_HEATRAN static const struct LevelUpMove sHeatranLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MAGMA_STORM), LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), @@ -9852,7 +11709,9 @@ static const struct LevelUpMove sHeatranLevelUpLearnset[] = { LEVEL_UP_MOVE(96, MOVE_MAGMA_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_HEATRAN +#if P_FAMILY_REGIGIGAS static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_CRUSH_GRIP), @@ -9872,7 +11731,9 @@ static const struct LevelUpMove sRegigigasLevelUpLearnset[] = { LEVEL_UP_MOVE(100, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_REGIGIGAS +#if P_FAMILY_GIRATINA static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), @@ -9889,7 +11750,9 @@ static const struct LevelUpMove sGiratinaLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_HEX), LEVEL_UP_END }; +#endif //P_FAMILY_GIRATINA +#if P_FAMILY_CRESSELIA static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LUNAR_DANCE), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), @@ -9910,7 +11773,9 @@ static const struct LevelUpMove sCresseliaLevelUpLearnset[] = { LEVEL_UP_MOVE(99, MOVE_MOONBLAST), LEVEL_UP_END }; +#endif //P_FAMILY_CRESSELIA +#if P_FAMILY_MANAPHY static const struct LevelUpMove sPhioneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), @@ -9942,7 +11807,9 @@ static const struct LevelUpMove sManaphyLevelUpLearnset[] = { LEVEL_UP_MOVE(76, MOVE_HEART_SWAP), LEVEL_UP_END }; +#endif //P_FAMILY_MANAPHY +#if P_FAMILY_DARKRAI static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_OMINOUS_WIND), LEVEL_UP_MOVE( 1, MOVE_DISABLE), @@ -9958,7 +11825,9 @@ static const struct LevelUpMove sDarkraiLevelUpLearnset[] = { LEVEL_UP_MOVE(93, MOVE_DARK_PULSE), LEVEL_UP_END }; +#endif //P_FAMILY_DARKRAI +#if P_FAMILY_SHAYMIN static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWTH), LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), @@ -9975,6 +11844,24 @@ static const struct LevelUpMove sShayminLandLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), + LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), + LEVEL_UP_END +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS static const struct LevelUpMove sArceusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SEISMIC_TOSS), LEVEL_UP_MOVE( 1, MOVE_COSMIC_POWER), @@ -9992,9 +11879,9 @@ static const struct LevelUpMove sArceusLevelUpLearnset[] = { LEVEL_UP_MOVE(100, MOVE_JUDGMENT), LEVEL_UP_END }; -#endif +#endif //P_FAMILY_ARCEUS -#if P_GEN_5_POKEMON == TRUE +#if P_FAMILY_VICTINI static const struct LevelUpMove sVictiniLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SEARING_SHOT), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), @@ -10015,7 +11902,9 @@ static const struct LevelUpMove sVictiniLevelUpLearnset[] = { LEVEL_UP_MOVE(97, MOVE_OVERHEAT), LEVEL_UP_END }; +#endif //P_FAMILY_VICTINI +#if P_FAMILY_SNIVY static const struct LevelUpMove sSnivyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_LEER), @@ -10078,7 +11967,9 @@ static const struct LevelUpMove sSerperiorLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_LEAF_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_SNIVY +#if P_FAMILY_TEPIG static const struct LevelUpMove sTepigLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), @@ -10145,7 +12036,9 @@ static const struct LevelUpMove sEmboarLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), LEVEL_UP_END }; +#endif //P_FAMILY_TEPIG +#if P_FAMILY_OSHAWOTT static const struct LevelUpMove sOshawottLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -10212,6 +12105,32 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + 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( 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT static const struct LevelUpMove sPatratLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_LEER), @@ -10259,7 +12178,9 @@ static const struct LevelUpMove sWatchogLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_SLAM), LEVEL_UP_END }; +#endif //P_FAMILY_PATRAT +#if P_FAMILY_LILLIPUP static const struct LevelUpMove sLillipupLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -10321,7 +12242,9 @@ static const struct LevelUpMove sStoutlandLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_PLAY_ROUGH), LEVEL_UP_END }; +#endif //P_FAMILY_LILLIPUP +#if P_FAMILY_PURRLOIN static const struct LevelUpMove sPurrloinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -10366,7 +12289,9 @@ static const struct LevelUpMove sLiepardLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_PLAY_ROUGH), LEVEL_UP_END }; +#endif //P_FAMILY_PURRLOIN +#if P_FAMILY_PANSAGE static const struct LevelUpMove sPansageLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), @@ -10394,7 +12319,9 @@ static const struct LevelUpMove sSimisageLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), LEVEL_UP_END }; +#endif //P_FAMILY_PANSAGE +#if P_FAMILY_PANSEAR static const struct LevelUpMove sPansearLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), @@ -10422,7 +12349,9 @@ static const struct LevelUpMove sSimisearLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FLAME_BURST), LEVEL_UP_END }; +#endif //P_FAMILY_PANSEAR +#if P_FAMILY_PANPOUR static const struct LevelUpMove sPanpourLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), @@ -10450,7 +12379,9 @@ static const struct LevelUpMove sSimipourLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCALD), LEVEL_UP_END }; +#endif //P_FAMILY_PANPOUR +#if P_FAMILY_MUNNA static const struct LevelUpMove sMunnaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -10480,7 +12411,9 @@ static const struct LevelUpMove sMusharnaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), LEVEL_UP_END }; +#endif //P_FAMILY_MUNNA +#if P_FAMILY_PIDOVE static const struct LevelUpMove sPidoveLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -10543,7 +12476,9 @@ static const struct LevelUpMove sUnfezantLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_SKY_ATTACK), LEVEL_UP_END }; +#endif //P_FAMILY_PIDOVE +#if P_FAMILY_BLITZLE static const struct LevelUpMove sBlitzleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), @@ -10582,7 +12517,9 @@ static const struct LevelUpMove sZebstrikaLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_ION_DELUGE), LEVEL_UP_END }; +#endif //P_FAMILY_BLITZLE +#if P_FAMILY_ROGGENROLA static const struct LevelUpMove sRoggenrolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -10642,7 +12579,9 @@ static const struct LevelUpMove sGigalithLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_ROGGENROLA +#if P_FAMILY_WOOBAT static const struct LevelUpMove sWoobatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 4, MOVE_ODOR_SLEUTH), @@ -10681,7 +12620,9 @@ static const struct LevelUpMove sSwoobatLevelUpLearnset[] = { LEVEL_UP_MOVE(47, MOVE_ENDEAVOR), LEVEL_UP_END }; +#endif //P_FAMILY_WOOBAT +#if P_FAMILY_DRILBUR static const struct LevelUpMove sDrilburLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_MUD_SPORT), @@ -10724,7 +12665,9 @@ static const struct LevelUpMove sExcadrillLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_FISSURE), LEVEL_UP_END }; +#endif //P_FAMILY_DRILBUR +#if P_FAMILY_AUDINO static const struct LevelUpMove sAudinoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LAST_RESORT), LEVEL_UP_MOVE( 1, MOVE_HYPER_VOICE), @@ -10749,7 +12692,9 @@ static const struct LevelUpMove sAudinoLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_LAST_RESORT), LEVEL_UP_END }; +#endif //P_FAMILY_AUDINO +#if P_FAMILY_TIMBURR static const struct LevelUpMove sTimburrLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -10813,7 +12758,9 @@ static const struct LevelUpMove sConkeldurrLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_SUPERPOWER), LEVEL_UP_END }; +#endif //P_FAMILY_TIMBURR +#if P_FAMILY_TYMPOLE static const struct LevelUpMove sTympoleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -10874,7 +12821,9 @@ static const struct LevelUpMove sSeismitoadLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_HYPER_VOICE), LEVEL_UP_END }; +#endif //P_FAMILY_TYMPOLE +#if P_FAMILY_THROH static const struct LevelUpMove sThrohLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MAT_BLOCK), LEVEL_UP_MOVE( 1, MOVE_BIND), @@ -10894,7 +12843,9 @@ static const struct LevelUpMove sThrohLevelUpLearnset[] = { LEVEL_UP_MOVE(45, MOVE_REVERSAL), LEVEL_UP_END }; +#endif //P_FAMILY_THROH +#if P_FAMILY_SAWK static const struct LevelUpMove sSawkLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -10913,7 +12864,9 @@ static const struct LevelUpMove sSawkLevelUpLearnset[] = { LEVEL_UP_MOVE(45, MOVE_REVERSAL), LEVEL_UP_END }; +#endif //P_FAMILY_SAWK +#if P_FAMILY_SEWADDLE static const struct LevelUpMove sSewaddleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -10958,7 +12911,9 @@ static const struct LevelUpMove sLeavannyLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_LEAF_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_SEWADDLE +#if P_FAMILY_VENIPEDE static const struct LevelUpMove sVenipedeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), @@ -11026,7 +12981,9 @@ static const struct LevelUpMove sScolipedeLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_MEGAHORN), LEVEL_UP_END }; +#endif //P_FAMILY_VENIPEDE +#if P_FAMILY_COTTONEE static const struct LevelUpMove sCottoneeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), @@ -11059,7 +13016,9 @@ static const struct LevelUpMove sWhimsicottLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_MOONBLAST), LEVEL_UP_END }; +#endif //P_FAMILY_COTTONEE +#if P_FAMILY_PETILIL static const struct LevelUpMove sPetililLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 4, MOVE_GROWTH), @@ -11092,6 +13051,37 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + 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( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_AXE_KICK), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN static const struct LevelUpMove sBasculinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -11114,6 +13104,54 @@ static const struct LevelUpMove sBasculinLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBasculinWhiteStripedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 3, MOVE_UPROAR), + LEVEL_UP_MOVE( 5, MOVE_HEADBUTT), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_CHIP_AWAY), + LEVEL_UP_MOVE(14, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(17, MOVE_CRUNCH), + LEVEL_UP_MOVE(20, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(26, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(34, MOVE_FLAIL), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(46, MOVE_HEAD_SMASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE static const struct LevelUpMove sSandileLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_RAGE), @@ -11181,7 +13219,9 @@ static const struct LevelUpMove sKrookodileLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_SANDILE +#if P_FAMILY_DARUMAKA static const struct LevelUpMove sDarumakaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_ROLLOUT), @@ -11227,6 +13267,48 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_TAUNT), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(40, MOVE_BLIZZARD), + LEVEL_UP_MOVE(44, MOVE_THRASH), + LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(16, MOVE_WORK_UP), + LEVEL_UP_MOVE(20, MOVE_ICE_FANG), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(44, MOVE_BLIZZARD), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS static const struct LevelUpMove sMaractusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), LEVEL_UP_MOVE( 1, MOVE_COTTON_GUARD), @@ -11252,7 +13334,9 @@ static const struct LevelUpMove sMaractusLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_AFTER_YOU), LEVEL_UP_END }; +#endif //P_FAMILY_MARACTUS +#if P_FAMILY_DWEBBLE static const struct LevelUpMove sDwebbleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), LEVEL_UP_MOVE( 5, MOVE_ROCK_BLAST), @@ -11293,7 +13377,9 @@ static const struct LevelUpMove sCrustleLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_ROCK_WRECKER), LEVEL_UP_END }; +#endif //P_FAMILY_DWEBBLE +#if P_FAMILY_SCRAGGY static const struct LevelUpMove sScraggyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), @@ -11335,7 +13421,9 @@ static const struct LevelUpMove sScraftyLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_HEAD_SMASH), LEVEL_UP_END }; +#endif //P_FAMILY_SCRAGGY +#if P_FAMILY_SIGILYPH static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_MIRACLE_EYE), @@ -11356,7 +13444,9 @@ static const struct LevelUpMove sSigilyphLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_SKY_ATTACK), LEVEL_UP_END }; +#endif //P_FAMILY_SIGILYPH +#if P_FAMILY_YAMASK static const struct LevelUpMove sYamaskLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), @@ -11399,6 +13489,53 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 4, MOVE_HAZE), + LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(36, MOVE_CURSE), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_PROTECT), + LEVEL_UP_MOVE( 1, MOVE_HAZE), + LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(12, MOVE_DISABLE), + LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), + LEVEL_UP_MOVE(24, MOVE_HEX), + LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_CURSE), + LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA static const struct LevelUpMove sTirtougaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BIDE), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -11443,7 +13580,9 @@ static const struct LevelUpMove sCarracostaLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_TIRTOUGA +#if P_FAMILY_ARCHEN static const struct LevelUpMove sArchenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -11488,7 +13627,9 @@ static const struct LevelUpMove sArcheopsLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_THRASH), LEVEL_UP_END }; +#endif //P_FAMILY_ARCHEN +#if P_FAMILY_TRUBBISH static const struct LevelUpMove sTrubbishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), @@ -11532,7 +13673,9 @@ static const struct LevelUpMove sGarbodorLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_TRUBBISH +#if P_FAMILY_ZORUA static const struct LevelUpMove sZoruaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -11580,6 +13723,48 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + 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( 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(46, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(58, MOVE_FOUL_PLAY), + LEVEL_UP_END +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO static const struct LevelUpMove sMinccinoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 3, MOVE_BABY_DOLL_EYES), @@ -11610,7 +13795,9 @@ static const struct LevelUpMove sCinccinoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_SLAP), LEVEL_UP_END }; +#endif //P_FAMILY_MINCCINO +#if P_FAMILY_GOTHITA static const struct LevelUpMove sGothitaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 3, MOVE_CONFUSION), @@ -11677,7 +13864,9 @@ static const struct LevelUpMove sGothitelleLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_MAGIC_ROOM), LEVEL_UP_END }; +#endif //P_FAMILY_GOTHITA +#if P_FAMILY_SOLOSIS static const struct LevelUpMove sSolosisLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PSYWAVE), LEVEL_UP_MOVE( 3, MOVE_REFLECT), @@ -11745,7 +13934,9 @@ static const struct LevelUpMove sReuniclusLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_WONDER_ROOM), LEVEL_UP_END }; +#endif //P_FAMILY_SOLOSIS +#if P_FAMILY_DUCKLETT static const struct LevelUpMove sDucklettLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 3, MOVE_WATER_SPORT), @@ -11786,7 +13977,9 @@ static const struct LevelUpMove sSwannaLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_HURRICANE), LEVEL_UP_END }; +#endif //P_FAMILY_DUCKLETT +#if P_FAMILY_VANILLITE static const struct LevelUpMove sVanilliteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -11852,7 +14045,9 @@ static const struct LevelUpMove sVanilluxeLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_SHEER_COLD), LEVEL_UP_END }; +#endif //P_FAMILY_VANILLITE +#if P_FAMILY_DEERLING static const struct LevelUpMove sDeerlingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CAMOUFLAGE), @@ -11895,7 +14090,9 @@ static const struct LevelUpMove sSawsbuckLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_SOLAR_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_DEERLING +#if P_FAMILY_EMOLGA static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -11915,7 +14112,9 @@ static const struct LevelUpMove sEmolgaLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_DISCHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_EMOLGA +#if P_FAMILY_KARRABLAST static const struct LevelUpMove sKarrablastLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 4, MOVE_LEER), @@ -11959,7 +14158,9 @@ static const struct LevelUpMove sEscavalierLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_FELL_STINGER), LEVEL_UP_END }; +#endif //P_FAMILY_KARRABLAST +#if P_FAMILY_FOONGUS static const struct LevelUpMove sFoongusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 6, MOVE_GROWTH), @@ -12000,7 +14201,9 @@ static const struct LevelUpMove sAmoongussLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_SPORE), LEVEL_UP_END }; +#endif //P_FAMILY_FOONGUS +#if P_FAMILY_FRILLISH static const struct LevelUpMove sFrillishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), @@ -12040,7 +14243,9 @@ static const struct LevelUpMove sJellicentLevelUpLearnset[] = { LEVEL_UP_MOVE(69, MOVE_WATER_SPOUT), LEVEL_UP_END }; +#endif //P_FAMILY_FRILLISH +#if P_FAMILY_ALOMOMOLA static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 1, MOVE_HYDRO_PUMP), @@ -12067,7 +14272,9 @@ static const struct LevelUpMove sAlomomolaLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_ALOMOMOLA +#if P_FAMILY_JOLTIK static const struct LevelUpMove sJoltikLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -12110,7 +14317,9 @@ static const struct LevelUpMove sGalvantulaLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_BUG_BUZZ), LEVEL_UP_END }; +#endif //P_FAMILY_JOLTIK +#if P_FAMILY_FERROSEED static const struct LevelUpMove sFerroseedLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -12153,7 +14362,9 @@ static const struct LevelUpMove sFerrothornLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_FERROSEED +#if P_FAMILY_KLINK static const struct LevelUpMove sKlinkLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), LEVEL_UP_MOVE( 6, MOVE_CHARGE), @@ -12219,7 +14430,9 @@ static const struct LevelUpMove sKlinklangLevelUpLearnset[] = { LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_KLINK +#if P_FAMILY_TYNAMO static const struct LevelUpMove sTynamoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), @@ -12261,7 +14474,9 @@ static const struct LevelUpMove sEelektrossLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DISCHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_TYNAMO +#if P_FAMILY_ELGYEM static const struct LevelUpMove sElgyemLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -12311,7 +14526,9 @@ static const struct LevelUpMove sBeheeyemLevelUpLearnset[] = { LEVEL_UP_MOVE(68, MOVE_WONDER_ROOM), LEVEL_UP_END }; +#endif //P_FAMILY_ELGYEM +#if P_FAMILY_LITWICK static const struct LevelUpMove sLitwickLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -12364,7 +14581,9 @@ static const struct LevelUpMove sChandelureLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEX), LEVEL_UP_END }; +#endif //P_FAMILY_LITWICK +#if P_FAMILY_AXEW static const struct LevelUpMove sAxewLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 4, MOVE_LEER), @@ -12431,7 +14650,9 @@ static const struct LevelUpMove sHaxorusLevelUpLearnset[] = { LEVEL_UP_MOVE(74, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_AXEW +#if P_FAMILY_CUBCHOO static const struct LevelUpMove sCubchooLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -12480,7 +14701,9 @@ static const struct LevelUpMove sBearticLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_SHEER_COLD), LEVEL_UP_END }; +#endif //P_FAMILY_CUBCHOO +#if P_FAMILY_CRYOGONAL static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHEER_COLD), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), @@ -12506,7 +14729,9 @@ static const struct LevelUpMove sCryogonalLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_SHEER_COLD), LEVEL_UP_END }; +#endif //P_FAMILY_CRYOGONAL +#if P_FAMILY_SHELMET static const struct LevelUpMove sShelmetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 4, MOVE_ACID), @@ -12550,7 +14775,9 @@ static const struct LevelUpMove sAccelgorLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_FINAL_GAMBIT), LEVEL_UP_END }; +#endif //P_FAMILY_SHELMET +#if P_FAMILY_STUNFISK static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FISSURE), LEVEL_UP_MOVE( 1, MOVE_FLAIL), @@ -12574,6 +14801,29 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GALARIAN_FORMS +static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 5, MOVE_ENDURE), + LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_REVENGE), + LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(35, MOVE_BOUNCE), + LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), + LEVEL_UP_MOVE(50, MOVE_FLAIL), + LEVEL_UP_MOVE(55, MOVE_FISSURE), + LEVEL_UP_END +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO static const struct LevelUpMove sMienfooLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 5, MOVE_MEDITATE), @@ -12618,7 +14868,9 @@ static const struct LevelUpMove sMienshaoLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_AURA_SPHERE), LEVEL_UP_END }; +#endif //P_FAMILY_MIENFOO +#if P_FAMILY_DRUDDIGON static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), @@ -12638,7 +14890,9 @@ static const struct LevelUpMove sDruddigonLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_DRUDDIGON +#if P_FAMILY_GOLETT static const struct LevelUpMove sGolettLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -12683,7 +14937,9 @@ static const struct LevelUpMove sGolurkLevelUpLearnset[] = { LEVEL_UP_MOVE(76, MOVE_PHANTOM_FORCE), LEVEL_UP_END }; +#endif //P_FAMILY_GOLETT +#if P_FAMILY_PAWNIARD static const struct LevelUpMove sPawniardLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 6, MOVE_LEER), @@ -12730,6 +14986,31 @@ static const struct LevelUpMove sBisharpLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_9_CROSS_EVOS +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 +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PURSUIT), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -12747,7 +15028,9 @@ static const struct LevelUpMove sBouffalantLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_BOUFFALANT +#if P_FAMILY_RUFFLET static const struct LevelUpMove sRuffletLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -12795,6 +15078,31 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + 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 //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY static const struct LevelUpMove sVullabyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -12841,7 +15149,9 @@ static const struct LevelUpMove sMandibuzzLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_MIRROR_MOVE), LEVEL_UP_END }; +#endif //P_FAMILY_VULLABY +#if P_FAMILY_HEATMOR static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -12865,7 +15175,9 @@ static const struct LevelUpMove sHeatmorLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_INFERNO), LEVEL_UP_END }; +#endif //P_FAMILY_HEATMOR +#if P_FAMILY_DURANT static const struct LevelUpMove sDurantLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_METAL_SOUND), LEVEL_UP_MOVE( 1, MOVE_GUILLOTINE), @@ -12886,7 +15198,9 @@ static const struct LevelUpMove sDurantLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_METAL_SOUND), LEVEL_UP_END }; +#endif //P_FAMILY_DURANT +#if P_FAMILY_DEINO static const struct LevelUpMove sDeinoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), @@ -12952,7 +15266,9 @@ static const struct LevelUpMove sHydreigonLevelUpLearnset[] = { LEVEL_UP_MOVE(79, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_DEINO +#if P_FAMILY_LARVESTA static const struct LevelUpMove sLarvestaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -12997,7 +15313,9 @@ static const struct LevelUpMove sVolcaronaLevelUpLearnset[] = { LEVEL_UP_MOVE(100, MOVE_FIERY_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_LARVESTA +#if P_FAMILY_COBALION static const struct LevelUpMove sCobalionLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -13017,7 +15335,9 @@ static const struct LevelUpMove sCobalionLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; +#endif //P_FAMILY_COBALION +#if P_FAMILY_TERRAKION static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -13036,7 +15356,9 @@ static const struct LevelUpMove sTerrakionLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; +#endif //P_FAMILY_TERRAKION +#if P_FAMILY_VIRIZION static const struct LevelUpMove sVirizionLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CLOSE_COMBAT), LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), @@ -13056,7 +15378,9 @@ static const struct LevelUpMove sVirizionLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; +#endif //P_FAMILY_VIRIZION +#if P_FAMILY_TORNADUS static const struct LevelUpMove sTornadusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THRASH), LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), @@ -13080,7 +15404,9 @@ static const struct LevelUpMove sTornadusLevelUpLearnset[] = { LEVEL_UP_MOVE(79, MOVE_THRASH), LEVEL_UP_END }; +#endif //P_FAMILY_TORNADUS +#if P_FAMILY_THUNDURUS static const struct LevelUpMove sThundurusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THRASH), LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), @@ -13104,7 +15430,9 @@ static const struct LevelUpMove sThundurusLevelUpLearnset[] = { LEVEL_UP_MOVE(79, MOVE_THRASH), LEVEL_UP_END }; +#endif //P_FAMILY_THUNDURUS +#if P_FAMILY_RESHIRAM static const struct LevelUpMove sReshiramLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), @@ -13124,7 +15452,9 @@ static const struct LevelUpMove sReshiramLevelUpLearnset[] = { LEVEL_UP_MOVE(100, MOVE_BLUE_FLARE), LEVEL_UP_END }; +#endif //P_FAMILY_RESHIRAM +#if P_FAMILY_ZEKROM static const struct LevelUpMove sZekromLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), @@ -13144,7 +15474,9 @@ static const struct LevelUpMove sZekromLevelUpLearnset[] = { LEVEL_UP_MOVE(100, MOVE_BOLT_STRIKE), LEVEL_UP_END }; +#endif //P_FAMILY_ZEKROM +#if P_FAMILY_LANDORUS static const struct LevelUpMove sLandorusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_OUTRAGE), LEVEL_UP_MOVE( 1, MOVE_HAMMER_ARM), @@ -13168,7 +15500,9 @@ static const struct LevelUpMove sLandorusLevelUpLearnset[] = { LEVEL_UP_MOVE(79, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_LANDORUS +#if P_FAMILY_KYUREM static const struct LevelUpMove sKyuremLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), @@ -13188,6 +15522,50 @@ static const struct LevelUpMove sKyuremLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 8, MOVE_IMPRISON), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), + LEVEL_UP_MOVE(50, MOVE_ICE_BURN), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(64, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), + LEVEL_UP_MOVE( 8, MOVE_IMPRISON), + LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), + LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), + LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(64, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(78, MOVE_BLIZZARD), + LEVEL_UP_MOVE(85, MOVE_OUTRAGE), + LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), + LEVEL_UP_END +}; +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -13207,7 +15585,9 @@ static const struct LevelUpMove sKeldeoLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; +#endif //P_FAMILY_KELDEO +#if P_FAMILY_MELOETTA static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROUND), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -13229,7 +15609,9 @@ static const struct LevelUpMove sMeloettaLevelUpLearnset[] = { LEVEL_UP_MOVE(85, MOVE_PERISH_SONG), LEVEL_UP_END }; +#endif //P_FAMILY_MELOETTA +#if P_FAMILY_GENESECT static const struct LevelUpMove sGenesectLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), LEVEL_UP_MOVE( 1, MOVE_TECHNO_BLAST), @@ -13253,9 +15635,9 @@ static const struct LevelUpMove sGenesectLevelUpLearnset[] = { LEVEL_UP_MOVE(77, MOVE_SELF_DESTRUCT), LEVEL_UP_END }; -#endif +#endif //P_FAMILY_GENESECT -#if P_GEN_6_POKEMON == TRUE +#if P_FAMILY_CHESPIN static const struct LevelUpMove sChespinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), @@ -13321,7 +15703,9 @@ static const struct LevelUpMove sChesnaughtLevelUpLearnset[] = { LEVEL_UP_MOVE(78, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_CHESPIN +#if P_FAMILY_FENNEKIN static const struct LevelUpMove sFennekinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -13391,7 +15775,9 @@ static const struct LevelUpMove sDelphoxLevelUpLearnset[] = { LEVEL_UP_MOVE(80, MOVE_FUTURE_SIGHT), LEVEL_UP_END }; +#endif //P_FAMILY_FENNEKIN +#if P_FAMILY_FROAKIE static const struct LevelUpMove sFroakieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -13456,7 +15842,9 @@ static const struct LevelUpMove sGreninjaLevelUpLearnset[] = { LEVEL_UP_MOVE(77, MOVE_NIGHT_SLASH), LEVEL_UP_END }; +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_BUNNELBY static const struct LevelUpMove sBunnelbyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_AGILITY), @@ -13501,7 +15889,9 @@ static const struct LevelUpMove sDiggersbyLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_HAMMER_ARM), LEVEL_UP_END }; +#endif //P_FAMILY_BUNNELBY +#if P_FAMILY_FLETCHLING static const struct LevelUpMove sFletchlingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -13564,7 +15954,9 @@ static const struct LevelUpMove sTalonflameLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_BRAVE_BIRD), LEVEL_UP_END }; +#endif //P_FAMILY_FLETCHLING +#if P_FAMILY_SCATTERBUG static const struct LevelUpMove sScatterbugLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -13600,7 +15992,9 @@ static const struct LevelUpMove sVivillonLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_POWDER), LEVEL_UP_END }; +#endif //P_FAMILY_SCATTERBUG +#if P_FAMILY_LITLEO static const struct LevelUpMove sLitleoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -13641,7 +16035,9 @@ static const struct LevelUpMove sPyroarLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_OVERHEAT), LEVEL_UP_END }; +#endif //P_FAMILY_LITLEO +#if P_FAMILY_FLABEBE static const struct LevelUpMove sFlabebeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), @@ -13679,6 +16075,26 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_WISH), + LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), + LEVEL_UP_MOVE(46, MOVE_MOONBLAST), + LEVEL_UP_MOVE(50, MOVE_LIGHT_OF_RUIN), + LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), LEVEL_UP_MOVE( 1, MOVE_LUCKY_CHANT), @@ -13694,7 +16110,9 @@ static const struct LevelUpMove sFlorgesLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), LEVEL_UP_END }; +#endif //P_FAMILY_FLABEBE +#if P_FAMILY_SKIDDO static const struct LevelUpMove sSkiddoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWTH), @@ -13739,7 +16157,9 @@ static const struct LevelUpMove sGogoatLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_MILK_DRINK), LEVEL_UP_END }; +#endif //P_FAMILY_SKIDDO +#if P_FAMILY_PANCHAM static const struct LevelUpMove sPanchamLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -13785,7 +16205,9 @@ static const struct LevelUpMove sPangoroLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_HAMMER_ARM), LEVEL_UP_END }; +#endif //P_FAMILY_PANCHAM +#if P_FAMILY_FURFROU static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -13802,7 +16224,9 @@ static const struct LevelUpMove sFurfrouLevelUpLearnset[] = { LEVEL_UP_MOVE(48, MOVE_COTTON_GUARD), LEVEL_UP_END }; +#endif //P_FAMILY_FURFROU +#if P_FAMILY_ESPURR static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -13843,6 +16267,35 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 5, MOVE_COVET), + LEVEL_UP_MOVE( 9, MOVE_CONFUSION), + LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(17, MOVE_PSYBEAM), + LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), + LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), + LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(53, MOVE_STORED_POWER), + LEVEL_UP_END +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE static const struct LevelUpMove sHonedgeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -13899,7 +16352,9 @@ static const struct LevelUpMove sAegislashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), LEVEL_UP_END }; +#endif //P_FAMILY_HONEDGE +#if P_FAMILY_SPRITZEE static const struct LevelUpMove sSpritzeeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), @@ -13945,7 +16400,9 @@ static const struct LevelUpMove sAromatisseLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_PSYCH_UP), LEVEL_UP_END }; +#endif //P_FAMILY_SPRITZEE +#if P_FAMILY_SWIRLIX static const struct LevelUpMove sSwirlixLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -13987,7 +16444,9 @@ static const struct LevelUpMove sSlurpuffLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_SAFEGUARD), LEVEL_UP_END }; +#endif //P_FAMILY_SWIRLIX +#if P_FAMILY_INKAY static const struct LevelUpMove sInkayLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -14033,7 +16492,9 @@ static const struct LevelUpMove sMalamarLevelUpLearnset[] = { LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), LEVEL_UP_END }; +#endif //P_FAMILY_INKAY +#if P_FAMILY_BINACLE static const struct LevelUpMove sBinacleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHELL_SMASH), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), @@ -14078,7 +16539,9 @@ static const struct LevelUpMove sBarbaracleLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_SKULL_BASH), LEVEL_UP_END }; +#endif //P_FAMILY_BINACLE +#if P_FAMILY_SKRELP static const struct LevelUpMove sSkrelpLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), @@ -14123,7 +16586,9 @@ static const struct LevelUpMove sDragalgeLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_DRAGON_TAIL), LEVEL_UP_END }; +#endif //P_FAMILY_SKRELP +#if P_FAMILY_CLAUNCHER static const struct LevelUpMove sClauncherLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -14164,7 +16629,9 @@ static const struct LevelUpMove sClawitzerLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_MUDDY_WATER), LEVEL_UP_END }; +#endif //P_FAMILY_CLAUNCHER +#if P_FAMILY_HELIOPTILE static const struct LevelUpMove sHelioptileLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -14192,7 +16659,9 @@ static const struct LevelUpMove sHelioliskLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PARABOLIC_CHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_HELIOPTILE +#if P_FAMILY_TYRUNT static const struct LevelUpMove sTyruntLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -14237,7 +16706,9 @@ static const struct LevelUpMove sTyrantrumLevelUpLearnset[] = { LEVEL_UP_MOVE(68, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_TYRUNT +#if P_FAMILY_AMAURA static const struct LevelUpMove sAmauraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -14285,28 +16756,9 @@ static const struct LevelUpMove sAurorusLevelUpLearnset[] = { LEVEL_UP_MOVE(74, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_AMAURA -static const struct LevelUpMove sSylveonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), - LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 5, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(17, MOVE_SWIFT), - LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), - LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), - LEVEL_UP_MOVE(29, MOVE_MISTY_TERRAIN), - LEVEL_UP_MOVE(33, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(37, MOVE_MOONBLAST), - LEVEL_UP_MOVE(41, MOVE_LAST_RESORT), - LEVEL_UP_MOVE(45, MOVE_PSYCH_UP), - LEVEL_UP_END -}; - +#if P_FAMILY_HAWLUCHA static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DETECT), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -14327,7 +16779,9 @@ static const struct LevelUpMove sHawluchaLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_SWORDS_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_HAWLUCHA +#if P_FAMILY_DEDENNE static const struct LevelUpMove sDedenneLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -14347,7 +16801,9 @@ static const struct LevelUpMove sDedenneLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_DISCHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_DEDENNE +#if P_FAMILY_CARBINK static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -14367,7 +16823,9 @@ static const struct LevelUpMove sCarbinkLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), LEVEL_UP_END }; +#endif //P_FAMILY_CARBINK +#if P_FAMILY_GOOMY static const struct LevelUpMove sGoomyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_BUBBLE), @@ -14422,6 +16880,51 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + 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( 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 +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAIRY_LOCK), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -14441,7 +16944,9 @@ static const struct LevelUpMove sKlefkiLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_HEAL_BLOCK), LEVEL_UP_END }; +#endif //P_FAMILY_KLEFKI +#if P_FAMILY_PHANTUMP static const struct LevelUpMove sPhantumpLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), @@ -14482,7 +16987,9 @@ static const struct LevelUpMove sTrevenantLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_HORN_LEECH), LEVEL_UP_END }; +#endif //P_FAMILY_PHANTUMP +#if P_FAMILY_PUMPKABOO static const struct LevelUpMove sPumpkabooLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TRICK), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -14526,7 +17033,9 @@ static const struct LevelUpMove sGourgeistLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_PUMPKABOO +#if P_FAMILY_BERGMITE static const struct LevelUpMove sBergmiteLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_BITE), @@ -14574,6 +17083,34 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +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( 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 //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT static const struct LevelUpMove sNoibatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCREECH), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), @@ -14620,7 +17157,9 @@ static const struct LevelUpMove sNoivernLevelUpLearnset[] = { LEVEL_UP_MOVE(75, MOVE_BOOMBURST), LEVEL_UP_END }; +#endif //P_FAMILY_NOIBAT +#if P_FAMILY_XERNEAS static const struct LevelUpMove sXerneasLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAL_PULSE), LEVEL_UP_MOVE( 1, MOVE_AROMATHERAPY), @@ -14642,7 +17181,9 @@ static const struct LevelUpMove sXerneasLevelUpLearnset[] = { LEVEL_UP_MOVE(93, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_XERNEAS +#if P_FAMILY_YVELTAL static const struct LevelUpMove sYveltalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HURRICANE), LEVEL_UP_MOVE( 1, MOVE_RAZOR_WIND), @@ -14664,7 +17205,9 @@ static const struct LevelUpMove sYveltalLevelUpLearnset[] = { LEVEL_UP_MOVE(93, MOVE_SKY_ATTACK), LEVEL_UP_END }; +#endif //P_FAMILY_YVELTAL +#if P_FAMILY_ZYGARDE static const struct LevelUpMove sZygardeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLARE), LEVEL_UP_MOVE( 1, MOVE_BULLDOZE), @@ -14684,7 +17227,9 @@ static const struct LevelUpMove sZygardeLevelUpLearnset[] = { LEVEL_UP_MOVE(80, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_ZYGARDE +#if P_FAMILY_DIANCIE static const struct LevelUpMove sDiancieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -14706,7 +17251,9 @@ static const struct LevelUpMove sDiancieLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_SAFEGUARD), LEVEL_UP_END }; +#endif //P_FAMILY_DIANCIE +#if P_FAMILY_HOOPA static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), LEVEL_UP_MOVE( 1, MOVE_TRICK), @@ -14731,6 +17278,30 @@ static const struct LevelUpMove sHoopaConfinedLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), + LEVEL_UP_MOVE( 1, MOVE_TRICK), + LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), + LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), + LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), + LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), + LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), + LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(75, MOVE_PSYCHIC), + LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STEAM_ERUPTION), LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), @@ -14750,9 +17321,9 @@ static const struct LevelUpMove sVolcanionLevelUpLearnset[] = { LEVEL_UP_MOVE(85, MOVE_STEAM_ERUPTION), LEVEL_UP_END }; -#endif +#endif //P_FAMILY_VOLCANION -#if P_GEN_7_POKEMON == TRUE +#if P_FAMILY_ROWLET static const struct LevelUpMove sRowletLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), @@ -14823,6 +17394,30 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_HISUIAN_FORMS +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + 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 //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN static const struct LevelUpMove sLittenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -14891,7 +17486,9 @@ static const struct LevelUpMove sIncineroarLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_CROSS_CHOP), LEVEL_UP_END }; +#endif //P_FAMILY_LITTEN +#if P_FAMILY_POPPLIO static const struct LevelUpMove sPopplioLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -14957,7 +17554,9 @@ static const struct LevelUpMove sPrimarinaLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_MISTY_TERRAIN), LEVEL_UP_END }; +#endif //P_FAMILY_POPPLIO +#if P_FAMILY_PIKIPEK static const struct LevelUpMove sPikipekLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -15018,7 +17617,9 @@ static const struct LevelUpMove sToucannonLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_HYPER_VOICE), LEVEL_UP_END }; +#endif //P_FAMILY_PIKIPEK +#if P_FAMILY_YUNGOOS static const struct LevelUpMove sYungoosLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_LEER), @@ -15061,7 +17662,9 @@ static const struct LevelUpMove sGumshoosLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_REST), LEVEL_UP_END }; +#endif //P_FAMILY_YUNGOOS +#if P_FAMILY_GRUBBIN static const struct LevelUpMove sGrubbinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), LEVEL_UP_MOVE( 4, MOVE_STRING_SHOT), @@ -15119,7 +17722,9 @@ static const struct LevelUpMove sVikavoltLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_AGILITY), LEVEL_UP_END }; +#endif //P_FAMILY_GRUBBIN +#if P_FAMILY_CRABRAWLER static const struct LevelUpMove sCrabrawlerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -15158,7 +17763,9 @@ static const struct LevelUpMove sCrabominableLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; +#endif //P_FAMILY_CRABRAWLER +#if P_FAMILY_ORICORIO static const struct LevelUpMove sOricorioLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -15178,7 +17785,9 @@ static const struct LevelUpMove sOricorioLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_HURRICANE), LEVEL_UP_END }; +#endif //P_FAMILY_ORICORIO +#if P_FAMILY_CUTIEFLY static const struct LevelUpMove sCutieflyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 4, MOVE_FAIRY_WIND), @@ -15213,7 +17822,9 @@ static const struct LevelUpMove sRibombeeLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_QUIVER_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_CUTIEFLY +#if P_FAMILY_ROCKRUFF static const struct LevelUpMove sRockruffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -15258,6 +17869,52 @@ static const struct LevelUpMove sLycanrocMiddayLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_TAUNT), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_THRASH), + LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_HOWL), + LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), + LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(26, MOVE_ROAR), + LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), + LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), + LEVEL_UP_END +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -15276,7 +17933,9 @@ static const struct LevelUpMove sWishiwashiLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_MAREANIE static const struct LevelUpMove sMareanieLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_PECK), @@ -15315,7 +17974,9 @@ static const struct LevelUpMove sToxapexLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_LIQUIDATION), LEVEL_UP_END }; +#endif //P_FAMILY_MAREANIE +#if P_FAMILY_MUDBRAY static const struct LevelUpMove sMudbrayLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 3, MOVE_MUD_SPORT), @@ -15354,7 +18015,9 @@ static const struct LevelUpMove sMudsdaleLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), LEVEL_UP_END }; +#endif //P_FAMILY_MUDBRAY +#if P_FAMILY_DEWPIDER static const struct LevelUpMove sDewpiderLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), LEVEL_UP_MOVE( 1, MOVE_BUBBLE), @@ -15394,7 +18057,9 @@ static const struct LevelUpMove sAraquanidLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_ENTRAINMENT), LEVEL_UP_END }; +#endif //P_FAMILY_DEWPIDER +#if P_FAMILY_FOMANTIS static const struct LevelUpMove sFomantisLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -15431,7 +18096,9 @@ static const struct LevelUpMove sLurantisLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_SUNNY_DAY), LEVEL_UP_END }; +#endif //P_FAMILY_FOMANTIS +#if P_FAMILY_MORELULL static const struct LevelUpMove sMorelullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 4, MOVE_ASTONISH), @@ -15470,7 +18137,9 @@ static const struct LevelUpMove sShiinoticLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_SPOTLIGHT), LEVEL_UP_END }; +#endif //P_FAMILY_MORELULL +#if P_FAMILY_SALANDIT static const struct LevelUpMove sSalanditLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), @@ -15514,7 +18183,9 @@ static const struct LevelUpMove sSalazzleLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_DRAGON_PULSE), LEVEL_UP_END }; +#endif //P_FAMILY_SALANDIT +#if P_FAMILY_STUFFUL static const struct LevelUpMove sStuffulLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -15550,7 +18221,9 @@ static const struct LevelUpMove sBewearLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_SUPERPOWER), LEVEL_UP_END }; +#endif //P_FAMILY_STUFFUL +#if P_FAMILY_BOUNSWEET static const struct LevelUpMove sBounsweetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE( 5, MOVE_PLAY_NICE), @@ -15609,7 +18282,9 @@ static const struct LevelUpMove sTsareenaLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_POWER_WHIP), LEVEL_UP_END }; +#endif //P_FAMILY_BOUNSWEET +#if P_FAMILY_COMFEY static const struct LevelUpMove sComfeyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), @@ -15632,7 +18307,9 @@ static const struct LevelUpMove sComfeyLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_PLAY_ROUGH), LEVEL_UP_END }; +#endif //P_FAMILY_COMFEY +#if P_FAMILY_ORANGURU static const struct LevelUpMove sOranguruLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 4, MOVE_AFTER_YOU), @@ -15651,7 +18328,9 @@ static const struct LevelUpMove sOranguruLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), LEVEL_UP_END }; +#endif //P_FAMILY_ORANGURU +#if P_FAMILY_PASSIMIAN static const struct LevelUpMove sPassimianLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_LEER), @@ -15670,7 +18349,9 @@ static const struct LevelUpMove sPassimianLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_PASSIMIAN +#if P_FAMILY_WIMPOD static const struct LevelUpMove sWimpodLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), @@ -15697,7 +18378,9 @@ static const struct LevelUpMove sGolisopodLevelUpLearnset[] = { LEVEL_UP_MOVE(48, MOVE_LIQUIDATION), LEVEL_UP_END }; +#endif //P_FAMILY_WIMPOD +#if P_FAMILY_SANDYGAST static const struct LevelUpMove sSandygastLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -15735,7 +18418,9 @@ static const struct LevelUpMove sPalossandLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_SANDSTORM), LEVEL_UP_END }; +#endif //P_FAMILY_SANDYGAST +#if P_FAMILY_PYUKUMUKU static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), LEVEL_UP_MOVE( 1, MOVE_WATER_SPORT), @@ -15756,7 +18441,9 @@ static const struct LevelUpMove sPyukumukuLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_MEMENTO), LEVEL_UP_END }; +#endif //P_FAMILY_PYUKUMUKU +#if P_FAMILY_TYPE_NULL static const struct LevelUpMove sTypeNullLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_RAGE), @@ -15809,7 +18496,9 @@ static const struct LevelUpMove sSilvallyLevelUpLearnset[] = { LEVEL_UP_MOVE(85, MOVE_PARTING_SHOT), LEVEL_UP_END }; +#endif //P_FAMILY_TYPE_NULL +#if P_FAMILY_MINIOR static const struct LevelUpMove sMiniorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 3, MOVE_DEFENSE_CURL), @@ -15828,7 +18517,9 @@ static const struct LevelUpMove sMiniorLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_MINIOR +#if P_FAMILY_KOMALA static const struct LevelUpMove sKomalaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), @@ -15845,7 +18536,9 @@ static const struct LevelUpMove sKomalaLevelUpLearnset[] = { LEVEL_UP_MOVE(46, MOVE_THRASH), LEVEL_UP_END }; +#endif //P_FAMILY_KOMALA +#if P_FAMILY_TURTONATOR static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -15864,7 +18557,9 @@ static const struct LevelUpMove sTurtonatorLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_TURTONATOR +#if P_FAMILY_TOGEDEMARU static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -15883,7 +18578,9 @@ static const struct LevelUpMove sTogedemaruLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_FELL_STINGER), LEVEL_UP_END }; +#endif //P_FAMILY_TOGEDEMARU +#if P_FAMILY_MIMIKYU static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SPLASH), @@ -15903,7 +18600,9 @@ static const struct LevelUpMove sMimikyuLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), LEVEL_UP_END }; +#endif //P_FAMILY_MIMIKYU +#if P_FAMILY_BRUXISH static const struct LevelUpMove sBruxishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 4, MOVE_ASTONISH), @@ -15919,7 +18618,9 @@ static const struct LevelUpMove sBruxishLevelUpLearnset[] = { LEVEL_UP_MOVE(44, MOVE_SYNCHRONOISE), LEVEL_UP_END }; +#endif //P_FAMILY_BRUXISH +#if P_FAMILY_DRAMPA static const struct LevelUpMove sDrampaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 1, MOVE_ECHOED_VOICE), @@ -15938,7 +18639,9 @@ static const struct LevelUpMove sDrampaLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_DRAMPA +#if P_FAMILY_DHELMISE static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), LEVEL_UP_MOVE( 1, MOVE_ABSORB), @@ -15960,7 +18663,9 @@ static const struct LevelUpMove sDhelmiseLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_POWER_WHIP), LEVEL_UP_END }; +#endif //P_FAMILY_DHELMISE +#if P_FAMILY_JANGMO_O static const struct LevelUpMove sJangmoOLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -16030,7 +18735,9 @@ static const struct LevelUpMove sKommoOLevelUpLearnset[] = { LEVEL_UP_MOVE(75, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; +#endif //P_FAMILY_JANGMO_O +#if P_FAMILY_TAPU_KOKO static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), LEVEL_UP_MOVE( 1, MOVE_BRAVE_BIRD), @@ -16052,7 +18759,9 @@ static const struct LevelUpMove sTapuKokoLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_ELECTRO_BALL), LEVEL_UP_END }; +#endif //P_FAMILY_TAPU_KOKO +#if P_FAMILY_TAPU_LELE static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PSYCHIC_TERRAIN), LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), @@ -16074,7 +18783,9 @@ static const struct LevelUpMove sTapuLeleLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_MOONBLAST), LEVEL_UP_END }; +#endif //P_FAMILY_TAPU_LELE +#if P_FAMILY_TAPU_BULU static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GRASSY_TERRAIN), LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), @@ -16096,7 +18807,9 @@ static const struct LevelUpMove sTapuBuluLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_SKULL_BASH), LEVEL_UP_END }; +#endif //P_FAMILY_TAPU_BULU +#if P_FAMILY_TAPU_FINI static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), LEVEL_UP_MOVE( 1, MOVE_MOONBLAST), @@ -16118,7 +18831,9 @@ static const struct LevelUpMove sTapuFiniLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_TAPU_FINI +#if P_FAMILY_COSMOG static const struct LevelUpMove sCosmogLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPLASH), LEVEL_UP_MOVE(23, MOVE_TELEPORT), @@ -16175,7 +18890,9 @@ static const struct LevelUpMove sLunalaLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_COSMOG +#if P_FAMILY_NIHILEGO static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWER_SPLIT), LEVEL_UP_MOVE( 1, MOVE_GUARD_SPLIT), @@ -16198,7 +18915,9 @@ static const struct LevelUpMove sNihilegoLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_HEAD_SMASH), LEVEL_UP_END }; +#endif //P_FAMILY_NIHILEGO +#if P_FAMILY_BUZZWOLE static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FELL_STINGER), LEVEL_UP_MOVE( 1, MOVE_THUNDER_PUNCH), @@ -16222,7 +18941,9 @@ static const struct LevelUpMove sBuzzwoleLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_FOCUS_PUNCH), LEVEL_UP_END }; +#endif //P_FAMILY_BUZZWOLE +#if P_FAMILY_PHEROMOSA static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), @@ -16245,7 +18966,9 @@ static const struct LevelUpMove sPheromosaLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_SPEED_SWAP), LEVEL_UP_END }; +#endif //P_FAMILY_PHEROMOSA +#if P_FAMILY_XURKITREE static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_GLOW), LEVEL_UP_MOVE( 1, MOVE_SPARK), @@ -16267,7 +18990,9 @@ static const struct LevelUpMove sXurkitreeLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_ZAP_CANNON), LEVEL_UP_END }; +#endif //P_FAMILY_XURKITREE +#if P_FAMILY_CELESTEELA static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), LEVEL_UP_MOVE( 1, MOVE_AIR_SLASH), @@ -16290,7 +19015,9 @@ static const struct LevelUpMove sCelesteelaLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; +#endif //P_FAMILY_CELESTEELA +#if P_FAMILY_KARTANA static const struct LevelUpMove sKartanaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), LEVEL_UP_MOVE( 1, MOVE_DEFOG), @@ -16313,7 +19040,9 @@ static const struct LevelUpMove sKartanaLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_GUILLOTINE), LEVEL_UP_END }; +#endif //P_FAMILY_KARTANA +#if P_FAMILY_GUZZLORD static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BELCH), LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), @@ -16336,7 +19065,9 @@ static const struct LevelUpMove sGuzzlordLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_DRAGON_RUSH), LEVEL_UP_END }; +#endif //P_FAMILY_GUZZLORD +#if P_FAMILY_NECROZMA static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MOONLIGHT), LEVEL_UP_MOVE( 1, MOVE_MORNING_SUN), @@ -16359,7 +19090,9 @@ static const struct LevelUpMove sNecrozmaLevelUpLearnset[] = { LEVEL_UP_MOVE(73, MOVE_PRISMATIC_LASER), LEVEL_UP_END }; +#endif //P_FAMILY_NECROZMA +#if P_FAMILY_MAGEARNA static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CRAFTY_SHIELD), LEVEL_UP_MOVE( 1, MOVE_GEAR_UP), @@ -16383,7 +19116,9 @@ static const struct LevelUpMove sMagearnaLevelUpLearnset[] = { LEVEL_UP_MOVE(97, MOVE_TRUMP_CARD), LEVEL_UP_END }; +#endif //P_FAMILY_MAGEARNA +#if P_FAMILY_MARSHADOW static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LASER_FOCUS), LEVEL_UP_MOVE( 1, MOVE_ASSURANCE), @@ -16408,7 +19143,9 @@ static const struct LevelUpMove sMarshadowLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_ENDEAVOR), LEVEL_UP_END }; +#endif //P_FAMILY_MARSHADOW +#if P_FAMILY_POIPOLE static const struct LevelUpMove sPoipoleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DRAGON_PULSE), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -16446,7 +19183,9 @@ static const struct LevelUpMove sNaganadelLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_DRAGON_PULSE), LEVEL_UP_END }; +#endif //P_FAMILY_POIPOLE +#if P_FAMILY_STAKATAKA static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -16463,7 +19202,9 @@ static const struct LevelUpMove sStakatakaLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; +#endif //P_FAMILY_STAKATAKA +#if P_FAMILY_BLACEPHALON static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -16479,7 +19220,9 @@ static const struct LevelUpMove sBlacephalonLevelUpLearnset[] = { LEVEL_UP_MOVE(59, MOVE_MIND_BLOWN), LEVEL_UP_END }; +#endif //P_FAMILY_BLACEPHALON +#if P_FAMILY_ZERAORA static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_SPARK), @@ -16499,7 +19242,9 @@ static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_DISCHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_ZERAORA +#if P_FAMILY_MELTAN static const struct LevelUpMove sMeltanLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -16530,9 +19275,9 @@ static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { LEVEL_UP_MOVE( 90, MOVE_HYPER_BEAM), LEVEL_UP_END }; -#endif +#endif //P_FAMILY_MELTAN -#if P_GEN_8_POKEMON == TRUE +#if P_FAMILY_GROOKEY static const struct LevelUpMove sGrookeyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -16585,7 +19330,9 @@ static const struct LevelUpMove sRillaboomLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_BOOMBURST), LEVEL_UP_END }; +#endif //P_FAMILY_GROOKEY +#if P_FAMILY_SCORBUNNY static const struct LevelUpMove sScorbunnyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -16634,7 +19381,9 @@ static const struct LevelUpMove sCinderaceLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_COURT_CHANGE), LEVEL_UP_END }; +#endif //P_FAMILY_SCORBUNNY +#if P_FAMILY_SOBBLE static const struct LevelUpMove sSobbleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -16683,7 +19432,9 @@ static const struct LevelUpMove sInteleonLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_SOBBLE +#if P_FAMILY_SKWOVET static const struct LevelUpMove sSkwovetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -16719,7 +19470,9 @@ static const struct LevelUpMove sGreedentLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_BELCH), LEVEL_UP_END }; +#endif //P_FAMILY_SKWOVET +#if P_FAMILY_ROOKIDEE static const struct LevelUpMove sRookideeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -16768,7 +19521,9 @@ static const struct LevelUpMove sCorviknightLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_BRAVE_BIRD), LEVEL_UP_END }; +#endif //P_FAMILY_ROOKIDEE +#if P_FAMILY_BLIPBUG static const struct LevelUpMove sBlipbugLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), LEVEL_UP_END @@ -16804,7 +19559,9 @@ static const struct LevelUpMove sOrbeetleLevelUpLearnset[] = { LEVEL_UP_MOVE(48, MOVE_PSYCHIC_TERRAIN), LEVEL_UP_END }; +#endif //P_FAMILY_BLIPBUG +#if P_FAMILY_NICKIT static const struct LevelUpMove sNickitLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -16837,7 +19594,9 @@ static const struct LevelUpMove sThievulLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_PARTING_SHOT), LEVEL_UP_END }; +#endif //P_FAMILY_NICKIT +#if P_FAMILY_GOSSIFLEUR static const struct LevelUpMove sGossifleurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), LEVEL_UP_MOVE( 1, MOVE_SING), @@ -16870,7 +19629,9 @@ static const struct LevelUpMove sEldegossLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_COTTON_GUARD), LEVEL_UP_END }; +#endif //P_FAMILY_GOSSIFLEUR +#if P_FAMILY_WOOLOO static const struct LevelUpMove sWoolooLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -16903,7 +19664,9 @@ static const struct LevelUpMove sDubwoolLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_LAST_RESORT), LEVEL_UP_END }; +#endif //P_FAMILY_WOOLOO +#if P_FAMILY_CHEWTLE static const struct LevelUpMove sChewtleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -16935,7 +19698,9 @@ static const struct LevelUpMove sDrednawLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_HEAD_SMASH), LEVEL_UP_END }; +#endif //P_FAMILY_CHEWTLE +#if P_FAMILY_YAMPER static const struct LevelUpMove sYamperLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -16967,7 +19732,9 @@ static const struct LevelUpMove sBoltundLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_ELECTRIC_TERRAIN), LEVEL_UP_END }; +#endif //P_FAMILY_YAMPER +#if P_FAMILY_ROLYCOLY static const struct LevelUpMove sRolycolyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), @@ -17016,7 +19783,9 @@ static const struct LevelUpMove sCoalossalLevelUpLearnset[] = { LEVEL_UP_MOVE(63, MOVE_BURN_UP), LEVEL_UP_END }; +#endif //P_FAMILY_ROLYCOLY +#if P_FAMILY_APPLIN static const struct LevelUpMove sApplinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), LEVEL_UP_MOVE( 1, MOVE_ASTONISH), @@ -17067,6 +19836,29 @@ static const struct LevelUpMove sAppletunLevelUpLearnset[] = { LEVEL_UP_END }; +#if P_GEN_9_CROSS_EVOS +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 +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA static const struct LevelUpMove sSilicobraLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), @@ -17099,7 +19891,9 @@ static const struct LevelUpMove sSandacondaLevelUpLearnset[] = { LEVEL_UP_MOVE(51, MOVE_SAND_TOMB), LEVEL_UP_END }; +#endif //P_FAMILY_SILICOBRA +#if P_FAMILY_CRAMORANT static const struct LevelUpMove sCramorantLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BELCH), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -17116,7 +19910,9 @@ static const struct LevelUpMove sCramorantLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_CRAMORANT +#if P_FAMILY_ARROKUDA static const struct LevelUpMove sArrokudaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -17145,7 +19941,9 @@ static const struct LevelUpMove sBarraskewdaLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; +#endif //P_FAMILY_ARROKUDA +#if P_FAMILY_TOXEL static const struct LevelUpMove sToxelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BELCH), LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), @@ -17186,6 +19984,38 @@ static const struct LevelUpMove sToxtricityAmpedLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_SPARK), + LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), + LEVEL_UP_MOVE( 1, MOVE_BELCH), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_NUZZLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 1, MOVE_ACID), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE( 4, MOVE_CHARGE), + LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(16, MOVE_TAUNT), + LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), + LEVEL_UP_MOVE(24, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_SWAGGER), + LEVEL_UP_MOVE(32, MOVE_TOXIC), + LEVEL_UP_MOVE(36, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), + LEVEL_UP_MOVE(48, MOVE_BOOMBURST), + LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE static const struct LevelUpMove sSizzlipedeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), @@ -17220,7 +20050,9 @@ static const struct LevelUpMove sCentiskorchLevelUpLearnset[] = { LEVEL_UP_MOVE(67, MOVE_BURN_UP), LEVEL_UP_END }; +#endif //P_FAMILY_SIZZLIPEDE +#if P_FAMILY_CLOBBOPUS static const struct LevelUpMove sClobbopusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -17254,7 +20086,9 @@ static const struct LevelUpMove sGrapploctLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_TOPSY_TURVY), LEVEL_UP_END }; +#endif //P_FAMILY_CLOBBOPUS +#if P_FAMILY_SINISTEA static const struct LevelUpMove sSinisteaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -17290,7 +20124,9 @@ static const struct LevelUpMove sPolteageistLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_CURSE), LEVEL_UP_END }; +#endif //P_FAMILY_SINISTEA +#if P_FAMILY_HATENNA static const struct LevelUpMove sHatennaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSION), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), @@ -17341,7 +20177,9 @@ static const struct LevelUpMove sHattereneLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_MAGIC_POWDER), LEVEL_UP_END }; +#endif //P_FAMILY_HATENNA +#if P_FAMILY_IMPIDIMP static const struct LevelUpMove sImpidimpLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_CONFIDE), @@ -17400,152 +20238,9 @@ static const struct LevelUpMove sGrimmsnarlLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), LEVEL_UP_END }; +#endif //P_FAMILY_IMPIDIMP -static const struct LevelUpMove sObstagoonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_OBSTRUCT), - LEVEL_UP_MOVE( 1, MOVE_OBSTRUCT), - LEVEL_UP_MOVE( 1, MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 1, MOVE_SUBMISSION), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), - LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 9, MOVE_SNARL), - LEVEL_UP_MOVE(12, MOVE_HEADBUTT), - LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(23, MOVE_REST), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(42, MOVE_COUNTER), - LEVEL_UP_MOVE(49, MOVE_TAUNT), - LEVEL_UP_MOVE(56, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPerrserkerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 1, MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), - LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE(12, MOVE_PAY_DAY), - LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(20, MOVE_TAUNT), - LEVEL_UP_MOVE(24, MOVE_SWAGGER), - LEVEL_UP_MOVE(31, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(36, MOVE_SCREECH), - LEVEL_UP_MOVE(42, MOVE_SLASH), - LEVEL_UP_MOVE(48, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(54, MOVE_THRASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCursolaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PERISH_SONG), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_DISABLE), - LEVEL_UP_MOVE(15, MOVE_SPITE), - LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(25, MOVE_HEX), - LEVEL_UP_MOVE(30, MOVE_CURSE), - LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), - LEVEL_UP_MOVE(40, MOVE_POWER_GEM), - LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(50, MOVE_GRUDGE), - LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSirfetchdLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 1, MOVE_FIRST_IMPRESSION), - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), - LEVEL_UP_MOVE(25, MOVE_DETECT), - LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(35, MOVE_DEFOG), - LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(50, MOVE_SLAM), - LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), - LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), - LEVEL_UP_MOVE(70, MOVE_METEOR_ASSAULT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMrRimeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), - LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), - LEVEL_UP_MOVE( 1, MOVE_BLOCK), - LEVEL_UP_MOVE( 1, MOVE_COPYCAT), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 1, MOVE_RECYCLE), - LEVEL_UP_MOVE( 1, MOVE_MIMIC), - LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 1, MOVE_REFLECT), - LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), - LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(12, MOVE_CONFUSION), - LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), - LEVEL_UP_MOVE(20, MOVE_ICY_WIND), - LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(28, MOVE_PSYBEAM), - LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), - LEVEL_UP_MOVE(48, MOVE_PSYCHIC), - LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRunerigusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), - LEVEL_UP_MOVE( 1, MOVE_SHADOW_CLAW), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 1, MOVE_HAZE), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(12, MOVE_DISABLE), - LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), - LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), - LEVEL_UP_MOVE(24, MOVE_HEX), - LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(32, MOVE_SLAM), - LEVEL_UP_MOVE(38, MOVE_CURSE), - LEVEL_UP_MOVE(44, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(50, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(56, MOVE_POWER_SPLIT), - LEVEL_UP_MOVE(56, MOVE_GUARD_SPLIT), - LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - +#if P_FAMILY_MILCERY static const struct LevelUpMove sMilceryLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), @@ -17579,7 +20274,9 @@ static const struct LevelUpMove sAlcremieLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_ENTRAINMENT), LEVEL_UP_END }; +#endif //P_FAMILY_MILCERY +#if P_FAMILY_FALINKS static const struct LevelUpMove sFalinksLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_PROTECT), @@ -17597,7 +20294,9 @@ static const struct LevelUpMove sFalinksLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_COUNTER), LEVEL_UP_END }; +#endif //P_FAMILY_FALINKS +#if P_FAMILY_PINCURCHIN static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -17615,7 +20314,9 @@ static const struct LevelUpMove sPincurchinLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_DISCHARGE), LEVEL_UP_END }; +#endif //P_FAMILY_PINCURCHIN +#if P_FAMILY_SNOM static const struct LevelUpMove sSnomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_STRUGGLE_BUG), @@ -17644,7 +20345,9 @@ static const struct LevelUpMove sFrosmothLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_QUIVER_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_SNOM +#if P_FAMILY_STONJOURNER static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), LEVEL_UP_MOVE( 1, MOVE_BLOCK), @@ -17661,7 +20364,9 @@ static const struct LevelUpMove sStonjournerLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_MEGA_KICK), LEVEL_UP_END }; +#endif //P_FAMILY_STONJOURNER +#if P_FAMILY_EISCUE static const struct LevelUpMove sEiscueLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -17677,7 +20382,9 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_EISCUE +#if P_FAMILY_INDEEDEE static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), @@ -17695,6 +20402,25 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), + LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), + LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), + LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(35, MOVE_PSYCHIC), + LEVEL_UP_MOVE(40, MOVE_CALM_MIND), + LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), + LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), + LEVEL_UP_END +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -17712,7 +20438,9 @@ static const struct LevelUpMove sMorpekoLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_THRASH), LEVEL_UP_END }; +#endif //P_FAMILY_MORPEKO +#if P_FAMILY_CUFANT static const struct LevelUpMove sCufantLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -17748,7 +20476,9 @@ static const struct LevelUpMove sCopperajahLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_SUPERPOWER), LEVEL_UP_END }; +#endif //P_FAMILY_CUFANT +#if P_FAMILY_DRACOZOLT static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -17765,7 +20495,9 @@ static const struct LevelUpMove sDracozoltLevelUpLearnset[] = { LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), LEVEL_UP_END }; +#endif //P_FAMILY_DRACOZOLT +#if P_FAMILY_ARCTOZOLT static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), @@ -17782,7 +20514,9 @@ static const struct LevelUpMove sArctozoltLevelUpLearnset[] = { LEVEL_UP_MOVE(77, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_ARCTOZOLT +#if P_FAMILY_DRACOVISH static const struct LevelUpMove sDracovishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -17799,7 +20533,9 @@ static const struct LevelUpMove sDracovishLevelUpLearnset[] = { LEVEL_UP_MOVE(77, MOVE_DRAGON_RUSH), LEVEL_UP_END }; +#endif //P_FAMILY_DRACOVISH +#if P_FAMILY_ARCTOVISH static const struct LevelUpMove sArctovishLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -17816,7 +20552,9 @@ static const struct LevelUpMove sArctovishLevelUpLearnset[] = { LEVEL_UP_MOVE(77, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_ARCTOVISH +#if P_FAMILY_DURALUDON static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -17833,7 +20571,9 @@ static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_DURALUDON +#if P_FAMILY_DREEPY static const struct LevelUpMove sDreepyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_INFESTATION), @@ -17887,7 +20627,9 @@ static const struct LevelUpMove sDragapultLevelUpLearnset[] = { LEVEL_UP_MOVE(78, MOVE_LAST_RESORT), LEVEL_UP_END }; +#endif //P_FAMILY_DREEPY +#if P_FAMILY_ZACIAN static const struct LevelUpMove sZacianLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SACRED_SWORD), LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), @@ -17905,7 +20647,9 @@ static const struct LevelUpMove sZacianLevelUpLearnset[] = { LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_ZACIAN +#if P_FAMILY_ZAMAZENTA static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), @@ -17923,7 +20667,9 @@ static const struct LevelUpMove sZamazentaLevelUpLearnset[] = { LEVEL_UP_MOVE(88, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_ZAMAZENTA +#if P_FAMILY_ETERNATUS static const struct LevelUpMove sEternatusLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_TAIL), LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), @@ -17942,7 +20688,9 @@ static const struct LevelUpMove sEternatusLevelUpLearnset[] = { LEVEL_UP_MOVE(88, MOVE_ETERNABEAM), LEVEL_UP_END }; +#endif //P_FAMILY_ETERNATUS +#if P_FAMILY_KUBFU static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -17984,1780 +20732,6 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZarudeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BIND), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 6, MOVE_LEER), - LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), - LEVEL_UP_MOVE(18, MOVE_GROWTH), - LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), - LEVEL_UP_MOVE(42, MOVE_BITE), - LEVEL_UP_MOVE(48, MOVE_U_TURN), - LEVEL_UP_MOVE(54, MOVE_SWAGGER), - LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), - LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), - LEVEL_UP_MOVE(78, MOVE_THRASH), - LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), - LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), - LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), - LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), - LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), - LEVEL_UP_MOVE(54, MOVE_THRASH), - LEVEL_UP_MOVE(60, MOVE_LOCK_ON), - LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE(78, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TWISTER), - LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), - LEVEL_UP_MOVE( 6, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(30, MOVE_CRUNCH), - LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), - LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE(54, MOVE_THRASH), - LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), - LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), - LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), - LEVEL_UP_MOVE(78, MOVE_EXPLOSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(12, MOVE_AVALANCHE), - LEVEL_UP_MOVE(18, MOVE_STOMP), - LEVEL_UP_MOVE(24, MOVE_TORMENT), - LEVEL_UP_MOVE(30, MOVE_MIST), - LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), - LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(54, MOVE_THRASH), - LEVEL_UP_MOVE(60, MOVE_TAUNT), - LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(12, MOVE_HEX), - LEVEL_UP_MOVE(18, MOVE_STOMP), - LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(30, MOVE_HAZE), - LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(48, MOVE_AGILITY), - LEVEL_UP_MOVE(54, MOVE_THRASH), - LEVEL_UP_MOVE(60, MOVE_DISABLE), - LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), - LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), - LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), - LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(56, MOVE_PSYCHIC), - LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), - LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), - LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_PSYSHIELD_BASH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - 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(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( 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( 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_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( 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( 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_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 - -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(10, MOVE_BITE), - LEVEL_UP_MOVE(13, MOVE_PURSUIT), - LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), - LEVEL_UP_MOVE(19, MOVE_ASSURANCE), - LEVEL_UP_MOVE(22, MOVE_CRUNCH), - LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(28, MOVE_SUPER_FANG), - LEVEL_UP_MOVE(31, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(34, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 7, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE(10, MOVE_BITE), - LEVEL_UP_MOVE(13, MOVE_PURSUIT), - LEVEL_UP_MOVE(16, MOVE_HYPER_FANG), - LEVEL_UP_MOVE(19, MOVE_ASSURANCE), - LEVEL_UP_MOVE(24, MOVE_CRUNCH), - LEVEL_UP_MOVE(29, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(34, MOVE_SUPER_FANG), - LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(44, MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), - LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), - LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_THUNDERBOLT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 3, MOVE_BIDE), - LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 7, MOVE_ICE_BALL), - LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE(11, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(14, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(17, MOVE_SWIFT), - LEVEL_UP_MOVE(20, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(23, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(26, MOVE_SLASH), - LEVEL_UP_MOVE(30, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(34, MOVE_GYRO_BALL), - LEVEL_UP_MOVE(38, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(42, MOVE_HAIL), - LEVEL_UP_MOVE(46, MOVE_BLIZZARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), - LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), - LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), - LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), - LEVEL_UP_MOVE( 1, MOVE_SLASH), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_ICE_BALL), - LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_ROAR), - LEVEL_UP_MOVE( 9, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(10, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(12, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE(15, MOVE_ICY_WIND), - LEVEL_UP_MOVE(18, MOVE_PAYBACK), - LEVEL_UP_MOVE(20, MOVE_MIST), - LEVEL_UP_MOVE(23, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(26, MOVE_HEX), - LEVEL_UP_MOVE(28, MOVE_AURORA_BEAM), - LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), - LEVEL_UP_MOVE(34, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(36, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(39, MOVE_IMPRISON), - LEVEL_UP_MOVE(42, MOVE_BLIZZARD), - LEVEL_UP_MOVE(44, MOVE_GRUDGE), - LEVEL_UP_MOVE(47, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(50, MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), - LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), - LEVEL_UP_MOVE( 1, MOVE_IMPRISON), - LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE( 1, MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), - LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_ASTONISH), - LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(18, MOVE_BULLDOZE), - LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), - LEVEL_UP_MOVE(28, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(31, MOVE_DIG), - LEVEL_UP_MOVE(35, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(39, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(43, MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 4, MOVE_GROWL), - LEVEL_UP_MOVE( 7, MOVE_ASTONISH), - LEVEL_UP_MOVE(10, MOVE_MUD_SLAP), - LEVEL_UP_MOVE(14, MOVE_MAGNITUDE), - LEVEL_UP_MOVE(18, MOVE_BULLDOZE), - LEVEL_UP_MOVE(22, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(25, MOVE_MUD_BOMB), - LEVEL_UP_MOVE(30, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(35, MOVE_DIG), - LEVEL_UP_MOVE(41, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(53, MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 6, MOVE_BITE), - LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_TAUNT), - LEVEL_UP_MOVE(30, MOVE_PAY_DAY), - LEVEL_UP_MOVE(33, MOVE_SLASH), - LEVEL_UP_MOVE(38, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(41, MOVE_ASSURANCE), - LEVEL_UP_MOVE(46, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(50, MOVE_FEINT), - LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SWIFT), - LEVEL_UP_MOVE( 1, MOVE_SWIFT), - LEVEL_UP_MOVE( 1, MOVE_QUASH), - LEVEL_UP_MOVE( 1, MOVE_PLAY_ROUGH), - LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 6, MOVE_BITE), - LEVEL_UP_MOVE( 9, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(14, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(17, MOVE_SCREECH), - LEVEL_UP_MOVE(22, MOVE_FEINT_ATTACK), - LEVEL_UP_MOVE(25, MOVE_TAUNT), - LEVEL_UP_MOVE(32, MOVE_POWER_GEM), - LEVEL_UP_MOVE(37, MOVE_SLASH), - LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(49, MOVE_ASSURANCE), - LEVEL_UP_MOVE(56, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(61, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE(65, MOVE_FEINT), - LEVEL_UP_MOVE(69, MOVE_DARK_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 4, MOVE_CHARGE), - LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), - LEVEL_UP_MOVE(10, MOVE_ROLLOUT), - LEVEL_UP_MOVE(12, MOVE_SPARK), - LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(28, MOVE_STEALTH_ROCK), - LEVEL_UP_MOVE(30, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(34, MOVE_DISCHARGE), - LEVEL_UP_MOVE(36, MOVE_EXPLOSION), - LEVEL_UP_MOVE(40, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(42, MOVE_STONE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_CHARGE), - LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), - LEVEL_UP_MOVE( 4, MOVE_CHARGE), - LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), - LEVEL_UP_MOVE(10, MOVE_ROLLOUT), - LEVEL_UP_MOVE(12, MOVE_SPARK), - LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), - LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(40, MOVE_DISCHARGE), - LEVEL_UP_MOVE(44, MOVE_EXPLOSION), - LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1, MOVE_CHARGE), - LEVEL_UP_MOVE( 1, MOVE_ROCK_POLISH), - LEVEL_UP_MOVE( 4, MOVE_CHARGE), - LEVEL_UP_MOVE( 6, MOVE_ROCK_POLISH), - LEVEL_UP_MOVE(10, MOVE_STEAMROLLER), - LEVEL_UP_MOVE(12, MOVE_SPARK), - LEVEL_UP_MOVE(16, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(18, MOVE_SMACK_DOWN), - LEVEL_UP_MOVE(22, MOVE_THUNDER_PUNCH), - LEVEL_UP_MOVE(24, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(30, MOVE_STEALTH_ROCK), - LEVEL_UP_MOVE(34, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(40, MOVE_DISCHARGE), - LEVEL_UP_MOVE(44, MOVE_EXPLOSION), - LEVEL_UP_MOVE(50, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), - LEVEL_UP_MOVE(60, MOVE_HEAVY_SLAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_DISABLE), - LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE(18, MOVE_POISON_FANG), - LEVEL_UP_MOVE(21, MOVE_MINIMIZE), - LEVEL_UP_MOVE(26, MOVE_FLING), - LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(32, MOVE_CRUNCH), - LEVEL_UP_MOVE(37, MOVE_SCREECH), - LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), - LEVEL_UP_MOVE(43, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE(46, MOVE_BELCH), - LEVEL_UP_MOVE(48, MOVE_MEMENTO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), - LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE( 4, MOVE_HARDEN), - LEVEL_UP_MOVE( 7, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_DISABLE), - LEVEL_UP_MOVE(15, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE(18, MOVE_POISON_FANG), - LEVEL_UP_MOVE(21, MOVE_MINIMIZE), - LEVEL_UP_MOVE(26, MOVE_FLING), - LEVEL_UP_MOVE(29, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(32, MOVE_CRUNCH), - LEVEL_UP_MOVE(37, MOVE_SCREECH), - LEVEL_UP_MOVE(40, MOVE_GUNK_SHOT), - LEVEL_UP_MOVE(46, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE(52, MOVE_BELCH), - LEVEL_UP_MOVE(57, MOVE_MEMENTO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), - LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), - LEVEL_UP_MOVE( 1, MOVE_BARRAGE), - LEVEL_UP_MOVE( 1, MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(17, MOVE_PSYSHOCK), - LEVEL_UP_MOVE(27, MOVE_EGG_BOMB), - LEVEL_UP_MOVE(37, MOVE_WOOD_HAMMER), - LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 3, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7, MOVE_BONE_CLUB), - LEVEL_UP_MOVE(11, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(13, MOVE_LEER), - LEVEL_UP_MOVE(17, MOVE_HEX), - LEVEL_UP_MOVE(21, MOVE_BONEMERANG), - LEVEL_UP_MOVE(23, MOVE_WILL_O_WISP), - LEVEL_UP_MOVE(27, MOVE_SHADOW_BONE), - LEVEL_UP_MOVE(33, MOVE_THRASH), - LEVEL_UP_MOVE(37, MOVE_FLING), - LEVEL_UP_MOVE(43, MOVE_STOMPING_TANTRUM), - LEVEL_UP_MOVE(49, MOVE_ENDEAVOR), - LEVEL_UP_MOVE(53, MOVE_FLARE_BLITZ), - LEVEL_UP_MOVE(59, MOVE_RETALIATE), - LEVEL_UP_MOVE(65, MOVE_BONE_RUSH), - LEVEL_UP_END -}; - - -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE( 8, MOVE_SCRATCH), - LEVEL_UP_MOVE(12, MOVE_PAY_DAY), - LEVEL_UP_MOVE(16, MOVE_METAL_CLAW), - LEVEL_UP_MOVE(20, MOVE_TAUNT), - LEVEL_UP_MOVE(24, MOVE_SWAGGER), - LEVEL_UP_MOVE(29, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(32, MOVE_SCREECH), - LEVEL_UP_MOVE(36, MOVE_SLASH), - LEVEL_UP_MOVE(40, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(44, MOVE_THRASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE(10, MOVE_CONFUSION), - LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE(20, MOVE_AGILITY), - LEVEL_UP_MOVE(25, MOVE_PSYBEAM), - LEVEL_UP_MOVE(30, MOVE_STOMP), - LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), - LEVEL_UP_MOVE(41, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(45, MOVE_DAZZLING_GLEAM), - LEVEL_UP_MOVE(50, MOVE_PSYCHIC), - LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), - LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), - LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE(15, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE(20, MOVE_AGILITY), - LEVEL_UP_MOVE(25, MOVE_PSYBEAM), - LEVEL_UP_MOVE(30, MOVE_STOMP), - LEVEL_UP_MOVE(35, MOVE_HEAL_PULSE), - LEVEL_UP_MOVE(43, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(49, MOVE_DAZZLING_GLEAM), - LEVEL_UP_MOVE(56, MOVE_PSYCHIC), - LEVEL_UP_MOVE(63, MOVE_HEALING_WISH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 3, MOVE_GROWL), - LEVEL_UP_MOVE( 6, MOVE_ACID), - LEVEL_UP_MOVE( 9, MOVE_YAWN), - LEVEL_UP_MOVE(12, MOVE_CONFUSION), - LEVEL_UP_MOVE(15, MOVE_DISABLE), - LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(21, MOVE_HEADBUTT), - LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(27, MOVE_AMNESIA), - LEVEL_UP_MOVE(30, MOVE_SURF), - LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), - LEVEL_UP_MOVE(36, MOVE_PSYCHIC), - LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), - LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), - LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ACID), - LEVEL_UP_MOVE( 9, MOVE_YAWN), - LEVEL_UP_MOVE(12, MOVE_CONFUSION), - LEVEL_UP_MOVE(15, MOVE_DISABLE), - LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(21, MOVE_HEADBUTT), - LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(27, MOVE_AMNESIA), - LEVEL_UP_MOVE(30, MOVE_SURF), - LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), - LEVEL_UP_MOVE(36, MOVE_PSYCHIC), - LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 5, MOVE_LEER), - LEVEL_UP_MOVE(10, MOVE_FURY_CUTTER), - LEVEL_UP_MOVE(15, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE(20, MOVE_BRUTAL_SWING), - LEVEL_UP_MOVE(25, MOVE_DETECT), - LEVEL_UP_MOVE(30, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(35, MOVE_DEFOG), - LEVEL_UP_MOVE(40, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(45, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(50, MOVE_SLAM), - LEVEL_UP_MOVE(55, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE(60, MOVE_FINAL_GAMBIT), - LEVEL_UP_MOVE(65, MOVE_BRAVE_BIRD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), - LEVEL_UP_MOVE( 1, MOVE_DEFOG), - LEVEL_UP_MOVE( 1, MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 1, MOVE_SMOG), - LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1, MOVE_HAZE), - LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE( 1, MOVE_AROMATIC_MIST), - LEVEL_UP_MOVE(12, MOVE_CLEAR_SMOG), - LEVEL_UP_MOVE(16, MOVE_ASSURANCE), - LEVEL_UP_MOVE(20, MOVE_SLUDGE), - LEVEL_UP_MOVE(24, MOVE_AROMATHERAPY), - LEVEL_UP_MOVE(28, MOVE_SELF_DESTRUCT), - LEVEL_UP_MOVE(32, MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE(38, MOVE_TOXIC), - LEVEL_UP_MOVE(44, MOVE_BELCH), - LEVEL_UP_MOVE(50, MOVE_EXPLOSION), - LEVEL_UP_MOVE(56, MOVE_MEMENTO), - LEVEL_UP_MOVE(62, MOVE_DESTINY_BOND), - LEVEL_UP_MOVE(68, MOVE_MISTY_TERRAIN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_COPYCAT), - LEVEL_UP_MOVE( 1, MOVE_ENCORE), - LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 1, MOVE_RECYCLE), - LEVEL_UP_MOVE( 1, MOVE_MIMIC), - LEVEL_UP_MOVE( 1, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 1, MOVE_REFLECT), - LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), - LEVEL_UP_MOVE( 1, MOVE_MISTY_TERRAIN), - LEVEL_UP_MOVE( 1, MOVE_POUND), - LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 1, MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(12, MOVE_CONFUSION), - LEVEL_UP_MOVE(16, MOVE_ALLY_SWITCH), - LEVEL_UP_MOVE(20, MOVE_ICY_WIND), - LEVEL_UP_MOVE(24, MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE(28, MOVE_PSYBEAM), - LEVEL_UP_MOVE(32, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(36, MOVE_MIRROR_COAT), - LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(44, MOVE_FREEZE_DRY), - LEVEL_UP_MOVE(48, MOVE_PSYCHIC), - LEVEL_UP_MOVE(52, MOVE_TEETER_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), - LEVEL_UP_MOVE( 5, MOVE_CONFUSION), - LEVEL_UP_MOVE(10, MOVE_REFLECT), - LEVEL_UP_MOVE(15, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(20, MOVE_AGILITY), - LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(30, MOVE_TAILWIND), - LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), - LEVEL_UP_MOVE(40, MOVE_RECOVER), - LEVEL_UP_MOVE(45, MOVE_FREEZING_GLARE), - LEVEL_UP_MOVE(50, MOVE_DREAM_EATER), - LEVEL_UP_MOVE(55, MOVE_HURRICANE), - LEVEL_UP_MOVE(60, MOVE_MIND_READER), - LEVEL_UP_MOVE(65, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(70, MOVE_TRICK_ROOM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_PECK), - LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE(10, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(15, MOVE_PLUCK), - LEVEL_UP_MOVE(20, MOVE_AGILITY), - LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), - LEVEL_UP_MOVE(35, MOVE_DRILL_PECK), - LEVEL_UP_MOVE(40, MOVE_QUICK_GUARD), - LEVEL_UP_MOVE(45, MOVE_THUNDEROUS_KICK), - LEVEL_UP_MOVE(50, MOVE_BULK_UP), - LEVEL_UP_MOVE(55, MOVE_COUNTER), - LEVEL_UP_MOVE(60, MOVE_DETECT), - LEVEL_UP_MOVE(65, MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE(70, MOVE_REVERSAL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 5, MOVE_PAYBACK), - LEVEL_UP_MOVE(10, MOVE_SAFEGUARD), - LEVEL_UP_MOVE(15, MOVE_WING_ATTACK), - LEVEL_UP_MOVE(20, MOVE_AGILITY), - LEVEL_UP_MOVE(25, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(30, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(40, MOVE_AFTER_YOU), - LEVEL_UP_MOVE(45, MOVE_FIERY_WRATH), - LEVEL_UP_MOVE(50, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(55, MOVE_HURRICANE), - LEVEL_UP_MOVE(60, MOVE_ENDURE), - LEVEL_UP_MOVE(65, MOVE_MEMENTO), - LEVEL_UP_MOVE(70, MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), - LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), - LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), - LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE( 1, MOVE_SWAGGER), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_CURSE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_ACID), - LEVEL_UP_MOVE( 9, MOVE_YAWN), - LEVEL_UP_MOVE(12, MOVE_CONFUSION), - LEVEL_UP_MOVE(15, MOVE_DISABLE), - LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(21, MOVE_HEADBUTT), - LEVEL_UP_MOVE(24, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(27, MOVE_AMNESIA), - LEVEL_UP_MOVE(30, MOVE_SURF), - LEVEL_UP_MOVE(33, MOVE_SLACK_OFF), - LEVEL_UP_MOVE(36, MOVE_PSYCHIC), - LEVEL_UP_MOVE(39, MOVE_PSYCH_UP), - LEVEL_UP_MOVE(42, MOVE_RAIN_DANCE), - LEVEL_UP_MOVE(45, MOVE_HEAL_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_HARDEN), - LEVEL_UP_MOVE( 5, MOVE_ASTONISH), - LEVEL_UP_MOVE(10, MOVE_DISABLE), - LEVEL_UP_MOVE(15, MOVE_SPITE), - LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(25, MOVE_HEX), - LEVEL_UP_MOVE(30, MOVE_CURSE), - LEVEL_UP_MOVE(35, MOVE_STRENGTH_SAP), - LEVEL_UP_MOVE(40, MOVE_POWER_GEM), - LEVEL_UP_MOVE(45, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(50, MOVE_GRUDGE), - LEVEL_UP_MOVE(55, MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_LICK), - LEVEL_UP_MOVE( 9, MOVE_SNARL), - LEVEL_UP_MOVE(12, MOVE_HEADBUTT), - LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(18, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(21, MOVE_REST), - LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(27, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(30, MOVE_COUNTER), - LEVEL_UP_MOVE(33, MOVE_TAUNT), - LEVEL_UP_MOVE(36, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), - LEVEL_UP_MOVE( 1, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_LICK), - LEVEL_UP_MOVE( 9, MOVE_SNARL), - LEVEL_UP_MOVE(12, MOVE_HEADBUTT), - LEVEL_UP_MOVE(15, MOVE_HONE_CLAWS), - LEVEL_UP_MOVE(18, MOVE_FURY_SWIPES), - LEVEL_UP_MOVE(23, MOVE_REST), - LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), - LEVEL_UP_MOVE(33, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(38, MOVE_COUNTER), - LEVEL_UP_MOVE(43, MOVE_TAUNT), - LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -#if P_GEN_5_POKEMON == TRUE -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 4, MOVE_TAUNT), - LEVEL_UP_MOVE( 8, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_AVALANCHE), - LEVEL_UP_MOVE(16, MOVE_WORK_UP), - LEVEL_UP_MOVE(20, MOVE_ICE_FANG), - LEVEL_UP_MOVE(24, MOVE_HEADBUTT), - LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE(32, MOVE_UPROAR), - LEVEL_UP_MOVE(36, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(40, MOVE_BLIZZARD), - LEVEL_UP_MOVE(44, MOVE_THRASH), - LEVEL_UP_MOVE(48, MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), - LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), - LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_TAUNT), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_AVALANCHE), - LEVEL_UP_MOVE(16, MOVE_WORK_UP), - LEVEL_UP_MOVE(20, MOVE_ICE_FANG), - LEVEL_UP_MOVE(24, MOVE_HEADBUTT), - LEVEL_UP_MOVE(28, MOVE_ICE_PUNCH), - LEVEL_UP_MOVE(32, MOVE_UPROAR), - LEVEL_UP_MOVE(38, MOVE_BELLY_DRUM), - LEVEL_UP_MOVE(44, MOVE_BLIZZARD), - LEVEL_UP_MOVE(50, MOVE_THRASH), - LEVEL_UP_MOVE(56, MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ASTONISH), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 4, MOVE_HAZE), - LEVEL_UP_MOVE( 8, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(12, MOVE_DISABLE), - LEVEL_UP_MOVE(16, MOVE_BRUTAL_SWING), - LEVEL_UP_MOVE(20, MOVE_CRAFTY_SHIELD), - LEVEL_UP_MOVE(24, MOVE_HEX), - LEVEL_UP_MOVE(28, MOVE_MEAN_LOOK), - LEVEL_UP_MOVE(32, MOVE_SLAM), - LEVEL_UP_MOVE(36, MOVE_CURSE), - LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(44, MOVE_EARTHQUAKE), - LEVEL_UP_MOVE(48, MOVE_POWER_SPLIT), - LEVEL_UP_MOVE(48, MOVE_GUARD_SPLIT), - LEVEL_UP_MOVE(52, MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 5, MOVE_ENDURE), - LEVEL_UP_MOVE(10, MOVE_MUD_SHOT), - LEVEL_UP_MOVE(15, MOVE_REVENGE), - LEVEL_UP_MOVE(20, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(25, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(30, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(35, MOVE_BOUNCE), - LEVEL_UP_MOVE(40, MOVE_MUDDY_WATER), - LEVEL_UP_MOVE(45, MOVE_SNAP_TRAP), - LEVEL_UP_MOVE(50, MOVE_FLAIL), - LEVEL_UP_MOVE(55, MOVE_FISSURE), - LEVEL_UP_END -}; -#endif - -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { - 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( 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_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( 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_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( 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_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_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( 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_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( 1, MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 5, MOVE_AXE_KICK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { - 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( 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(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( 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( 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( 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( 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_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), - LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(13, MOVE_TELEPORT), - LEVEL_UP_MOVE(19, MOVE_TAUNT), - LEVEL_UP_MOVE(25, MOVE_PURSUIT), - LEVEL_UP_MOVE(31, MOVE_PSYCHIC), - LEVEL_UP_MOVE(37, MOVE_SUPERPOWER), - LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), - LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(55, MOVE_COSMIC_POWER), - LEVEL_UP_MOVE(61, MOVE_ZAP_CANNON), - LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), - LEVEL_UP_MOVE(73, MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDeoxysDefenseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(13, MOVE_TELEPORT), - LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(25, MOVE_SPIKES), - LEVEL_UP_MOVE(31, MOVE_PSYCHIC), - LEVEL_UP_MOVE(37, MOVE_SNATCH), - LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), - LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(55, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(55, MOVE_AMNESIA), - LEVEL_UP_MOVE(61, MOVE_RECOVER), - LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), - LEVEL_UP_MOVE(73, MOVE_COUNTER), - LEVEL_UP_MOVE(73, MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDeoxysSpeedLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_WRAP), - LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE(13, MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE(19, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(25, MOVE_PURSUIT), - LEVEL_UP_MOVE(31, MOVE_PSYCHIC), - LEVEL_UP_MOVE(37, MOVE_SWIFT), - LEVEL_UP_MOVE(43, MOVE_PSYCHO_SHIFT), - LEVEL_UP_MOVE(49, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(55, MOVE_AGILITY), - LEVEL_UP_MOVE(61, MOVE_RECOVER), - LEVEL_UP_MOVE(67, MOVE_PSYCHO_BOOST), - LEVEL_UP_MOVE(73, MOVE_EXTREME_SPEED), - LEVEL_UP_END -}; - -#if P_GEN_4_POKEMON == TRUE -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), - LEVEL_UP_MOVE(10, MOVE_PROTECT), - LEVEL_UP_MOVE(15, MOVE_BUG_BITE), - LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), - LEVEL_UP_MOVE(23, MOVE_CONFUSION), - LEVEL_UP_MOVE(26, MOVE_ROCK_BLAST), - LEVEL_UP_MOVE(29, MOVE_HARDEN), - LEVEL_UP_MOVE(32, MOVE_PSYBEAM), - LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(38, MOVE_FLAIL), - LEVEL_UP_MOVE(41, MOVE_ATTRACT), - LEVEL_UP_MOVE(44, MOVE_PSYCHIC), - LEVEL_UP_MOVE(47, MOVE_FISSURE), - LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), - LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), - LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_PROTECT), - LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), - LEVEL_UP_MOVE(10, MOVE_PROTECT), - LEVEL_UP_MOVE(15, MOVE_BUG_BITE), - LEVEL_UP_MOVE(20, MOVE_HIDDEN_POWER), - LEVEL_UP_MOVE(23, MOVE_CONFUSION), - LEVEL_UP_MOVE(26, MOVE_MIRROR_SHOT), - LEVEL_UP_MOVE(29, MOVE_METAL_SOUND), - LEVEL_UP_MOVE(32, MOVE_PSYBEAM), - LEVEL_UP_MOVE(35, MOVE_CAPTIVATE), - LEVEL_UP_MOVE(38, MOVE_FLAIL), - LEVEL_UP_MOVE(41, MOVE_ATTRACT), - LEVEL_UP_MOVE(44, MOVE_PSYCHIC), - LEVEL_UP_MOVE(47, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(50, MOVE_BUG_BUZZ), - LEVEL_UP_END -}; - -static const struct LevelUpMove sShayminSkyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_GROWTH), - LEVEL_UP_MOVE(10, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(19, MOVE_LEECH_SEED), - LEVEL_UP_MOVE(28, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE(37, MOVE_SWEET_SCENT), - LEVEL_UP_MOVE(46, MOVE_NATURAL_GIFT), - LEVEL_UP_MOVE(55, MOVE_WORRY_SEED), - LEVEL_UP_MOVE(64, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(73, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(82, MOVE_SWEET_KISS), - LEVEL_UP_MOVE(91, MOVE_LEAF_STORM), - LEVEL_UP_MOVE(100, MOVE_SEED_FLARE), - LEVEL_UP_END -}; -#endif - -#if P_GEN_5_POKEMON == TRUE -static const struct LevelUpMove sKyuremWhiteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 8, MOVE_IMPRISON), - LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(36, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_FUSION_FLARE), - LEVEL_UP_MOVE(50, MOVE_ICE_BURN), - LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(64, MOVE_NOBLE_ROAR), - LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), - LEVEL_UP_MOVE(78, MOVE_BLIZZARD), - LEVEL_UP_MOVE(85, MOVE_OUTRAGE), - LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKyuremBlackLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1, MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 8, MOVE_IMPRISON), - LEVEL_UP_MOVE(15, MOVE_ANCIENT_POWER), - LEVEL_UP_MOVE(22, MOVE_ICE_BEAM), - LEVEL_UP_MOVE(29, MOVE_DRAGON_BREATH), - LEVEL_UP_MOVE(36, MOVE_SLASH), - LEVEL_UP_MOVE(43, MOVE_FUSION_BOLT), - LEVEL_UP_MOVE(50, MOVE_FREEZE_SHOCK), - LEVEL_UP_MOVE(57, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(64, MOVE_NOBLE_ROAR), - LEVEL_UP_MOVE(71, MOVE_ENDEAVOR), - LEVEL_UP_MOVE(78, MOVE_BLIZZARD), - LEVEL_UP_MOVE(85, MOVE_OUTRAGE), - LEVEL_UP_MOVE(92, MOVE_HYPER_VOICE), - LEVEL_UP_END -}; -#endif - -#if P_GEN_6_POKEMON == TRUE -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), - LEVEL_UP_MOVE(10, MOVE_LUCKY_CHANT), - LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE(20, MOVE_WISH), - LEVEL_UP_MOVE(25, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(27, MOVE_GRASSY_TERRAIN), - LEVEL_UP_MOVE(33, MOVE_PETAL_BLIZZARD), - LEVEL_UP_MOVE(38, MOVE_AROMATHERAPY), - LEVEL_UP_MOVE(43, MOVE_MISTY_TERRAIN), - LEVEL_UP_MOVE(46, MOVE_MOONBLAST), - LEVEL_UP_MOVE(50, MOVE_LIGHT_OF_RUIN), - LEVEL_UP_MOVE(51, MOVE_PETAL_DANCE), - LEVEL_UP_MOVE(58, MOVE_SOLAR_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), - LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), - LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 1, MOVE_SCRATCH), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_COVET), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 5, MOVE_COVET), - LEVEL_UP_MOVE( 9, MOVE_CONFUSION), - LEVEL_UP_MOVE(13, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(17, MOVE_PSYBEAM), - LEVEL_UP_MOVE(19, MOVE_FAKE_OUT), - LEVEL_UP_MOVE(22, MOVE_DISARMING_VOICE), - LEVEL_UP_MOVE(25, MOVE_PSYSHOCK), - LEVEL_UP_MOVE(28, MOVE_CHARGE_BEAM), - LEVEL_UP_MOVE(31, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(35, MOVE_EXTRASENSORY), - LEVEL_UP_MOVE(40, MOVE_PSYCHIC), - LEVEL_UP_MOVE(43, MOVE_ROLE_PLAY), - LEVEL_UP_MOVE(45, MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE(48, MOVE_SUCKER_PUNCH), - LEVEL_UP_MOVE(50, MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE(53, MOVE_STORED_POWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHoopaUnboundLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_HYPERSPACE_HOLE), - LEVEL_UP_MOVE( 1, MOVE_TRICK), - LEVEL_UP_MOVE( 1, MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 1, MOVE_ALLY_SWITCH), - LEVEL_UP_MOVE( 1, MOVE_CONFUSION), - LEVEL_UP_MOVE( 6, MOVE_ASTONISH), - LEVEL_UP_MOVE(10, MOVE_MAGIC_COAT), - LEVEL_UP_MOVE(15, MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE(19, MOVE_PSYBEAM), - LEVEL_UP_MOVE(25, MOVE_SKILL_SWAP), - LEVEL_UP_MOVE(29, MOVE_POWER_SPLIT), - LEVEL_UP_MOVE(29, MOVE_GUARD_SPLIT), - LEVEL_UP_MOVE(46, MOVE_KNOCK_OFF), - LEVEL_UP_MOVE(50, MOVE_WONDER_ROOM), - LEVEL_UP_MOVE(50, MOVE_TRICK_ROOM), - LEVEL_UP_MOVE(55, MOVE_DARK_PULSE), - LEVEL_UP_MOVE(75, MOVE_PSYCHIC), - LEVEL_UP_MOVE(85, MOVE_HYPERSPACE_FURY), - LEVEL_UP_END -}; -#endif - -#if P_GEN_7_POKEMON == TRUE -static const struct LevelUpMove sLycanrocMidnightLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_COUNTER), - LEVEL_UP_MOVE( 1, MOVE_REVERSAL), - LEVEL_UP_MOVE( 1, MOVE_TAUNT), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_HOWL), - LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(26, MOVE_ROAR), - LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), - LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(40, MOVE_CRUNCH), - LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), - LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLycanrocDuskLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_THRASH), - LEVEL_UP_MOVE( 1, MOVE_ACCELEROCK), - LEVEL_UP_MOVE( 1, MOVE_COUNTER), - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1, MOVE_BITE), - LEVEL_UP_MOVE(12, MOVE_HOWL), - LEVEL_UP_MOVE(15, MOVE_ROCK_THROW), - LEVEL_UP_MOVE(18, MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE(23, MOVE_ROCK_TOMB), - LEVEL_UP_MOVE(26, MOVE_ROAR), - LEVEL_UP_MOVE(29, MOVE_STEALTH_ROCK), - LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(37, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(40, MOVE_CRUNCH), - LEVEL_UP_MOVE(45, MOVE_ROCK_CLIMB), - LEVEL_UP_MOVE(48, MOVE_STONE_EDGE), - LEVEL_UP_END -}; -#endif - -#if P_GEN_8_POKEMON == TRUE -static const struct LevelUpMove sToxtricityLowKeyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_SPARK), - LEVEL_UP_MOVE( 1, MOVE_SPARK), - LEVEL_UP_MOVE( 1, MOVE_EERIE_IMPULSE), - LEVEL_UP_MOVE( 1, MOVE_BELCH), - LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), - LEVEL_UP_MOVE( 1, MOVE_NUZZLE), - LEVEL_UP_MOVE( 1, MOVE_GROWL), - LEVEL_UP_MOVE( 1, MOVE_FLAIL), - LEVEL_UP_MOVE( 1, MOVE_ACID), - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE( 1, MOVE_LEER), - LEVEL_UP_MOVE( 1, MOVE_NOBLE_ROAR), - LEVEL_UP_MOVE( 4, MOVE_CHARGE), - LEVEL_UP_MOVE( 8, MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), - LEVEL_UP_MOVE(16, MOVE_TAUNT), - LEVEL_UP_MOVE(20, MOVE_VENOM_DRENCH), - LEVEL_UP_MOVE(24, MOVE_SCREECH), - LEVEL_UP_MOVE(28, MOVE_SWAGGER), - LEVEL_UP_MOVE(32, MOVE_TOXIC), - LEVEL_UP_MOVE(36, MOVE_DISCHARGE), - LEVEL_UP_MOVE(40, MOVE_POISON_JAB), - LEVEL_UP_MOVE(44, MOVE_OVERDRIVE), - LEVEL_UP_MOVE(48, MOVE_BOOMBURST), - LEVEL_UP_MOVE(52, MOVE_MAGNETIC_FLUX), - LEVEL_UP_END -}; - -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), - LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), - LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), - LEVEL_UP_MOVE(10, MOVE_DISARMING_VOICE), - LEVEL_UP_MOVE(15, MOVE_PSYBEAM), - LEVEL_UP_MOVE(20, MOVE_HELPING_HAND), - LEVEL_UP_MOVE(25, MOVE_FOLLOW_ME), - LEVEL_UP_MOVE(30, MOVE_AROMATHERAPY), - LEVEL_UP_MOVE(35, MOVE_PSYCHIC), - LEVEL_UP_MOVE(40, MOVE_CALM_MIND), - LEVEL_UP_MOVE(45, MOVE_GUARD_SPLIT), - LEVEL_UP_MOVE(50, MOVE_PSYCHIC_TERRAIN), - LEVEL_UP_MOVE(55, MOVE_HEALING_WISH), - LEVEL_UP_END -}; - static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), @@ -19779,7 +20753,134 @@ static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_FOCUS_PUNCH), LEVEL_UP_END }; +#endif //P_FAMILY_KUBFU +#if P_FAMILY_ZARUDE +static const struct LevelUpMove sZarudeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BIND), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_LEER), + LEVEL_UP_MOVE(12, MOVE_VINE_WHIP), + LEVEL_UP_MOVE(18, MOVE_GROWTH), + LEVEL_UP_MOVE(24, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(30, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(36, MOVE_GRASS_KNOT), + LEVEL_UP_MOVE(42, MOVE_BITE), + LEVEL_UP_MOVE(48, MOVE_U_TURN), + LEVEL_UP_MOVE(54, MOVE_SWAGGER), + LEVEL_UP_MOVE(60, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(66, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(72, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(78, MOVE_THRASH), + LEVEL_UP_MOVE(84, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(90, MOVE_JUNGLE_HEALING), + LEVEL_UP_END +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const struct LevelUpMove sRegielekiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 6, MOVE_ELECTROWEB), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(24, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(30, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE(36, MOVE_THUNDER_CAGE), + LEVEL_UP_MOVE(42, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(48, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LOCK_ON), + LEVEL_UP_MOVE(66, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const struct LevelUpMove sRegidragoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(18, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(24, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(30, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(48, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_LASER_FOCUS), + LEVEL_UP_MOVE(66, MOVE_DRAGON_ENERGY), + LEVEL_UP_MOVE(72, MOVE_HYPER_BEAM), + LEVEL_UP_MOVE(78, MOVE_EXPLOSION), + LEVEL_UP_END +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const struct LevelUpMove sGlastrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_AVALANCHE), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(30, MOVE_MIST), + LEVEL_UP_MOVE(36, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_TAUNT), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_SWORDS_DANCE), + LEVEL_UP_END +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const struct LevelUpMove sSpectrierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(12, MOVE_HEX), + LEVEL_UP_MOVE(18, MOVE_STOMP), + LEVEL_UP_MOVE(24, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(30, MOVE_HAZE), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_THRASH), + LEVEL_UP_MOVE(60, MOVE_DISABLE), + LEVEL_UP_MOVE(66, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(72, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 8, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(16, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(24, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(32, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(40, MOVE_AROMATHERAPY), + LEVEL_UP_MOVE(48, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC), + LEVEL_UP_MOVE(64, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(72, MOVE_HEAL_PULSE), + LEVEL_UP_MOVE(80, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), + LEVEL_UP_END +}; + +#if P_FUSION_FORMS static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -19813,7 +20914,9 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), LEVEL_UP_END }; +#endif //P_FUSION_FORMS +#if P_FUSION_FORMS static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -19847,9 +20950,33 @@ static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { LEVEL_UP_MOVE(88, MOVE_FUTURE_SIGHT), LEVEL_UP_END }; -#endif +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX -#if P_GEN_9_POKEMON == TRUE +#if P_FAMILY_ENAMORUS +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + 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 //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -19906,7 +21033,9 @@ static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_SPRIGATITO +#if P_FAMILY_FUECOCO static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -19962,7 +21091,9 @@ static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_OVERHEAT), LEVEL_UP_END }; +#endif //P_FAMILY_FUECOCO +#if P_FAMILY_QUAXLY static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -20020,7 +21151,9 @@ static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), LEVEL_UP_END }; +#endif //P_FAMILY_QUAXLY +#if P_FAMILY_LECHONK static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -20075,7 +21208,9 @@ static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { LEVEL_UP_MOVE(51, MOVE_BELCH), LEVEL_UP_END }; +#endif //P_FAMILY_LECHONK +#if P_FAMILY_TAROUNTULA static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), @@ -20112,7 +21247,9 @@ static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), LEVEL_UP_END }; +#endif //P_FAMILY_TAROUNTULA +#if P_FAMILY_NYMBLE static const struct LevelUpMove sNymbleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -20152,7 +21289,9 @@ static const struct LevelUpMove sLokixLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_AXE_KICK), LEVEL_UP_END }; +#endif //P_FAMILY_NYMBLE +#if P_FAMILY_PAWMI static const struct LevelUpMove sPawmiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -20214,7 +21353,9 @@ static const struct LevelUpMove sPawmotLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), LEVEL_UP_END }; +#endif //P_FAMILY_PAWMI +#if P_FAMILY_TANDEMAUS static const struct LevelUpMove sTandemausLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), @@ -20252,7 +21393,9 @@ static const struct LevelUpMove sMausholdLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), LEVEL_UP_END }; +#endif //P_FAMILY_TANDEMAUS +#if P_FAMILY_FIDOUGH static const struct LevelUpMove sFidoughLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -20290,7 +21433,9 @@ static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), LEVEL_UP_END }; +#endif //P_FAMILY_FIDOUGH +#if P_FAMILY_SMOLIV static const struct LevelUpMove sSmolivLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), @@ -20345,7 +21490,9 @@ static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), LEVEL_UP_END }; +#endif //P_FAMILY_SMOLIV +#if P_FAMILY_SQUAWKABILLY static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -20365,7 +21512,9 @@ static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_REVERSAL), LEVEL_UP_END }; +#endif //P_FAMILY_SQUAWKABILLY +#if P_FAMILY_NACLI static const struct LevelUpMove sNacliLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -20425,7 +21574,9 @@ static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_EXPLOSION), LEVEL_UP_END }; +#endif //P_FAMILY_NACLI +#if P_FAMILY_CHARCADET static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -20481,7 +21632,9 @@ static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), LEVEL_UP_END }; +#endif //P_FAMILY_CHARCADET +#if P_FAMILY_TADBULB static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), @@ -20516,7 +21669,9 @@ static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), LEVEL_UP_END }; +#endif //P_FAMILY_TADBULB +#if P_FAMILY_WATTREL static const struct LevelUpMove sWattrelLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -20550,7 +21705,9 @@ static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_HURRICANE), LEVEL_UP_END }; +#endif //P_FAMILY_WATTREL +#if P_FAMILY_MASCHIFF static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -20590,7 +21747,9 @@ static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_OUTRAGE), LEVEL_UP_END }; +#endif //P_FAMILY_MASCHIFF +#if P_FAMILY_SHROODLE static const struct LevelUpMove sShroodleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -20628,7 +21787,9 @@ static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), LEVEL_UP_END }; +#endif //P_FAMILY_SHROODLE +#if P_FAMILY_BRAMBLIN static const struct LevelUpMove sBramblinLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), @@ -20666,7 +21827,9 @@ static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), LEVEL_UP_END }; +#endif //P_FAMILY_BRAMBLIN +#if P_FAMILY_TOEDSCOOL static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WRAP), LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), @@ -20709,7 +21872,9 @@ static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), LEVEL_UP_END }; +#endif //P_FAMILY_TOEDSCOOL +#if P_FAMILY_KLAWF static const struct LevelUpMove sKlawfLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), @@ -20728,7 +21893,9 @@ static const struct LevelUpMove sKlawfLevelUpLearnset[] = { LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), LEVEL_UP_END }; +#endif //P_FAMILY_KLAWF +#if P_FAMILY_CAPSAKID static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), @@ -20765,7 +21932,9 @@ static const struct LevelUpMove sScovillainLevelUpLearnset[] = { LEVEL_UP_MOVE(48, MOVE_OVERHEAT), LEVEL_UP_END }; +#endif //P_FAMILY_CAPSAKID +#if P_FAMILY_RELLOR static const struct LevelUpMove sRellorLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -20800,7 +21969,9 @@ static const struct LevelUpMove sRabscaLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_PSYCHIC), LEVEL_UP_END }; +#endif //P_FAMILY_RELLOR +#if P_FAMILY_FLITTLE static const struct LevelUpMove sFlittleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -20834,7 +22005,9 @@ static const struct LevelUpMove sEspathraLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), LEVEL_UP_END }; +#endif //P_FAMILY_FLITTLE +#if P_FAMILY_TINKATINK static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), @@ -20895,7 +22068,9 @@ static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), LEVEL_UP_END }; +#endif //P_FAMILY_TINKATINK +#if P_FAMILY_WIGLETT static const struct LevelUpMove sWiglettLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -20928,7 +22103,9 @@ static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), LEVEL_UP_END }; +#endif //P_FAMILY_WIGLETT +#if P_FAMILY_BOMBIRDIER static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -20948,7 +22125,9 @@ static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), LEVEL_UP_END }; +#endif //P_FAMILY_BOMBIRDIER +#if P_FAMILY_FINIZEN static const struct LevelUpMove sFinizenLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -20986,7 +22165,9 @@ static const struct LevelUpMove sPalafinLevelUpLearnset[] = { LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), LEVEL_UP_END }; +#endif //P_FAMILY_FINIZEN +#if P_FAMILY_VAROOM static const struct LevelUpMove sVaroomLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LICK), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), @@ -21026,7 +22207,9 @@ static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), LEVEL_UP_END }; +#endif //P_FAMILY_VAROOM +#if P_FAMILY_CYCLIZAR static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -21044,7 +22227,9 @@ static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), LEVEL_UP_END }; +#endif //P_FAMILY_CYCLIZAR +#if P_FAMILY_ORTHWORM static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WRAP), @@ -21062,7 +22247,9 @@ static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), LEVEL_UP_END }; +#endif //P_FAMILY_ORTHWORM +#if P_FAMILY_GLIMMET static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -21101,7 +22288,9 @@ static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), LEVEL_UP_END }; +#endif //P_FAMILY_GLIMMET +#if P_FAMILY_GREAVARD static const struct LevelUpMove sGreavardLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -21140,7 +22329,9 @@ static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; +#endif //P_FAMILY_GREAVARD +#if P_FAMILY_FLAMIGO static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_COPYCAT), @@ -21159,7 +22350,9 @@ static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), LEVEL_UP_END }; +#endif //P_FAMILY_FLAMIGO +#if P_FAMILY_CETODDLE static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -21197,7 +22390,9 @@ static const struct LevelUpMove sCetitanLevelUpLearnset[] = { LEVEL_UP_MOVE(53, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_CETODDLE +#if P_FAMILY_VELUZA static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -21214,7 +22409,9 @@ static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), LEVEL_UP_END }; +#endif //P_FAMILY_VELUZA +#if P_FAMILY_DONDOZO static const struct LevelUpMove sDondozoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), @@ -21235,7 +22432,9 @@ static const struct LevelUpMove sDondozoLevelUpLearnset[] = { LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), LEVEL_UP_END }; +#endif //P_FAMILY_DONDOZO +#if P_FAMILY_TATSUGIRI static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), LEVEL_UP_MOVE( 1, MOVE_SPLASH), @@ -21251,109 +22450,9 @@ static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), LEVEL_UP_END }; +#endif //P_FAMILY_TATSUGIRI -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 -}; - +#if P_FAMILY_GREAT_TUSK static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -21374,7 +22473,9 @@ static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), LEVEL_UP_END }; +#endif //P_FAMILY_GREAT_TUSK +#if P_FAMILY_SCREAM_TAIL static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_SING), @@ -21394,7 +22495,9 @@ static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_BOOMBURST), LEVEL_UP_END }; +#endif //P_FAMILY_SCREAM_TAIL +#if P_FAMILY_BRUTE_BONNET static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_GROWTH), @@ -21413,7 +22516,9 @@ static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_BRUTE_BONNET +#if P_FAMILY_FLUTTER_MANE static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), LEVEL_UP_MOVE( 1, MOVE_SPITE), @@ -21433,7 +22538,9 @@ static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), LEVEL_UP_END }; +#endif //P_FAMILY_FLUTTER_MANE +#if P_FAMILY_SLITHER_WING static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_EMBER), @@ -21454,7 +22561,9 @@ static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_THRASH), LEVEL_UP_END }; +#endif //P_FAMILY_SLITHER_WING +#if P_FAMILY_SANDY_SHOCKS static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), @@ -21475,7 +22584,9 @@ static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), LEVEL_UP_END }; +#endif //P_FAMILY_SANDY_SHOCKS +#if P_FAMILY_IRON_TREADS static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -21495,7 +22606,9 @@ static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_TREADS +#if P_FAMILY_IRON_BUNDLE static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PRESENT), LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), @@ -21513,7 +22626,9 @@ static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_BLIZZARD), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_BUNDLE +#if P_FAMILY_IRON_HANDS static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -21534,7 +22649,9 @@ static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_HANDS +#if P_FAMILY_IRON_JUGULIS static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), LEVEL_UP_MOVE( 1, MOVE_WORK_UP), @@ -21555,7 +22672,9 @@ static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_JUGULIS +#if P_FAMILY_IRON_MOTH static const struct LevelUpMove sIronMothLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), @@ -21576,7 +22695,9 @@ static const struct LevelUpMove sIronMothLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_OVERHEAT), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_MOTH +#if P_FAMILY_IRON_THORNS static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), @@ -21597,7 +22718,9 @@ static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_THORNS +#if P_FAMILY_FRIGIBAX static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -21651,7 +22774,9 @@ static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), LEVEL_UP_END }; +#endif //P_FAMILY_FRIGIBAX +#if P_FAMILY_GIMMIGHOUL static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -21673,7 +22798,9 @@ static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { LEVEL_UP_MOVE(70, MOVE_MEMENTO), LEVEL_UP_END }; +#endif //P_FAMILY_GIMMIGHOUL +#if P_FAMILY_WO_CHIEN static const struct LevelUpMove sWoChienLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 1, MOVE_SPITE), @@ -21696,7 +22823,9 @@ static const struct LevelUpMove sWoChienLevelUpLearnset[] = { LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_WO_CHIEN +#if P_FAMILY_CHIEN_PAO static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SPITE), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -21719,7 +22848,9 @@ static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), LEVEL_UP_END }; +#endif //P_FAMILY_CHIEN_PAO +#if P_FAMILY_TING_LU static const struct LevelUpMove sTingLuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), @@ -21741,7 +22872,9 @@ static const struct LevelUpMove sTingLuLevelUpLearnset[] = { LEVEL_UP_MOVE(75, MOVE_FISSURE), LEVEL_UP_END }; +#endif //P_FAMILY_TING_LU +#if P_FAMILY_CHI_YU static const struct LevelUpMove sChiYuLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 1, MOVE_SPITE), @@ -21763,7 +22896,9 @@ static const struct LevelUpMove sChiYuLevelUpLearnset[] = { LEVEL_UP_MOVE(75, MOVE_OVERHEAT), LEVEL_UP_END }; +#endif //P_FAMILY_CHI_YU +#if P_FAMILY_ROARING_MOON static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -21784,7 +22919,9 @@ static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), LEVEL_UP_END }; +#endif //P_FAMILY_ROARING_MOON +#if P_FAMILY_IRON_VALIANT static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DISABLE), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), @@ -21806,7 +22943,9 @@ static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_VALIANT +#if P_FAMILY_KORAIDON static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), @@ -21826,7 +22965,9 @@ static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_KORAIDON +#if P_FAMILY_MIRAIDON static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), @@ -21846,7 +22987,9 @@ static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), LEVEL_UP_END }; +#endif //P_FAMILY_MIRAIDON +#if P_FAMILY_WALKING_WAKE static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_ROAR), @@ -21865,7 +23008,9 @@ static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), LEVEL_UP_END }; +#endif //P_FAMILY_WALKING_WAKE +#if P_FAMILY_IRON_LEAVES static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), @@ -21886,26 +23031,9 @@ static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), LEVEL_UP_END }; +#endif //P_FAMILY_IRON_LEAVES -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 -}; - +#if P_FAMILY_POLTCHAGEIST static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -21940,7 +23068,9 @@ static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), LEVEL_UP_END }; +#endif //P_FAMILY_POLTCHAGEIST +#if P_FAMILY_OKIDOGI static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), @@ -21956,7 +23086,9 @@ static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), LEVEL_UP_END }; +#endif //P_FAMILY_OKIDOGI +#if P_FAMILY_MUNKIDORI static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_CONFUSION), @@ -21973,7 +23105,9 @@ static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), LEVEL_UP_END }; +#endif //P_FAMILY_MUNKIDORI +#if P_FAMILY_FEZANDIPITI static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), LEVEL_UP_MOVE( 1, MOVE_PECK), @@ -21991,7 +23125,9 @@ static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { LEVEL_UP_MOVE(72, MOVE_MOONBLAST), LEVEL_UP_END }; +#endif //P_FAMILY_FEZANDIPITI +#if P_FAMILY_OGERPON static const struct LevelUpMove sOgerponLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), @@ -22010,5 +23146,4 @@ static const struct LevelUpMove sOgerponLevelUpLearnset[] = { 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 a8bca961a3..0000000000 --- a/src/data/pokemon/pokedex_entries.h +++ /dev/null @@ -1,12229 +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 -#if P_GEN_9_POKEMON == TRUE - [NATIONAL_DEX_SPRIGATITO] = - { - .description = gSprigatitoPokedexText, - .categoryName = _("Grass Cat"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 41, - }, - - [NATIONAL_DEX_FLORAGATO] = - { - .description = gFloragatoPokedexText, - .categoryName = _("Grass Cat"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 9, - .weight = 122, - }, - - [NATIONAL_DEX_MEOWSCARADA] = - { - .description = gMeowscaradaPokedexText, - .categoryName = _("Magician"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 15, - .weight = 312, - }, - - [NATIONAL_DEX_FUECOCO] = - { - .description = gFuecocoPokedexText, - .categoryName = _("Fire Croc"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 98, - }, - - [NATIONAL_DEX_CROCALOR] = - { - .description = gCrocalorPokedexText, - .categoryName = _("Fire Croc"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 10, - .weight = 307, - }, - - [NATIONAL_DEX_SKELEDIRGE] = - { - .description = gSkeledirgePokedexText, - .categoryName = _("Singer"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 16, - .weight = 3265, - }, - - [NATIONAL_DEX_QUAXLY] = - { - .description = gQuaxlyPokedexText, - .categoryName = _("Duckling"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 5, - .weight = 61, - }, - - [NATIONAL_DEX_QUAXWELL] = - { - .description = gQuaxwellPokedexText, - .categoryName = _("Practicing"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 215, - }, - - [NATIONAL_DEX_QUAQUAVAL] = - { - .description = gQuaquavalPokedexText, - .categoryName = _("Dancer"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 18, - .weight = 619, - }, - - [NATIONAL_DEX_LECHONK] = - { - .description = gLechonkPokedexText, - .categoryName = _("Hog"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 5, - .weight = 102, - }, - - [NATIONAL_DEX_OINKOLOGNE] = - { - .description = gOinkolognePokedexText, - .categoryName = _("Hog"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 10, - .weight = 1200, - }, - - [NATIONAL_DEX_TAROUNTULA] = - { - .description = gTarountulaPokedexText, - .categoryName = _("String Ball"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 40, - }, - - [NATIONAL_DEX_SPIDOPS] = - { - .description = gSpidopsPokedexText, - .categoryName = _("Trap"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 10, - .weight = 165, - }, - - [NATIONAL_DEX_NYMBLE] = - { - .description = gNymblePokedexText, - .categoryName = _("Grasshopper"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 2, - .weight = 10, - }, - - [NATIONAL_DEX_LOKIX] = - { - .description = gLokixPokedexText, - .categoryName = _("Grasshopper"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 10, - .weight = 175, - }, - - [NATIONAL_DEX_PAWMI] = - { - .description = gPawmiPokedexText, - .categoryName = _("Mouse"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 25, - }, - - [NATIONAL_DEX_PAWMO] = - { - .description = gPawmoPokedexText, - .categoryName = _("Mouse"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 65, - }, - - [NATIONAL_DEX_PAWMOT] = - { - .description = gPawmotPokedexText, - .categoryName = _("Hands-On"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 9, - .weight = 410, - }, - - [NATIONAL_DEX_TANDEMAUS] = - { - .description = gTandemausPokedexText, - .categoryName = _("Couple"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 18, - }, - - [NATIONAL_DEX_MAUSHOLD] = - { - .description = gMausholdPokedexText, - .categoryName = _("Family"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 28, - }, - - [NATIONAL_DEX_FIDOUGH] = - { - .description = gFidoughPokedexText, - .categoryName = _("Puppy"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 109, - }, - - [NATIONAL_DEX_DACHSBUN] = - { - .description = gDachsbunPokedexText, - .categoryName = _("Dog"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 5, - .weight = 149, - }, - - [NATIONAL_DEX_SMOLIV] = - { - .description = gSmolivPokedexText, - .categoryName = _("Olive"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 65, - }, - - [NATIONAL_DEX_DOLLIV] = - { - .description = gDollivPokedexText, - .categoryName = _("Olive"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 6, - .weight = 119, - }, - - [NATIONAL_DEX_ARBOLIVA] = - { - .description = gArbolivaPokedexText, - .categoryName = _("Olive"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 14, - .weight = 482, - }, - - [NATIONAL_DEX_SQUAWKABILLY] = - { - .description = gSquawkabillyPokedexText, - .categoryName = _("Parrot"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 6, - .weight = 24, - }, - - [NATIONAL_DEX_NACLI] = - { - .description = gNacliPokedexText, - .categoryName = _("Rock Salt"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 160, - }, - - [NATIONAL_DEX_NACLSTACK] = - { - .description = gNaclstackPokedexText, - .categoryName = _("Rock Salt"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 6, - .weight = 1050, - }, - - [NATIONAL_DEX_GARGANACL] = - { - .description = gGarganaclPokedexText, - .categoryName = _("Rock Salt"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 23, - .weight = 2400, - }, - - [NATIONAL_DEX_CHARCADET] = - { - .description = gCharcadetPokedexText, - .categoryName = _("Fire Child"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 6, - .weight = 105, - }, - - [NATIONAL_DEX_ARMAROUGE] = - { - .description = gArmarougePokedexText, - .categoryName = _("Fire Warrior"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 15, - .weight = 850, - }, - - [NATIONAL_DEX_CERULEDGE] = - { - .description = gCeruledgePokedexText, - .categoryName = _("Fire Blades"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 16, - .weight = 620, - }, - - [NATIONAL_DEX_TADBULB] = - { - .description = gTadbulbPokedexText, - .categoryName = _("EleTadpole"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 4, - }, - - [NATIONAL_DEX_BELLIBOLT] = - { - .description = gBelliboltPokedexText, - .categoryName = _("EleFrog"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 1130, - }, - - [NATIONAL_DEX_WATTREL] = - { - .description = gWattrelPokedexText, - .categoryName = _("Storm Petrel"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 36, - }, - - [NATIONAL_DEX_KILOWATTREL] = - { - .description = gKilowattrelPokedexText, - .categoryName = _("Frigatebird"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 14, - .weight = 386, - }, - - [NATIONAL_DEX_MASCHIFF] = - { - .description = gMaschiffPokedexText, - .categoryName = _("Rascal"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 5, - .weight = 160, - }, - - [NATIONAL_DEX_MABOSSTIFF] = - { - .description = gMabosstiffPokedexText, - .categoryName = _("Boss"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 11, - .weight = 610, - }, - - [NATIONAL_DEX_SHROODLE] = - { - .description = gShroodlePokedexText, - .categoryName = _("Toxic Mouse"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 2, - .weight = 7, - }, - - [NATIONAL_DEX_GRAFAIAI] = - { - .description = gGrafaiaiPokedexText, - .categoryName = _("Toxic Monkey"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 7, - .weight = 272, - }, - - [NATIONAL_DEX_BRAMBLIN] = - { - .description = gBramblinPokedexText, - .categoryName = _("Tumbleweed"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 6, - .weight = 6, - }, - - [NATIONAL_DEX_BRAMBLEGHAST] = - { - .description = gBrambleghastPokedexText, - .categoryName = _("Tumbleweed"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 60, - }, - - [NATIONAL_DEX_TOEDSCOOL] = - { - .description = gToedscoolPokedexText, - .categoryName = _("Woodear"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 9, - .weight = 330, - }, - - [NATIONAL_DEX_TOEDSCRUEL] = - { - .description = gToedscruelPokedexText, - .categoryName = _("Woodear"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 19, - .weight = 580, - }, - - [NATIONAL_DEX_KLAWF] = - { - .description = gKlawfPokedexText, - .categoryName = _("Ambush"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 13, - .weight = 790, - }, - - [NATIONAL_DEX_CAPSAKID] = - { - .description = gCapsakidPokedexText, - .categoryName = _("Spicy Pepper"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 30, - }, - - [NATIONAL_DEX_SCOVILLAIN] = - { - .description = gScovillainPokedexText, - .categoryName = _("Spicy Pepper"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 9, - .weight = 150, - }, - - [NATIONAL_DEX_RELLOR] = - { - .description = gRellorPokedexText, - .categoryName = _("Rolling"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 2, - .weight = 10, - }, - - [NATIONAL_DEX_RABSCA] = - { - .description = gRabscaPokedexText, - .categoryName = _("Rolling"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 35, - }, - - [NATIONAL_DEX_FLITTLE] = - { - .description = gFlittlePokedexText, - .categoryName = _("Frill"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 2, - .weight = 15, - }, - - [NATIONAL_DEX_ESPATHRA] = - { - .description = gEspathraPokedexText, - .categoryName = _("Ostrich"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 19, - .weight = 900, - }, - - [NATIONAL_DEX_TINKATINK] = - { - .description = gTinkatinkPokedexText, - .categoryName = _("Metalsmith"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 89, - }, - - [NATIONAL_DEX_TINKATUFF] = - { - .description = gTinkatuffPokedexText, - .categoryName = _("Hammer"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 7, - .weight = 591, - }, - - [NATIONAL_DEX_TINKATON] = - { - .description = gTinkatonPokedexText, - .categoryName = _("Hammer"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 7, - .weight = 1128, - }, - - [NATIONAL_DEX_WIGLETT] = - { - .description = gWiglettPokedexText, - .categoryName = _("Garden Eel"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 18, - }, - - [NATIONAL_DEX_WUGTRIO] = - { - .description = gWugtrioPokedexText, - .categoryName = _("Garden Eel"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 54, - }, - - [NATIONAL_DEX_BOMBIRDIER] = - { - .description = gBombirdierPokedexText, - .categoryName = _("Item Drop"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 15, - .weight = 429, - }, - - [NATIONAL_DEX_FINIZEN] = - { - .description = gFinizenPokedexText, - .categoryName = _("Dolphin"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 13, - .weight = 602, - }, - - [NATIONAL_DEX_PALAFIN] = - { - .description = gPalafinPokedexText, - .categoryName = _("Dolphin"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 13, - .weight = 602, - }, - - [NATIONAL_DEX_VAROOM] = - { - .description = gVaroomPokedexText, - .categoryName = _("Single-Cyl"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 10, - .weight = 350, - }, - - [NATIONAL_DEX_REVAVROOM] = - { - .description = gRevavroomPokedexText, - .categoryName = _("Multi-Cyl"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 18, - .weight = 1200, - }, - - [NATIONAL_DEX_CYCLIZAR] = - { - .description = gCyclizarPokedexText, - .categoryName = _("Mount"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 16, - .weight = 630, - }, - - [NATIONAL_DEX_ORTHWORM] = - { - .description = gOrthwormPokedexText, - .categoryName = _("Earthworm"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 25, - .weight = 3100, - }, - - [NATIONAL_DEX_GLIMMET] = - { - .description = gGlimmetPokedexText, - .categoryName = _("Ore"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 7, - .weight = 80, - }, - - [NATIONAL_DEX_GLIMMORA] = - { - .description = gGlimmoraPokedexText, - .categoryName = _("Ore"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 15, - .weight = 450, - }, - - [NATIONAL_DEX_GREAVARD] = - { - .description = gGreavardPokedexText, - .categoryName = _("Ghost Dog"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 6, - .weight = 350, - }, - - [NATIONAL_DEX_HOUNDSTONE] = - { - .description = gHoundstonePokedexText, - .categoryName = _("Ghost Dog"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 20, - .weight = 150, - }, - - [NATIONAL_DEX_FLAMIGO] = - { - .description = gFlamigoPokedexText, - .categoryName = _("Synchronize"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 16, - .weight = 370, - }, - - [NATIONAL_DEX_CETODDLE] = - { - .description = gCetoddlePokedexText, - .categoryName = _("Terra Whale"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 450, - }, - - [NATIONAL_DEX_CETITAN] = - { - .description = gCetitanPokedexText, - .categoryName = _("Terra Whale"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 45, - .weight = 7000, - }, - - [NATIONAL_DEX_VELUZA] = - { - .description = gVeluzaPokedexText, - .categoryName = _("Jettison"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 25, - .weight = 900, - }, - - [NATIONAL_DEX_DONDOZO] = - { - .description = gDondozoPokedexText, - .categoryName = _("Big Catfish"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 120, - .weight = 2200, - }, - - [NATIONAL_DEX_TATSUGIRI] = - { - .description = gTatsugiriPokedexText, - .categoryName = _("Mimicry"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 80, - }, - - [NATIONAL_DEX_ANNIHILAPE] = - { - .description = gAnnihilapePokedexText, - .categoryName = _("Rage Monkey"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 560, - }, - - [NATIONAL_DEX_CLODSIRE] = - { - .description = gClodsirePokedexText, - .categoryName = _("Spiny Fish"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 18, - .weight = 2230, - }, - - [NATIONAL_DEX_FARIGIRAF] = - { - .description = gFarigirafPokedexText, - .categoryName = _("Long Neck"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 32, - .weight = 1600, - }, - - [NATIONAL_DEX_DUDUNSPARCE] = - { - .description = gDudunsparcePokedexText, - .categoryName = _("Land Snake"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 36, - .weight = 392, - }, - - [NATIONAL_DEX_KINGAMBIT] = - { - .description = gKingambitPokedexText, - .categoryName = _("Big Blade"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 20, - .weight = 1200, - }, - - [NATIONAL_DEX_GREAT_TUSK] = - { - .description = gGreatTuskPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 22, - .weight = 3200, - }, - - [NATIONAL_DEX_SCREAM_TAIL] = - { - .description = gScreamTailPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 80, - }, - - [NATIONAL_DEX_BRUTE_BONNET] = - { - .description = gBruteBonnetPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 210, - }, - - [NATIONAL_DEX_FLUTTER_MANE] = - { - .description = gFlutterManePokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 14, - .weight = 40, - }, - - [NATIONAL_DEX_SLITHER_WING] = - { - .description = gSlitherWingPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 32, - .weight = 920, - }, - - [NATIONAL_DEX_SANDY_SHOCKS] = - { - .description = gSandyShocksPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 23, - .weight = 600, - }, - - [NATIONAL_DEX_IRON_TREADS] = - { - .description = gIronTreadsPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 9, - .weight = 2400, - }, - - [NATIONAL_DEX_IRON_BUNDLE] = - { - .description = gIronBundlePokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 6, - .weight = 110, - }, - - [NATIONAL_DEX_IRON_HANDS] = - { - .description = gIronHandsPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 18, - .weight = 3807, - }, - - [NATIONAL_DEX_IRON_JUGULIS] = - { - .description = gIronJugulisPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 13, - .weight = 1110, - }, - - [NATIONAL_DEX_IRON_MOTH] = - { - .description = gIronMothPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 360, - }, - - [NATIONAL_DEX_IRON_THORNS] = - { - .description = gIronThornsPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 16, - .weight = 3030, - }, - - [NATIONAL_DEX_FRIGIBAX] = - { - .description = gFrigibaxPokedexText, - .categoryName = _("Ice Fin"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 5, - .weight = 170, - }, - - [NATIONAL_DEX_ARCTIBAX] = - { - .description = gArctibaxPokedexText, - .categoryName = _("Ice Fin"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 8, - .weight = 300, - }, - - [NATIONAL_DEX_BAXCALIBUR] = - { - .description = gBaxcaliburPokedexText, - .categoryName = _("Ice Dragon"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 21, - .weight = 2100, - }, - - [NATIONAL_DEX_GIMMIGHOUL] = - { - .description = gGimmighoulPokedexText, - .categoryName = _("Coin Chest"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 3, - .weight = 50, - }, - - [NATIONAL_DEX_GHOLDENGO] = - { - .description = gGholdengoPokedexText, - .categoryName = _("Coin Entity"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 300, - }, - - [NATIONAL_DEX_WO_CHIEN] = - { - .description = gWoChienPokedexText, - .categoryName = _("Ruinous"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 15, - .weight = 742, - }, - - [NATIONAL_DEX_CHIEN_PAO] = - { - .description = gChienPaoPokedexText, - .categoryName = _("Ruinous"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 19, - .weight = 1522, - }, - - [NATIONAL_DEX_TING_LU] = - { - .description = gTingLuPokedexText, - .categoryName = _("Ruinous"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 27, - .weight = 6997, - }, - - [NATIONAL_DEX_CHI_YU] = - { - .description = gChiYuPokedexText, - .categoryName = _("Ruinous"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 49, - }, - - [NATIONAL_DEX_ROARING_MOON] = - { - .description = gRoaringMoonPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 20, - .weight = 3800, - }, - - [NATIONAL_DEX_IRON_VALIANT] = - { - .description = gIronValiantPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 14, - .weight = 350, - }, - - [NATIONAL_DEX_KORAIDON] = - { - .description = gKoraidonPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 25, - .weight = 3030, - }, - - [NATIONAL_DEX_MIRAIDON] = - { - .description = gMiraidonPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 35, - .weight = 2400, - }, - - [NATIONAL_DEX_WALKING_WAKE] = - { - .description = gWalkingWakePokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 35, - .weight = 2800, - }, - - [NATIONAL_DEX_IRON_LEAVES] = - { - .description = gIronLeavesPokedexText, - .categoryName = _("Paradox"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 15, - .weight = 1250, - }, - - [NATIONAL_DEX_DIPPLIN] = - { - .description = gDipplinPokedexText, - .categoryName = _("Candy Apple"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 4, - .weight = 44, - }, - - [NATIONAL_DEX_POLTCHAGEIST] = - { - .description = gPoltchageistPokedexText, - .categoryName = _("Matcha"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 1, - .weight = 11, - }, - - [NATIONAL_DEX_SINISTCHA] = - { - .description = gSinistchaPokedexText, - .categoryName = _("Matcha"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 2, - .weight = 22, - }, - - [NATIONAL_DEX_OKIDOGI] = - { - .description = gOkidogiPokedexText, - .categoryName = _("Retainer"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 18, - .weight = 920, - }, - - [NATIONAL_DEX_MUNKIDORI] = - { - .description = gMunkidoriPokedexText, - .categoryName = _("Retainer"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 10, - .weight = 122, - }, - - [NATIONAL_DEX_FEZANDIPITI] = - { - .description = gFezandipitiPokedexText, - .categoryName = _("Retainer"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 14, - .weight = 301, - }, - - [NATIONAL_DEX_OGERPON] = - { - .description = gOgerponPokedexText, - .categoryName = _("Mask"), - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - .height = 12, - .weight = 398, - }, -#endif -}; diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h deleted file mode 100644 index eee63686d2..0000000000 --- a/src/data/pokemon/pokedex_text.h +++ /dev/null @@ -1,6094 +0,0 @@ -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 gTaurosCombatBreedPokedexText[] = _( - "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."); - -const u8 gTaurosBlazeBreedPokedexText[] = _( - "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."); - -// Placeholder -const u8 gTaurosAquaBreedPokedexText[] = _( - "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."); - -// Error massage: array `gTaurosAquaBreedPokedexText' assumed to have one element -// const u8 gTaurosAquaBreedPokedexText[] = _( -// "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."); - -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 gWooperPaldeaPokedexText[] = _( - "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."); - -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 -#if P_GEN_9_POKEMON == TRUE -const u8 gSprigatitoPokedexText[] = _( - "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."); - -const u8 gFloragatoPokedexText[] = _( - "Floragato deftly wields the vine\n" - "hidden beneath its long fur, slamming\n" - "the hard flower bud against its\n" - "opponents."); - -const u8 gMeowscaradaPokedexText[] = _( - "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."); - -const u8 gFuecocoPokedexText[] = _( - "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."); - -const u8 gCrocalorPokedexText[] = _( - "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."); - -const u8 gSkeledirgePokedexText[] = _( - "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."); - -const u8 gQuaxlyPokedexText[] = _( - "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."); - -const u8 gQuaxwellPokedexText[] = _( - "The hardworking Quaxwell observes\n" - "people and Pokémon from various\n" - "regions and incorporates their\n" - "movements into its own dance routines."); - -const u8 gQuaquavalPokedexText[] = _( - "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."); - -const u8 gLechonkPokedexText[] = _( - "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."); - -const u8 gOinkolognePokedexText[] = _( - "Oinkologne is proud of its fine,\n" - "glossy skin. It emits a concentrated\n" - "scent from the tip of its tail."); - -const u8 gTarountulaPokedexText[] = _( - "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."); - -const u8 gSpidopsPokedexText[] = _( - "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."); - -const u8 gNymblePokedexText[] = _( - "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."); - -const u8 gLokixPokedexText[] = _( - "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."); - -const u8 gPawmiPokedexText[] = _( - "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."); - -const u8 gPawmoPokedexText[] = _( - "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."); - -const u8 gPawmotPokedexText[] = _( - "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."); - -const u8 gTandemausPokedexText[] = _( - "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."); - -const u8 gMausholdPokedexText[] = _( - "The larger pair protects the little\n" - "ones during battles. When facing\n" - "strong opponents, the whole group\n" - "will join the fight."); - -const u8 gFidoughPokedexText[] = _( - "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."); - -const u8 gDachsbunPokedexText[] = _( - "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."); - -const u8 gSmolivPokedexText[] = _( - "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."); - -const u8 gDollivPokedexText[] = _( - "Dolliv shares its tasty, fresh-\n" - "scented oil with others. This species\n" - "has coexisted with humans since\n" - "times long gone."); - -const u8 gArbolivaPokedexText[] = _( - "This Pokémon drives back enemies\n" - "by launching its rich, aromatic oil at\n" - "them with enough force to smash a\n" - "boulder."); - -const u8 gSquawkabillyPokedexText[] = _( - "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."); - -const u8 gNacliPokedexText[] = _( - "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."); - -const u8 gNaclstackPokedexText[] = _( - "It compresses rock salt inside its\n" - "body and shoots out hardened salt\n" - "pellets with enough force to\n" - "perforate an iron sheet."); - -const u8 gGarganaclPokedexText[] = _( - "Garganacl will rub its fingertips\n" - "together and sprinkle injured\n" - "Pokémon with salt. Even severe wounds will\n" - "promptly heal afterward."); - -const u8 gCharcadetPokedexText[] = _( - "Burnt charcoal came to life and\n" - "became a Pokémon. Possessing a fiery\n" - "fighting spirit, Charcadet will\n" - "battle even tough opponents."); - -const u8 gArmarougePokedexText[] = _( - "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."); - -const u8 gCeruledgePokedexText[] = _( - "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."); - -const u8 gTadbulbPokedexText[] = _( - "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."); - -const u8 gBelliboltPokedexText[] = _( - "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."); - -const u8 gWattrelPokedexText[] = _( - "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."); - -const u8 gKilowattrelPokedexText[] = _( - "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."); - -const u8 gMaschiffPokedexText[] = _( - "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."); - -const u8 gMabosstiffPokedexText[] = _( - "Mabosstiff loves playing with\n" - "children. Though usually gentle, it\n" - "takes on an intimidating look when\n" - "protecting its family."); - -const u8 gShroodlePokedexText[] = _( - "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."); - -const u8 gGrafaiaiPokedexText[] = _( - "Each Grafaiai paints its own\n" - "individual pattern, and it will paint that\n" - "same pattern over and over again\n" - "throughout its life."); - -const u8 gBramblinPokedexText[] = _( - "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."); - -const u8 gBrambleghastPokedexText[] = _( - "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."); - -const u8 gToedscoolPokedexText[] = _( - "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."); - -const u8 gToedscruelPokedexText[] = _( - "These Pokémon gather into groups\n" - "and form colonies deep within\n" - "forests. They absolutely hate it when\n" - "strangers approach."); - -const u8 gKlawfPokedexText[] = _( - "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."); - -const u8 gCapsakidPokedexText[] = _( - "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."); - -const u8 gScovillainPokedexText[] = _( - "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."); - -const u8 gRellorPokedexText[] = _( - "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."); - -const u8 gRabscaPokedexText[] = _( - "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."); - -const u8 gFlittlePokedexText[] = _( - "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."); - -const u8 gEspathraPokedexText[] = _( - "It immobilizes opponents by\n" - "bathing them in psychic power from its\n" - "large eyes. Despite its appearance, it\n" - "has a vicious temperament."); - -const u8 gTinkatinkPokedexText[] = _( - "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."); - -const u8 gTinkatuffPokedexText[] = _( - "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."); - -const u8 gTinkatonPokedexText[] = _( - "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."); - -const u8 gWiglettPokedexText[] = _( - "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."); - -const u8 gWugtrioPokedexText[] = _( - "A variety of fish Pokémon, Wugtrio\n" - "was once considered to be a\n" - "regional form of Dugtrio."); - -const u8 gBombirdierPokedexText[] = _( - "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."); - -const u8 gFinizenPokedexText[] = _( - "Its water ring is made from\n" - "seawater mixed with a sticky fluid that\n" - "Finizen secretes from its blowhole."); - -const u8 gPalafinPokedexText[] = _( - "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."); - -const u8 gVaroomPokedexText[] = _( - "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."); - -const u8 gRevavroomPokedexText[] = _( - "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."); - -const u8 gCyclizarPokedexText[] = _( - "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."); - -const u8 gOrthwormPokedexText[] = _( - "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."); - -const u8 gGlimmetPokedexText[] = _( - "Glimmet's toxic mineral crystals\n" - "look just like flower petals. This\n" - "Pokémon scatters poisonous powder like\n" - "pollen to protect itself."); - -const u8 gGlimmoraPokedexText[] = _( - "Glimmora's petals are made of\n" - "crystallized poison energy. It has\n" - "recently become evident that these\n" - "petals resemble Tera Jewels."); - -const u8 gGreavardPokedexText[] = _( - "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."); - -const u8 gHoundstonePokedexText[] = _( - "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."); - -const u8 gFlamigoPokedexText[] = _( - "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."); - -const u8 gCetoddlePokedexText[] = _( - "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."); - -const u8 gCetitanPokedexText[] = _( - "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."); - -const u8 gVeluzaPokedexText[] = _( - "Veluza has excellent regenerative\n" - "capabilities. It sheds spare flesh\n" - "from its body to boost its agility,\n" - "then charges at its prey."); - -const u8 gDondozoPokedexText[] = _( - "It treats Tatsugiri like its boss\n" - "and follows it loyally. Though\n" - "powerful, Dondozo is apparently not very\n" - "smart."); - -const u8 gTatsugiriPokedexText[] = _( - "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."); - -const u8 gAnnihilapePokedexText[] = _( - "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."); - -const u8 gClodsirePokedexText[] = _( - "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."); - -const u8 gFarigirafPokedexText[] = _( - "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."); - -const u8 gDudunsparcePokedexText[] = _( - "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."); - -const u8 gKingambitPokedexText[] = _( - "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."); - -const u8 gGreatTuskPokedexText[] = _( - "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."); - -const u8 gScreamTailPokedexText[] = _( - "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."); - -const u8 gBruteBonnetPokedexText[] = _( - "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."); - -const u8 gFlutterManePokedexText[] = _( - "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."); - -const u8 gSlitherWingPokedexText[] = _( - "This mysterious Pokémon has some\n" - "similarities to a creature that an\n" - "old book introduced as Slither Wing."); - -const u8 gSandyShocksPokedexText[] = _( - "It slightly resembles a Magneton\n" - "that lived for 10,000 years and was\n" - "featured in an article in a\n" - "paranormal magazine."); - -const u8 gIronTreadsPokedexText[] = _( - "Sightings of this Pokémon have\n" - "occurred in recent years. It resembles\n" - "a mysterious object described in an\n" - "old expedition journal."); - -const u8 gIronBundlePokedexText[] = _( - "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."); - -const u8 gIronHandsPokedexText[] = _( - "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."); - -const u8 gIronJugulisPokedexText[] = _( - "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."); - -const u8 gIronMothPokedexText[] = _( - "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."); - -const u8 gIronThornsPokedexText[] = _( - "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."); - -const u8 gFrigibaxPokedexText[] = _( - "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."); - -const u8 gArctibaxPokedexText[] = _( - "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."); - -const u8 gBaxcaliburPokedexText[] = _( - "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."); - -const u8 gGimmighoulPokedexText[] = _( - "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."); - -const u8 gGholdengoPokedexText[] = _( - "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."); - -const u8 gWoChienPokedexText[] = _( - "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."); - -const u8 gChienPaoPokedexText[] = _( - "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."); - -const u8 gTingLuPokedexText[] = _( - "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."); - -const u8 gChiYuPokedexText[] = _( - "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."); - -const u8 gRoaringMoonPokedexText[] = _( - "According to an article in a\n" - "dubious magazine, this Pokémon has some\n" - "connection to Mega Evolution that\n" - "occurs in Hoenn."); - -const u8 gIronValiantPokedexText[] = _( - "It has some similarities to a mad\n" - "scientist's invention covered in a\n" - "paranormal magazine."); - -const u8 gKoraidonPokedexText[] = _( - "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."); - -const u8 gMiraidonPokedexText[] = _( - "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."); - -const u8 gWalkingWakePokedexText[] = _( - "Ecology under research."); - -const u8 gIronLeavesPokedexText[] = _( - "Ecology under analysis."); - -const u8 gDipplinPokedexText[] = _( - "Dipplin is two creatures in one Pokémon.\n" - "Its evolution was triggered by a special\n" - "apple grown only in one place."); - -const u8 gPoltchageistPokedexText[] = _( - "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."); - -const u8 gSinistchaPokedexText[] = _( - "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."); - -const u8 gOkidogiPokedexText[] = _( - "After all its muscles were stimulated\n" - "by the toxic chain around its neck,\n" - "Okidogi transformed and gained\n" - "a powerful physique."); - -const u8 gMunkidoriPokedexText[] = _( - "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."); - -const u8 gFezandipitiPokedexText[] = _( - "Fezandipiti owes its beautiful looks and\n" - "lovely voice to the toxic stimulants\n" - "emanating from the chain wrapped around\n" - "its body."); - -const u8 gOgerponPokedexText[] = _( - "This Pokémon's type changes based on\n" - "which mask it's wearing. It confounds\n" - "its enemies with nimble movements\n" - "and kicks."); - -#endif diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index a2587710d7..e250403fbc 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -1,5 +1,222 @@ #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[] = _( + "This is Zygarde when about 10% of\n" + "its pieces have been assembled. It\n" + "leaps at its opponent's chest and\n" + "sinks its sharp fangs into them."); + +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[] = _( + "Upon awakening, its RKS System is\n" + "activated. By employing specific\n" + "memories, this Pokémon can adapt its\n" + "type to confound its enemies."); + +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[] = _( + "If its core stays exposed, it will\n" + "soon die off. It's possible that it\n" + "may survive if it's put into a Poké Ball\n" + "quickly enough."); + +const u8 gAlcremieVanillaCreamPokedexText[] = _( + "When it trusts a Trainer, it will treat\n" + "them to berries it's decorated with cream."); + +const u8 gAlcremieRubyCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "sweet and tart flavor. This is\n" + "because of the way its cells\n" + "spontaneously shifted during evolution."); + +const u8 gAlcremieMatchaCreamPokedexText[] = _( + "The moment it evolved, it took on\n" + "an aromatic flavor. This is because\n" + "of the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieMintCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "refreshing flavor. This is because\n" + "of the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieLemonCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "sour flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieSaltedCreamPokedexText[] = _( + "The moment it evolved, it took on a\n" + "salty flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieRubySwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "mixed flavor. This is because of the\n" + "way its cells spontaneously shifted\n" + "during evolution."); + +const u8 gAlcremieCaramelSwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "bitter flavor. This is because of\n" + "the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gAlcremieRainbowSwirlPokedexText[] = _( + "The moment it evolved, it took on a\n" + "complex flavor. This is because of\n" + "the way its cells spontaneously\n" + "shifted during evolution."); + +const u8 gToxtricityGigantamaxPokedexText[] = _( + "Out of control after its own\n" + "poison penetrated its brain, it tears\n" + "across the land in a rampage,\n" + "contaminating the earth with toxic sweat."); + +const u8 gOgerponTealMaskPokedexText[] = _( + "This Pokémon's type changes based on\n" + "which mask it's wearing. It confounds\n" + "its enemies with nimble movements\n" + "and kicks."); + +const u8 gOgerponWellspringMaskPokedexText[] = _( + "This form excels in both attack\n" + "and defense. It ceaselessly unleashes\n" + "moves like a spring gushes water."); + +const u8 gOgerponHearthflameMaskPokedexText[] = _( + "This form is the most aggressive,\n" + "bombarding enemies with the\n" + "intensity of flames blazing within a hearth."); + +const u8 gOgerponCornerstoneMaskPokedexText[] = _( + "In this form, it draws on the power\n" + "of stone. Its body is rock-solid,\n" + "protecting it from all manner of\n" + "attacks."); + +// 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 PALETTES(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)) @@ -9,27959 +226,117 @@ const struct SpeciesInfo gSpeciesInfo[] = { - [SPECIES_NONE] = {0}, - -#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, - }, - - [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, - }, - -#define VENUSAUR_MISC_INFO \ - .types = {TYPE_GRASS, TYPE_POISON}, \ - .catchRate = 45, \ - .evYield_SpAttack = 2, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - -#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}, - .gigantamax = TRUE, - }, -#endif -#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, - }, - - [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, - }, - -#define CHARIZARD_MISC_INFO \ - .catchRate = 45, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, \ - .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, - }, - -#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, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_CHARIZARD_MEGA_Y] = - { - CHARIZARD_MISC_INFO, - .baseHP = 78, - .baseAttack = 104, - .baseDefense = 78, - .baseSpeed = 100, - .baseSpAttack = 159, - .baseSpDefense = 115, - .types = { TYPE_FIRE, TYPE_FLYING}, - .expYield = 285, - .abilities = {ABILITY_DROUGHT, ABILITY_DROUGHT, ABILITY_DROUGHT}, - .bodyColor = BODY_COLOR_RED, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - -#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_FLYING}, - .expYield = 240, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER}, - .bodyColor = BODY_COLOR_RED, - .gigantamax = TRUE, - }, -#endif -#endif //P_FAMILY_CHARMANDER - -#if P_FAMILY_SQUIRTLE - [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, - }, - -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - -#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}, - .gigantamax = TRUE, - }, -#endif -#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, - }, - - [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, - }, - -#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 - - [SPECIES_BUTTERFREE] = - { - BUTTERFREE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_BUTTERFREE_GIGANTAMAX] = - { - BUTTERFREE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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 = 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, - }, - -#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 - - [SPECIES_BEEDRILL] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 = 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, - }, - -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#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 - -#define RATTATA_MISC_INFO \ - .baseHP = 30, \ - .baseAttack = 56, \ - .baseDefense = 35, \ - .baseSpeed = 72, \ - .baseSpAttack = 25, \ - .baseSpDefense = 35, \ - .catchRate = 255, \ - .expYield = 51, \ - .evYield_Speed = 1, \ - RATTATA_FAMILY_MISC_INFO - -#define RATICATE_MISC_INFO \ - .catchRate = 127, \ - .expYield = 145, \ - .evYield_Speed = 2, \ - RATTATA_FAMILY_MISC_INFO - - [SPECIES_RATTATA] = - { - RATTATA_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_PURPLE, - }, - - [SPECIES_RATICATE] = - { - 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, - }, - -#if P_ALOLAN_FORMS - [SPECIES_RATTATA_ALOLAN] = - { - RATTATA_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL}, - .itemRare = ITEM_PECHA_BERRY, - .abilities = {ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_BLACK, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_RATICATE_ALOLAN] = - { - 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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#endif //P_ALOLAN_FORMS -#endif //P_FAMILY_RATTATA - -#if P_FAMILY_SPEAROW - [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, - }, -#endif //P_FAMILY_SPEAROW - -#if P_FAMILY_EKANS - [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, - .baseAttack = P_UPDATED_STATS >= GEN_7 ? 95 : 85, - .baseDefense = 69, - .baseSpeed = 80, - .baseSpAttack = 65, - .baseSpDefense = 79, - .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, - }, -#endif //P_FAMILY_EKANS - -#if P_FAMILY_PIKACHU -#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 - - [SPECIES_PICHU] = - { - PICHU_MISC_INFO, - .noFlip = FALSE, - }, - - [SPECIES_PICHU_SPIKY_EARED] = - { - PICHU_MISC_INFO, - .noFlip = TRUE, - }, - -#define PIKACHU_MISC_INFO(gender, flip) \ - .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, \ - .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 - - [SPECIES_PIKACHU] = { PIKACHU_MISC_INFO(PERCENT_FEMALE(50), FLIP) }, - -#define COSPLAY_PIKACHU_SPECIES_INFO(flip) { PIKACHU_MISC_INFO(MON_FEMALE, flip) } - - [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), - -#define CAP_PIKACHU_SPECIES_INFO(flip) { PIKACHU_MISC_INFO(MON_MALE, 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), - -#if P_GIGANTAMAX_FORMS - [SPECIES_PIKACHU_GIGANTAMAX] = - { - PIKACHU_MISC_INFO(PERCENT_FEMALE(50), FLIP), - .gigantamax = TRUE, - }, -#endif - -#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 - - [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, - }, - -#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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#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, \ - SANDSHREW_FAMILY_MISC_INFO - -#define SANDSLASH_MISC_INFO \ - .catchRate = 90, \ - .expYield = 158, \ - .evYield_Defense = 2, \ - 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, - }, - - [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, - }, - -#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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_SANDSLASH_ALOLAN] = - { - 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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#endif //P_ALOLAN_FORMS -#endif //P_FAMILY_SANDSHREW - -#if P_FAMILY_NIDORAN - [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, - .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_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, - .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_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#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 - - [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, - }, - - [SPECIES_CLEFAIRY] = - { - .baseHP = 70, - .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 = TRUE, - }, - - [SPECIES_CLEFABLE] = - { - .baseHP = 95, - .baseAttack = 70, - .baseDefense = 73, - .baseSpeed = 60, - .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 95 : 85, - .baseSpDefense = 90, - .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, - }, -#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, \ - VULPIX_FAMILY_MISC_INFO - -#define NINETALES_MISC_INFO \ - .catchRate = 75, \ - .expYield = 177, \ - .evYield_Speed = 1, \ - .evYield_SpDefense = 1, \ - 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, - }, - - [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, - }, - -#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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_NINETALES_ALOLAN] = - { - NINETALES_MISC_INFO, - .baseHP = 73, - .baseAttack = 67, - .baseDefense = 75, - .baseSpeed = 109, - .baseSpAttack = 81, - .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_FAIRY}, - .itemRare = ITEM_SNOWBALL, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING}, - .bodyColor = BODY_COLOR_BLUE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#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 - - [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_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = TRUE, - }, - - [SPECIES_JIGGLYPUFF] = - { - .baseHP = 115, - .baseAttack = 45, - .baseDefense = 20, - .baseSpeed = 20, - .baseSpAttack = 45, - .baseSpDefense = 25, - .types = JIGGLYPUFF_FAMILY_TYPES, - .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, - .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 85 : 75, - .baseSpDefense = 50, - .types = JIGGLYPUFF_FAMILY_TYPES, - .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, - }, -#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, - }, - - [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_CROBAT] = - { - .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 = 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, - }, -#endif //P_FAMILY_ZUBAT - -#if P_FAMILY_ODDISH - [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, - .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_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EFFECT_SPORE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_BELLOSSOM] = - { - .baseHP = 75, - .baseAttack = 80, - .baseDefense = P_UPDATED_STATS >= GEN_6 ? 95 : 85, - .baseSpeed = 50, - .baseSpAttack = 90, - .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 45, - .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_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HEALER}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_ODDISH - -#if P_FAMILY_PARAS - [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, - }, -#endif //P_FAMILY_PARAS - -#if P_FAMILY_VENONAT - [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, - }, -#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, \ - DIGLETT_FAMILY_MISC_INFO - -#define DUGTRIO_MISC_INFO \ - .catchRate = 50, \ - .expYield = 149, \ - .evYield_Speed = 2, \ - 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}, - }, - - [SPECIES_DUGTRIO] = - { - 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, - }, - -#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}, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_DUGTRIO_ALOLAN] = - { - 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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#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 - -#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 - - [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, - }, - - [SPECIES_PERSIAN] = - { - PERSIAN_MISC_INFO, - .baseHP = 65, - .baseAttack = 70, - .baseDefense = 60, - .baseSpeed = 115, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .abilities = {ABILITY_LIMBER, ABILITY_TECHNICIAN, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_YELLOW, - }, - -#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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_PERSIAN_ALOLAN] = - { - 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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#endif //P_ALOLAN_FORMS - -#if P_GALARIAN_FORMS - [SPECIES_MEOWTH_GALARIAN] = - { - MEOWTH_MISC_INFO, - .baseHP = 50, - .baseAttack = 65, - .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, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_PERRSERKER] = - { - .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 = 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, - }, -#endif //P_GALARIAN_FORMS - -#if P_GIGANTAMAX_FORMS - [SPECIES_MEOWTH_GIGANTAMAX] = - { - 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, - .gigantamax = TRUE, - }, -#endif -#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_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, - }, -#endif //P_FAMILY_PSYDUCK - -#if P_FAMILY_MANKEY - [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_ANNIHILAPE] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_INNER_FOCUS, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#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, \ - GROWLITHE_FAMILY_MISC_INFO - -#define ARCANINE_MISC_INFO \ - .catchRate = 75, \ - .expYield = 194, \ - .evYield_Attack = 2, \ - 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}, - }, - - [SPECIES_ARCANINE] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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_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, - .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, - }, - - [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_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_DRIZZLE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, -#endif //P_FAMILY_POLIWAG - -#if P_FAMILY_ABRA - [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, - }, - -#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 - - [SPECIES_ALAKAZAM] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_ABRA - -#if P_FAMILY_MACHOP - [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, - }, - -#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 - - [SPECIES_MACHAMP] = - { - MACHAMP_MISC_INFO - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_MACHAMP_GIGANTAMAX] = - { - MACHAMP_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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, - }, - - [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, - .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 = 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, - }, -#endif //P_FAMILY_BELLSPROUT - -#if P_FAMILY_TENTACOOL - [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, - }, -#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, \ - 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, \ - 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, \ - GEODUDE_FAMILY_MISC_INFO - - [SPECIES_GEODUDE] = - { - KANTONIAN_GEODUDE_FAMILY_INFO, - GEODUDE_MISC_INFO, - }, - - [SPECIES_GRAVELER] = - { - KANTONIAN_GEODUDE_FAMILY_INFO, - GRAVELER_MISC_INFO, - }, - - [SPECIES_GOLEM] = - { - KANTONIAN_GEODUDE_FAMILY_INFO, - GOLEM_MISC_INFO, - }, - -#if P_ALOLAN_FORMS -#define ALOLAN_GEODUDE_FAMILY_INFO \ - .types = { TYPE_ROCK, TYPE_ELECTRIC }, \ - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE}, \ - .flags = SPECIES_FLAG_ALOLAN_FORM - - [SPECIES_GEODUDE_ALOLAN] = - { - ALOLAN_GEODUDE_FAMILY_INFO, - GEODUDE_MISC_INFO, - .itemRare = ITEM_CELL_BATTERY, - }, - - [SPECIES_GRAVELER_ALOLAN] = - { - ALOLAN_GEODUDE_FAMILY_INFO, - GRAVELER_MISC_INFO, - .itemRare = ITEM_CELL_BATTERY, - }, - - [SPECIES_GOLEM_ALOLAN] = - { - ALOLAN_GEODUDE_FAMILY_INFO, - GOLEM_MISC_INFO, - .itemCommon = ITEM_CELL_BATTERY, - }, -#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, \ - 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, \ - PONYTA_FAMILY_MISC_INFO - - [SPECIES_PONYTA] = - { - KANTONIAN_PONYTA_FAMILY_INFO, - PONYTA_MISC_INFO, - }, - - [SPECIES_RAPIDASH] = - { - KANTONIAN_PONYTA_FAMILY_INFO, - RAPIDASH_MISC_INFO, - }, - -#define GALARIAN_PONYTA_FAMILY_INFO \ - .abilities = {ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION}, \ - .bodyColor = BODY_COLOR_WHITE, \ - .flags = SPECIES_FLAG_GALARIAN_FORM - -#if P_GALARIAN_FORMS - [SPECIES_PONYTA_GALARIAN] = - { - GALARIAN_PONYTA_FAMILY_INFO, - PONYTA_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - }, - - [SPECIES_RAPIDASH_GALARIAN] = - { - GALARIAN_PONYTA_FAMILY_INFO, - RAPIDASH_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - }, -#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 - -#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 - -#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 - - [SPECIES_SLOWPOKE] = - { - SLOWPOKE_MISC_INFO, - .types = { TYPE_WATER, TYPE_PSYCHIC }, - .itemRare = ITEM_LAGGING_TAIL, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - }, - - [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, - }, - - [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}, - }, - -#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, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - -#if P_GALARIAN_FORMS - [SPECIES_SLOWPOKE_GALARIAN] = - { - SLOWPOKE_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .abilities = {ABILITY_GLUTTONY, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [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, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [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}, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, -#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_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_MAGNEZONE] = - { - .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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#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 - - [SPECIES_FARFETCHD] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_SIRFETCHD] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_GALARIAN_FORMS -#endif //P_FAMILY_FARFETCHD - -#if P_FAMILY_DODUO - [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, - .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_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DODUO - -#if P_FAMILY_SEEL - [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, - }, -#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, \ - 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, \ - 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, - }, - - [SPECIES_MUK] = - { - KANTONIAN_GRIMER_FAMILY_INFO, - MUK_MISC_INFO, - .noFlip = FALSE, - }, - -#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, \ - .flags = SPECIES_FLAG_ALOLAN_FORM - - [SPECIES_GRIMER_ALOLAN] = - { - ALOLAN_GRIMER_FAMILY_INFO, - GRIMER_MISC_INFO, - }, - - [SPECIES_MUK_ALOLAN] = - { - MUK_MISC_INFO, - ALOLAN_GRIMER_FAMILY_INFO, - .noFlip = TRUE, - }, -#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 = 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, - }, -#endif //P_FAMILY_SHELLDER - -#if P_FAMILY_GASTLY - [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, - }, - -#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 - - [SPECIES_GENGAR] = - { - GENGAR_MISC_INFO, - .baseHP = 60, - .baseAttack = 65, - .baseDefense = 60, - .baseSpeed = 110, - .baseSpAttack = 130, - .baseSpDefense = 75, - .expYield = 225, - .abilities = GENGAR_ABILITIES, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - -#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, - .gigantamax = TRUE, - }, -#endif -#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, - }, - -#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 - - [SPECIES_STEELIX] = - { - STEELIX_MISC_INFO, - .baseHP = 75, - .baseAttack = 85, - .baseDefense = 200, - .baseSpeed = 30, - .baseSpAttack = 55, - .baseSpDefense = 65, - .expYield = 179, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SHEER_FORCE}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_STEELIX_MEGA] = - { - STEELIX_MISC_INFO, - .baseHP = 75, - .baseAttack = 125, - .baseDefense = 230, - .baseSpeed = 30, - .baseSpAttack = 55, - .baseSpDefense = 95, - .expYield = 214, - .abilities = {ABILITY_SAND_FORCE, ABILITY_SAND_FORCE, ABILITY_SAND_FORCE}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - .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, - }, -#endif //P_FAMILY_DROWZEE - -#if P_FAMILY_KRABBY - [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, - }, - -#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 - - [SPECIES_KINGLER] = - { - KINGLER_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_KINGLER_GIGANTAMAX] = - { - KINGLER_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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, \ - 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, \ - VOLTORB_FAMILY_MISC_INFO - - [SPECIES_VOLTORB] = - { - VOLTORB_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - }, - - [SPECIES_ELECTRODE] = - { - ELECTRODE_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - }, - -#if P_HISUIAN_FORMS - [SPECIES_VOLTORB_HISUIAN] = - { - VOLTORB_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_ELECTRODE_HISUIAN] = - { - ELECTRODE_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - -#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 - -#define EXEGGUTOR_SP_DEF (P_UPDATED_STATS >= GEN_7 ? 75 : 65) - - [SPECIES_EXEGGUTOR] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#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_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, - }, - -#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 - - [SPECIES_MAROWAK] = - { - MAROWAK_MISC_INFO, - .types = { TYPE_GROUND, TYPE_GROUND }, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, - }, - -#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, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, -#endif //P_ALOLAN_FORMS -#endif //P_FAMILY_CUBONE - -#if P_FAMILY_HITMONS - [SPECIES_TYROGUE] = - { - .baseHP = 35, - .baseAttack = 35, - .baseDefense = 35, - .baseSpeed = 35, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .catchRate = 75, - .expYield = 42, - .evYield_Attack = 1, - .genderRatio = MON_MALE, - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_GUTS, ABILITY_STEADFAST, ABILITY_VITAL_SPIRIT}, - .bodyColor = BODY_COLOR_PURPLE, - .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_HITMONTOP] = - { - .baseHP = 50, - .baseAttack = 95, - .baseDefense = 95, - .baseSpeed = 70, - .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_INTIMIDATE, ABILITY_TECHNICIAN, ABILITY_STEADFAST}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_HITMONS - -#if P_FAMILY_LICKITUNG - [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_LICKILICKY] = - { - .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_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_LICKITUNG - -#if P_FAMILY_KOFFING - [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, - }, - -#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 - - [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, - }, - -#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, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, -#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, - }, - - [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_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, - }, -#endif //P_FAMILY_RHYHORN - -#if P_FAMILY_CHANSEY - [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, - }, - - [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_BLISSEY] = - { - .baseHP = 255, - .baseAttack = 10, - .baseDefense = 10, - .baseSpeed = 55, - .baseSpAttack = 75, - .baseSpDefense = 135, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 30, - .expYield = 608, - .evYield_HP = 3, - .itemRare = ITEM_LUCKY_EGG, - .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, - }, -#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, - }, - - [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, - }, -#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 - - [SPECIES_KANGASKHAN] = - { - 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}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_KANGASKHAN_MEGA] = - { - KANGASKHAN_MISC_INFO, - .baseHP = 105, - .baseAttack = 125, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 60, - .baseSpDefense = 100, - .expYield = 207, - .abilities = {ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - .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_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, - }, -#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, - }, - - [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, - }, -#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 = 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, - }, -#endif //P_FAMILY_STARYU - -#if P_FAMILY_MR_MIME - [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 - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - #endif - .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, - }, - -#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 - - [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, - }, - -#if P_GALARIAN_FORMS - [SPECIES_MR_MIME_GALARIAN] = - { - MR_MIME_MISC_INFO, - .baseHP = 50, - .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, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_MR_RIME] = - { - .baseHP = 80, - .baseAttack = 85, - .baseDefense = 75, - .baseSpeed = 70, - .baseSpAttack = 110, - .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 182, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(50), - .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, - }, -#endif //P_GALARIAN_FORMS -#endif //P_FAMILY_MR_MIME - -#if P_FAMILY_SCYTHER - [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, - }, - -#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 - - [SPECIES_SCIZOR] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - - [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, - }, -#endif //P_FAMILY_SCYTHER - -#if P_FAMILY_JYNX - [SPECIES_SMOOCHUM] = - { - .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_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_PINK, - .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, - }, -#endif //P_FAMILY_JYNX - -#if P_FAMILY_ELECTABUZZ - [SPECIES_ELEKID] = - { - .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, - .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_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_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, - }, -#endif //P_FAMILY_ELECTABUZZ - -#if P_FAMILY_MAGMAR - [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, - }, - - [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_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, - }, -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 - - [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, - }, - -#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, - .flags = SPECIES_FLAG_PALDEAN_FORM, - }, - - [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, - .flags = SPECIES_FLAG_PALDEAN_FORM, - }, - - [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, - .flags = SPECIES_FLAG_PALDEAN_FORM, - }, -#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_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_GYARADOS] = - { - 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}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_GYARADOS_MEGA] = - { - GYARADOS_MISC_INFO, - .baseHP = 95, - .baseAttack = 155, - .baseDefense = 109, - .baseSpeed = 81, - .baseSpAttack = 70, - .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_DARK}, - .expYield = 224, - .abilities = {ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 - - [SPECIES_LAPRAS] = - { - LAPRAS_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_LAPRAS_GIGANTAMAX] = - { - LAPRAS_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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_FAST, - .eggGroups = { EGG_GROUP_DITTO, EGG_GROUP_DITTO}, - .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_IMPOSTER}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#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 - - [SPECIES_EEVEE] = - { - EEVEE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_EEVEE_GIGANTAMAX] = - { - EEVEE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif - - [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_ESPEON] = - { - .baseHP = 65, - .baseAttack = 65, - .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, - }, - - [SPECIES_UMBREON] = - { - .baseHP = 95, - .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, - }, - - [SPECIES_LEAFEON] = - { - .baseHP = 65, - .baseAttack = 110, - .baseDefense = 130, - .baseSpeed = 95, - .baseSpAttack = 60, - .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_LEAF_GUARD, ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_GLACEON] = - { - .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, - }, - - [SPECIES_SYLVEON] = - { - .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, - .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, - .noFlip = TRUE, - }, -#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_PORYGON2] = - { - .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, - }, - - [SPECIES_PORYGON_Z] = - { - .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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ADAPTABILITY, ABILITY_DOWNLOAD, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PORYGON - -#if P_FAMILY_OMANYTE - [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, - }, -#endif //P_FAMILY_OMANYTE - -#if P_FAMILY_KABUTO - [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, - }, -#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 - - [SPECIES_AERODACTYL] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_AERODACTYL - -#if P_FAMILY_SNORLAX - [SPECIES_MUNCHLAX] = - { - .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, - }, - -#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 - - [SPECIES_SNORLAX] = - { - SNORLAX_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_SNORLAX_GIGANTAMAX] = - { - SNORLAX_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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 - - [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, - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#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, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_GALARIAN_FORM, - }, -#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 - - [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 - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#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}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_GALARIAN_FORM, - }, -#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 - - [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, - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#if P_GALARIAN_FORMS - [SPECIES_MOLTRES_GALARIAN] = - { - 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, - .eggCycles = 120, - .abilities = {ABILITY_BERSERK, ABILITY_NONE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_GALARIAN_FORM, - }, -#endif //P_GALARIAN_FORMS -#endif //P_FAMILY_MOLTRES - -#if P_FAMILY_DRATINI - [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, - }, -#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 - - [SPECIES_MEWTWO] = - { - 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}, - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#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}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_MEWTWO_MEGA_Y] = - { - 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}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 = 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, - }, -#endif //P_FAMILY_MEW - -#if P_FAMILY_CHIKORITA - [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, - }, -#endif //P_FAMILY_CHIKORITA - -#if P_FAMILY_CYNDAQUIL - [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, - }, - -#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 - - [SPECIES_TYPHLOSION] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_CROCONAW] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_FERALIGATR] = - { - .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, - }, -#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 = 43, - .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_FRISK}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_FURRET] = - { - .baseHP = 85, - .baseAttack = 76, - .baseDefense = 64, - .baseSpeed = 90, - .baseSpAttack = 45, - .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 90, - .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_KEEN_EYE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SENTRET - -#if P_FAMILY_HOOTHOOT - [SPECIES_HOOTHOOT] = - { - .baseHP = 60, - .baseAttack = 30, - .baseDefense = 30, - .baseSpeed = 50, - .baseSpAttack = 36, - .baseSpDefense = 56, - .types = { TYPE_NORMAL, TYPE_FLYING }, - .catchRate = 255, - .expYield = 52, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .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_NOCTOWL] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_HOOTHOOT - -#if P_FAMILY_LEDYBA - [SPECIES_LEDYBA] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_LEDIAN] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_LEDYBA - -#if P_FAMILY_SPINARAK - [SPECIES_SPINARAK] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_ARIADOS] = - { - .baseHP = 70, - .baseAttack = 90, - .baseDefense = 70, - .baseSpeed = 40, - .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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SPINARAK - -#if P_FAMILY_CHINCHOU - [SPECIES_CHINCHOU] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_LANTURN] = - { - .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_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, - }, -#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, - }, - - [SPECIES_TOGETIC] = - { - .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, - }, - - [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 - .types = { TYPE_NORMAL, TYPE_FLYING}, - #endif - .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, - }, -#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_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_XATU] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_FLAAFFY] = - { - .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}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - -#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 - -#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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_MAREEP - -#if P_FAMILY_MARILL - [SPECIES_AZURILL] = - { - .baseHP = 50, - .baseAttack = 20, - .baseDefense = 40, - .baseSpeed = 20, - .baseSpAttack = 20, - .baseSpDefense = 40, - #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, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 10, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_MARILL] = - { - .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, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), - .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_AZUMARILL] = - { - .baseHP = 100, - .baseAttack = 50, - .baseDefense = 80, - .baseSpeed = 50, - .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 = 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, - }, -#endif //P_FAMILY_MARILL - -#if P_FAMILY_SUDOWOODO - [SPECIES_BONSLY] = - { - .baseHP = 50, - .baseAttack = 80, - .baseDefense = 95, - .baseSpeed = 10, - .baseSpAttack = 10, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 255, - .expYield = 58, - .evYield_Defense = 1, - .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_SUDOWOODO] = - { - .baseHP = 70, - .baseAttack = 100, - .baseDefense = 115, - .baseSpeed = 30, - .baseSpAttack = 30, - .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK }, - .catchRate = 65, - .expYield = 144, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .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, - }, -#endif //P_FAMILY_SUDOWOODO - -#if P_FAMILY_HOPPIP - [SPECIES_HOPPIP] = - { - .baseHP = 35, - .baseAttack = 35, - .baseDefense = 40, - .baseSpeed = 50, - .baseSpAttack = 35, - .baseSpDefense = 55, - .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, - }, - - [SPECIES_SKIPLOOM] = - { - .baseHP = 55, - .baseAttack = 45, - .baseDefense = 50, - .baseSpeed = 80, - .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_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_JUMPLUFF] = - { - .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, - }, -#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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_SKILL_LINK}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_AMBIPOM] = - { - .baseHP = 75, - .baseAttack = 100, - .baseDefense = 66, - .baseSpeed = 115, - .baseSpAttack = 60, - .baseSpDefense = 66, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 169, - .evYield_Speed = 2, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_AIPOM - -#if P_FAMILY_SUNKERN - [SPECIES_SUNKERN] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_SUNFLORA] = - { - .baseHP = 75, - .baseAttack = 75, - .baseDefense = 55, - .baseSpeed = 30, - .baseSpAttack = 105, - .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 120, - .expYield = 149, - .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_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SUNKERN - -#if P_FAMILY_YANMA - [SPECIES_YANMA] = - { - .baseHP = 65, - .baseAttack = 65, - .baseDefense = 45, - .baseSpeed = 95, - .baseSpAttack = 75, - .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_FLYING }, - .catchRate = 75, - .expYield = 78, - .evYield_Speed = 1, - .itemRare = ITEM_WIDE_LENS, - .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, - .noFlip = FALSE, - }, - - [SPECIES_YANMEGA] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SPEED_BOOST, ABILITY_TINTED_LENS, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#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 - - [SPECIES_WOOPER] = - { - .types = { TYPE_WATER, TYPE_GROUND }, - .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_BLUE, - WOOPER_MISC_INFO - }, - - [SPECIES_QUAGSIRE] = - { - .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, - }, - -#if P_PALDEAN_FORMS - [SPECIES_WOOPER_PALDEAN] = - { - .types = { TYPE_POISON, TYPE_GROUND }, - .abilities = {ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_BROWN, - .flags = SPECIES_FLAG_PALDEAN_FORM, - WOOPER_MISC_INFO - }, - - [SPECIES_CLODSIRE] = - { - .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_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, - }, -#endif //P_PALDEAN_FORMS -#endif //P_FAMILY_WOOPER - -#if P_FAMILY_MURKROW - [SPECIES_MURKROW] = - { - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_HONCHKROW] = - { - .baseHP = 100, - .baseAttack = 125, - .baseDefense = 52, - .baseSpeed = 71, - .baseSpAttack = 105, - .baseSpDefense = 52, - .types = { TYPE_DARK, TYPE_FLYING}, - .catchRate = 30, - .expYield = 177, - .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_MOXIE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MURKROW - -#if P_FAMILY_MISDREAVUS - [SPECIES_MISDREAVUS] = - { - .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 = 25, - .friendship = 35, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [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, - }, -#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 - - [SPECIES_UNOWN] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(A), - }, - - [SPECIES_UNOWN_B] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(B), - }, - - [SPECIES_UNOWN_C] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(C), - }, - - [SPECIES_UNOWN_D] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(D), - }, - - [SPECIES_UNOWN_E] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(E), - }, - - [SPECIES_UNOWN_F] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(F), - }, - - [SPECIES_UNOWN_G] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(G), - }, - - [SPECIES_UNOWN_H] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(H), - }, - - [SPECIES_UNOWN_I] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(I), - }, - - [SPECIES_UNOWN_J] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(J), - }, - - [SPECIES_UNOWN_K] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(K), - }, - - [SPECIES_UNOWN_L] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(L), - }, - - [SPECIES_UNOWN_M] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(M), - }, - - [SPECIES_UNOWN_N] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(N), - }, - - [SPECIES_UNOWN_O] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(O), - }, - - [SPECIES_UNOWN_P] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(P), - }, - - [SPECIES_UNOWN_Q] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(Q), - }, - - [SPECIES_UNOWN_R] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(R), - }, - - [SPECIES_UNOWN_S] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(S), - }, - - [SPECIES_UNOWN_T] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(T), - }, - - [SPECIES_UNOWN_U] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(U), - }, - - [SPECIES_UNOWN_V] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(V), - }, - - [SPECIES_UNOWN_W] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(W), - }, - - [SPECIES_UNOWN_X] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(X), - }, - - [SPECIES_UNOWN_Y] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(Y), - }, - - [SPECIES_UNOWN_Z] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(Z), - }, - - [SPECIES_UNOWN_EMARK] = - { - .noFlip = FALSE, - UNOWN_MISC_INFO(ExclamationMark), - }, - - [SPECIES_UNOWN_QMARK] = - { - .noFlip = TRUE, - UNOWN_MISC_INFO(QuestionMark), - }, -#endif //P_FAMILY_UNOWN - -#if P_FAMILY_WOBBUFFET - [SPECIES_WYNAUT] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_WOBBUFFET] = - { - .baseHP = 190, - .baseAttack = 33, - .baseDefense = 58, - .baseSpeed = 33, - .baseSpAttack = 33, - .baseSpDefense = 58, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 45, - .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, - }, -#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, - .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, - .noFlip = FALSE, - }, - - [SPECIES_FARIGIRAF] = - { - .baseHP = 120, - .baseAttack = 90, - .baseDefense = 70, - .baseSpeed = 60, - .baseSpAttack = 110, - .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, - .catchRate = 45, - .expYield = 260, - .evYield_HP = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#endif //P_FAMILY_GIRAFARIG - -#if P_FAMILY_PINECO - [SPECIES_PINECO] = - { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 90, - .baseSpeed = 15, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 190, - .expYield = 58, - .evYield_Defense = 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_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_FORRETRESS] = - { - .baseHP = 75, - .baseAttack = 90, - .baseDefense = 140, - .baseSpeed = 40, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_STEEL }, - .catchRate = 75, - .expYield = 163, - .evYield_Defense = 2, - .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, - }, -#endif //P_FAMILY_PINECO - -#if P_FAMILY_DUNSPARCE - [SPECIES_DUNSPARCE] = - { - .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, - }, - -#define DUDUNSPARCE_SPECIES_INFO \ - { \ - .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, \ - } - - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = DUDUNSPARCE_SPECIES_INFO, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = DUDUNSPARCE_SPECIES_INFO, -#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 = 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, - .noFlip = FALSE, - }, - - [SPECIES_GLISCOR] = - { - .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 = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_GLIGAR - -#if P_FAMILY_SNUBBULL - [SPECIES_SNUBBULL] = - { - .baseHP = 60, - .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, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(75), - .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, - .noFlip = FALSE, - }, - - [SPECIES_GRANBULL] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#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 - - [SPECIES_QWILFISH] = - { - QWILFISH_MISC_INFO, - .types = { TYPE_WATER, TYPE_POISON}, - .bodyColor = BODY_COLOR_GRAY, - }, - -#if P_HISUIAN_FORMS - [SPECIES_QWILFISH_HISUIAN] = - { - QWILFISH_MISC_INFO, - .types = { TYPE_DARK, TYPE_POISON}, - .bodyColor = BODY_COLOR_BLACK, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_OVERQWIL] = - { - .baseHP = 85, - .baseAttack = 115, - .baseDefense = 95, - .baseSpeed = 85, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_POISON}, - .catchRate = 45, - .expYield = 179, - .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_BLACK, - .noFlip = FALSE, - }, -#endif //P_HISUIAN_FORMS -#endif //P_FAMILY_QWILFISH - -#if P_FAMILY_SHUCKLE - [SPECIES_SHUCKLE] = - { - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_STURDY, ABILITY_GLUTTONY, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#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 - - [SPECIES_HERACROSS] = - { - HERACROSS_MISC_INFO, - .baseHP = 80, - .baseAttack = 125, - .baseDefense = 75, - .baseSpeed = 85, - .baseSpAttack = 40, - .baseSpDefense = 95, - .expYield = 175, - .abilities = {ABILITY_SWARM, ABILITY_GUTS, ABILITY_MOXIE}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 - - [SPECIES_SNEASEL] = - { - SNEASEL_MISC_INFO, - .types = { TYPE_DARK, TYPE_ICE }, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BLACK, - }, - - [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 = 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, - }, - -#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, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_SNEASLER] = - { - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PRESSURE, ABILITY_UNBURDEN, ABILITY_POISON_TOUCH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_HISUIAN_FORMS -#endif //P_FAMILY_SNEASEL - -#if P_FAMILY_TEDDIURSA - [SPECIES_TEDDIURSA] = - { - .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), - .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, - }, - - [SPECIES_URSARING] = - { - .baseHP = 90, - .baseAttack = 130, - .baseDefense = 75, - .baseSpeed = 55, - .baseSpAttack = 75, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 60, - .expYield = 175, - .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_GUTS, ABILITY_QUICK_FEET, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_URSALUNA] = - { - .baseHP = 130, - .baseAttack = 140, - .baseDefense = 105, - .baseSpeed = 50, - .baseSpAttack = 45, - .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_NORMAL}, - .catchRate = 20, - .expYield = 275, - .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_URSALUNA_BLOODMOON] = - { - .baseHP = 113, - .baseAttack = 70, - .baseDefense = 120, - .baseSpeed = 52, - .baseSpAttack = 135, - .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_NORMAL}, - .catchRate = 5, - .expYield = 275, - .evYield_SpAttack = 3, - .genderRatio = MON_MALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_MINDS_EYE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TEDDIURSA - -#if P_FAMILY_SLUGMA - [SPECIES_SLUGMA] = - { - .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 = 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 = FALSE, - }, - - [SPECIES_MAGCARGO] = - { - .baseHP = P_UPDATED_STATS >= GEN_7 ? 60 : 50, - .baseAttack = 50, - .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 = 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, - }, -#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, - }, - - [SPECIES_PILOSWINE] = - { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 80, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_GROUND }, - .catchRate = 75, - .expYield = 158, - .evYield_HP = 1, - .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, - }, - - [SPECIES_MAMOSWINE] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#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 - - [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, - }, - -#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, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_CURSOLA] = - { - .baseHP = 60, - .baseAttack = 95, - .baseDefense = 50, - .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, - }, -#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_SpAttack = 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_HUSTLE, ABILITY_SNIPER, ABILITY_MOODY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_OCTILLERY] = - { - .baseHP = 75, - .baseAttack = 105, - .baseDefense = 75, - .baseSpeed = 45, - .baseSpAttack = 105, - .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 75, - .expYield = 168, - .evYield_Attack = 1, - .evYield_SpAttack = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_REMORAID - -#if P_FAMILY_DELIBIRD - [SPECIES_DELIBIRD] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE, ABILITY_INSOMNIA}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DELIBIRD - -#if P_FAMILY_MANTINE - [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, - }, - - [SPECIES_MANTINE] = - { - .baseHP = P_UPDATED_STATS >= GEN_7 ? 85 : 65, - .baseAttack = 40, - .baseDefense = 70, - .baseSpeed = 70, - .baseSpAttack = 80, - .baseSpDefense = 140, - .types = { TYPE_WATER, TYPE_FLYING}, - .catchRate = 25, - .expYield = 170, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .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}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MANTINE - -#if P_FAMILY_SKARMORY - [SPECIES_SKARMORY] = - { - .baseHP = 65, - .baseAttack = 80, - .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 = 25, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SKARMORY - -#if P_FAMILY_HOUNDOUR - [SPECIES_HOUNDOUR] = - { - .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 = 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, - }, - -#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 - - [SPECIES_HOUNDOOM] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_NONE, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_DONPHAN] = - { - .baseHP = 90, - .baseAttack = 120, - .baseDefense = 120, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 60, - .expYield = 175, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PHANPY - -#if P_FAMILY_STANTLER - [SPECIES_STANTLER] = - { - .baseHP = 73, - .baseAttack = 95, - .baseDefense = 62, - .baseSpeed = 85, - .baseSpAttack = 85, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 163, - .evYield_Attack = 1, - .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, - .noFlip = FALSE, - }, - - [SPECIES_WYRDEER] = - { - .baseHP = 103, - .baseAttack = 105, - .baseDefense = 72, - .baseSpeed = 65, - .baseSpAttack = 105, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 263, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .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_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_STANTLER - -#if P_FAMILY_SMEARGLE - [SPECIES_SMEARGLE] = - { - .baseHP = 55, - .baseAttack = 20, - .baseDefense = 35, - .baseSpeed = 75, - .baseSpAttack = 20, - .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 88, - .evYield_Speed = 1, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SMEARGLE - -#if P_FAMILY_MILTANK - [SPECIES_MILTANK] = - { - .baseHP = 95, - .baseAttack = 80, - .baseDefense = 105, - .baseSpeed = 100, - .baseSpAttack = 40, - .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 172, - .evYield_Defense = 2, - .itemCommon = ITEM_MOOMOO_MILK, - .itemRare = ITEM_MOOMOO_MILK, - .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}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MILTANK - -#if P_FAMILY_RAIKOU - [SPECIES_RAIKOU] = - { - .baseHP = 90, - .baseAttack = 85, - .baseDefense = 75, - .baseSpeed = 115, - .baseSpAttack = 115, - .baseSpDefense = 100, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 3, - .expYield = 261, - .evYield_Speed = 2, - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_RAIKOU - -#if P_FAMILY_ENTEI - [SPECIES_ENTEI] = - { - .baseHP = 115, - .baseAttack = 115, - .baseDefense = 85, - .baseSpeed = 100, - .baseSpAttack = 90, - .baseSpDefense = 75, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 3, - .expYield = 261, - .evYield_HP = 1, - .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 - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_ENTEI - -#if P_FAMILY_SUICUNE - [SPECIES_SUICUNE] = - { - .baseHP = 100, - .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, - .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_WATER_ABSORB}, - #endif - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, - }, - - [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, - }, - -#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 - - [SPECIES_TYRANITAR] = - { - TYRANITAR_MISC_INFO, - .baseHP = 100, - .baseAttack = 134, - .baseDefense = 110, - .baseSpeed = 61, - .baseSpAttack = 95, - .baseSpDefense = 100, - .expYield = 270, - .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_UNNERVE}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 = 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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_LUGIA - -#if P_FAMILY_HO_OH - [SPECIES_HO_OH] = - { - .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, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_HO_OH - -#if P_FAMILY_CELEBI - [SPECIES_CELEBI] = - { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_GRASS }, - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#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, - }, - - [SPECIES_GROVYLE] = - { - .baseHP = 50, - .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, - }, - -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_TREECKO - -#if P_FAMILY_TORCHIC - [SPECIES_TORCHIC] = - { - .baseHP = 45, - .baseAttack = 60, - .baseDefense = 40, - .baseSpeed = 45, - .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, - }, - - [SPECIES_COMBUSKEN] = - { - .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), - .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, - }, - -#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 - - [SPECIES_BLAZIKEN] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 = 62, - .evYield_Attack = 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_DAMP}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_MARSHTOMP] = - { - .baseHP = 70, - .baseAttack = 85, - .baseDefense = 70, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_GROUND }, - .catchRate = 45, - .expYield = 142, - .evYield_Attack = 2, - .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_DAMP}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - }, - - [SPECIES_MIGHTYENA] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#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 - -#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 - - [SPECIES_ZIGZAGOON] = - { - ZIGZAGOON_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .itemCommon = ITEM_POTION, - .itemRare = ITEM_REVIVE, - .bodyColor = BODY_COLOR_BROWN, - }, - - [SPECIES_LINOONE] = - { - LINOONE_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .itemCommon = ITEM_POTION, - .itemRare = ITEM_MAX_REVIVE, - }, - -#if P_GALARIAN_FORMS - [SPECIES_ZIGZAGOON_GALARIAN] = - { - ZIGZAGOON_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL}, - .bodyColor = BODY_COLOR_WHITE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_LINOONE_GALARIAN] = - { - LINOONE_MISC_INFO, - .types = { TYPE_DARK, TYPE_NORMAL}, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_OBSTAGOON] = - { - .baseHP = 93, - .baseAttack = 90, - .baseDefense = 101, - .baseSpeed = 95, - .baseSpAttack = 60, - .baseSpDefense = 81, - .types = { TYPE_DARK, TYPE_NORMAL}, - .catchRate = 45, - .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, - }, -#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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_SILCOON] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_BEAUTIFLY] = - { - .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 = 178, - .evYield_SpAttack = 3, - .itemRare = ITEM_SHED_SHELL, - .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_RIVALRY}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_CASCOON] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_DUSTOX] = - { - .baseHP = 60, - .baseAttack = 50, - .baseDefense = 70, - .baseSpeed = 65, - .baseSpAttack = 50, - .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_POISON }, - .catchRate = 45, - .expYield = 173, - .evYield_SpDefense = 3, - .itemRare = ITEM_SHED_SHELL, - .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_COMPOUND_EYES}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_WURMPLE - -#if P_FAMILY_LOTAD - [SPECIES_LOTAD] = - { - .baseHP = 40, - .baseAttack = 30, - .baseDefense = 30, - .baseSpeed = 30, - .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, - .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_LOMBRE] = - { - .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, - }, - - [SPECIES_LUDICOLO] = - { - .baseHP = 80, - .baseAttack = 70, - .baseDefense = 70, - .baseSpeed = 70, - .baseSpAttack = 90, - .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_GRASS }, - .catchRate = 45, - .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, - }, -#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_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_NUZLEAF] = - { - .baseHP = 70, - .baseAttack = 70, - .baseDefense = 40, - .baseSpeed = 60, - .baseSpAttack = 60, - .baseSpDefense = 40, - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_SHIFTRY] = - { - .baseHP = 90, - .baseAttack = 100, - .baseDefense = 60, - .baseSpeed = 80, - .baseSpAttack = 90, - .baseSpDefense = 60, - .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_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, - }, -#endif //P_FAMILY_SEEDOT - -#if P_FAMILY_TAILLOW - [SPECIES_TAILLOW] = - { - .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_SWELLOW] = - { - .baseHP = 60, - .baseAttack = 85, - .baseDefense = 60, - .baseSpeed = 125, - .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 75 : 50, - .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 159, - .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_GUTS, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TAILLOW - -#if P_FAMILY_WINGULL - [SPECIES_WINGULL] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_HYDRATION, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_PELIPPER] = - { - .baseHP = 60, - .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 = 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, - }, -#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_RALTS] = - { - .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 = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = RALTS_FAMILY_EGG_GROUPS, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [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, - }, - -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - -#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 - - [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 - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_RALTS - -#if P_FAMILY_SURSKIT - [SPECIES_SURSKIT] = - { - .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, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, - - [SPECIES_MASQUERAIN] = - { - .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, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#endif //P_FAMILY_SURSKIT - -#if P_FAMILY_SHROOMISH - [SPECIES_SHROOMISH] = - { - .baseHP = 60, - .baseAttack = 40, - .baseDefense = 60, - .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_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_QUICK_FEET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_BRELOOM] = - { - .baseHP = 60, - .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_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SHROOMISH - -#if P_FAMILY_SLAKOTH - [SPECIES_SLAKOTH] = - { - .baseHP = 60, - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = {ABILITY_TRUANT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_VIGOROTH] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_SLAKING] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = {ABILITY_TRUANT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SLAKOTH - -#if P_FAMILY_NINCADA - [SPECIES_NINCADA] = - { - .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, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_NINJASK] = - { - .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 = 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, - }, - - [SPECIES_SHEDINJA] = + [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, + PALETTES(CircledQuestionMark), + ICON(QuestionMark, 0), + LEARNSETS(None), + }, + + #include "species_info/gen_1.h" + #include "species_info/gen_2.h" + #include "species_info/gen_3.h" + #include "species_info/gen_4.h" + #include "species_info/gen_5.h" + #include "species_info/gen_6.h" + #include "species_info/gen_7.h" + #include "species_info/gen_8.h" + #include "species_info/gen_9.h" + + [SPECIES_EGG] = + { + FRONT_PIC(Egg, 24, 24), + .frontPicYOffset = 20, + .backPic = gMonFrontPic_Egg, + .backPicSize = MON_COORDS_SIZE(24, 24), + .backPicYOffset = 20, + .palette = gMonPalette_Egg, + .shinyPalette = gMonPalette_Egg, + ICON(Egg, 1), + }, + + /* You may add any custom species below this point based on the following structure: */ + + /* + [SPECIES_NONE] = { .baseHP = 1, - .baseAttack = 90, - .baseDefense = 45, - .baseSpeed = 40, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_GHOST}, - .catchRate = 45, - .expYield = 83, - .evYield_HP = 2, - .genderRatio = MON_GENDERLESS, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_NINCADA - -#if P_FAMILY_WHISMUR - [SPECIES_WHISMUR] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_LOUDRED] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_EXPLOUD] = - { - .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 = 221, - .evYield_HP = 3, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_WHISMUR - -#if P_FAMILY_MAKUHITA - [SPECIES_MAKUHITA] = - { - .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), - .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, - .noFlip = FALSE, - }, - - [SPECIES_HARIYAMA] = - { - .baseHP = 144, - .baseAttack = 120, - .baseDefense = 60, - .baseSpeed = 50, - .baseSpAttack = 40, - .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 200, - .expYield = 166, - .evYield_HP = 2, - .itemRare = ITEM_KINGS_ROCK, - .genderRatio = PERCENT_FEMALE(25), - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MAKUHITA - -#if P_FAMILY_NOSEPASS - [SPECIES_NOSEPASS] = - { - .baseHP = 30, - .baseAttack = 45, - .baseDefense = 135, - .baseSpeed = 30, - .baseSpAttack = 45, - .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_ROCK}, + .baseAttack = 1, + .baseDefense = 1, + .baseSpeed = 1, + .baseSpAttack = 1, + .baseSpDefense = 1, + .types = { TYPE_MYSTERY, TYPE_MYSTERY }, .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_PROBOPASS] = - { - .baseHP = 60, - .baseAttack = 55, - .baseDefense = 145, - .baseSpeed = 40, - .baseSpAttack = 75, - .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_STEEL}, - .catchRate = 60, - .expYield = 184, - .evYield_Defense = 1, - .evYield_SpDefense = 2, - .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, - }, -#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, - }, - - [SPECIES_DELCATTY] = - { - .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_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - }, - - [SPECIES_LAIRON] = - { - .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 = 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, - }, - -#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 - - [SPECIES_AGGRON] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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(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, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_MEDICHAM] = - { - 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}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_MEDICHAM_MEGA] = - { - 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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_MEDITITE - -#if P_FAMILY_ELECTRIKE - [SPECIES_ELECTRIKE] = - { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 40, - .baseSpeed = 65, - .baseSpAttack = 65, - .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 120, - .expYield = 59, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_MANECTRIC] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_PLUS, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PLUSLE - -#if P_FAMILY_MINUN - [SPECIES_MINUN] = - { - .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_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_MINUS, ABILITY_NONE, ABILITY_VOLT_ABSORB}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#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, - }, - - [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, - }, -#endif //P_FAMILY_VOLBEAT_ILLUMISE - -#if P_FAMILY_ROSELIA - [SPECIES_BUDEW] = - { - .baseHP = 40, - .baseAttack = 30, - .baseDefense = 35, - .baseSpeed = 55, - .baseSpAttack = 50, - .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_POISON}, - .catchRate = 255, - .expYield = 56, - .evYield_SpAttack = 1, - .itemRare = ITEM_POISON_BARB, - .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_POISON_POINT, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_ROSELIA] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_ROSERADE] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, -#endif //P_FAMILY_ROSELIA - -#if P_FAMILY_GULPIN - [SPECIES_GULPIN] = - { - .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 = 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, - .noFlip = FALSE, - }, - - [SPECIES_SWALOT] = - { - .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, - .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, - }, -#endif //P_FAMILY_GULPIN - -#if P_FAMILY_CARVANHA - [SPECIES_CARVANHA] = - { - .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, - .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, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_SHARPEDO] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_CARVANHA - -#if P_FAMILY_WAILMER - [SPECIES_WAILMER] = - { - .baseHP = 130, - .baseAttack = 70, - .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_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_WAILORD] = - { - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_WAILMER - -#if P_FAMILY_NUMEL - [SPECIES_NUMEL] = - { - .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, - }, - -#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 - - [SPECIES_CAMERUPT] = - { - 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}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_CAMERUPT_MEGA] = - { - 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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_NUMEL - -#if P_FAMILY_TORKOAL - [SPECIES_TORKOAL] = - { - .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, - }, -#endif //P_FAMILY_TORKOAL - -#if P_FAMILY_SPOINK - [SPECIES_SPOINK] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_GRUMPIG] = - { - .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, - }, -#endif //P_FAMILY_SPOINK - -#if P_FAMILY_SPINDA - [SPECIES_SPINDA] = - { - .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, - .noFlip = TRUE, - }, -#endif //P_FAMILY_SPINDA - -#if P_FAMILY_TRAPINCH - [SPECIES_TRAPINCH] = - { - .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, - }, - - [SPECIES_VIBRAVA] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_FLYGON] = - { - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TRAPINCH - -#if P_FAMILY_CACNEA - [SPECIES_CACNEA] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_CACTURNE] = - { - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CACNEA - -#if P_FAMILY_SWABLU - [SPECIES_SWABLU] = - { - .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, - .noFlip = FALSE, - }, - -#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 - - [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}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_ALTARIA_MEGA] = - { - 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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_SWABLU - -#if P_FAMILY_ZANGOOSE - [SPECIES_ZANGOOSE] = - { - .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, - .noFlip = TRUE, - }, -#endif //P_FAMILY_ZANGOOSE - -#if P_FAMILY_SEVIPER - [SPECIES_SEVIPER] = - { - .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, - .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, - }, -#endif //P_FAMILY_SEVIPER - -#if P_FAMILY_LUNATONE - [SPECIES_LUNATONE] = - { - .baseHP = P_UPDATED_STATS >= GEN_7 ? 90 : 70, - .baseAttack = 55, - .baseDefense = 65, - .baseSpeed = 70, - .baseSpAttack = 95, - .baseSpDefense = 85, - .types = { TYPE_ROCK, TYPE_PSYCHIC}, - .catchRate = 45, - .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, - }, -#endif //P_FAMILY_LUNATONE - -#if P_FAMILY_SOLROCK - [SPECIES_SOLROCK] = - { - .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, - }, -#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_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_WHISCASH] = - { - .baseHP = 110, - .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_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BARBOACH - -#if P_FAMILY_CORPHISH - [SPECIES_CORPHISH] = - { - .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 = 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, - }, - - [SPECIES_CRAWDAUNT] = - { - .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, - }, -#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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_CLAYDOL] = - { - .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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BALTOY - -#if P_FAMILY_LILEEP - [SPECIES_LILEEP] = - { - .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, - }, - - [SPECIES_CRADILY] = - { - .baseHP = 86, - .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_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, - }, -#endif //P_FAMILY_LILEEP - -#if P_FAMILY_ANORITH - [SPECIES_ANORITH] = - { - .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, - .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_ARMALDO] = - { - .baseHP = 75, - .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, - }, -#endif //P_FAMILY_ANORITH - -#if P_FAMILY_FEEBAS - [SPECIES_FEEBAS] = - { - .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_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_OBLIVIOUS, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MILOTIC] = - { - .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_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_MARVEL_SCALE, ABILITY_COMPETITIVE, ABILITY_CUTE_CHARM}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#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 - - [SPECIES_CASTFORM_NORMAL] = - { - CASTFORM_MISC_INFO, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .bodyColor = BODY_COLOR_GRAY, - }, - - [SPECIES_CASTFORM_SUNNY] = - { - CASTFORM_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE }, - .bodyColor = BODY_COLOR_RED, - }, - - [SPECIES_CASTFORM_RAINY] = - { - CASTFORM_MISC_INFO, - .types = { TYPE_WATER, TYPE_WATER }, - .bodyColor = BODY_COLOR_BLUE, - }, - - [SPECIES_CASTFORM_SNOWY] = - { - CASTFORM_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE }, - .bodyColor = BODY_COLOR_WHITE, - }, -#endif //P_FAMILY_CASTFORM - -#if P_FAMILY_KECLEON - [SPECIES_KECLEON] = - { - .baseHP = 60, - .baseAttack = 90, - .baseDefense = 70, - .baseSpeed = 40, - .baseSpAttack = 60, - .baseSpDefense = 120, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 200, - .expYield = 154, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#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, - }, - -#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 - - [SPECIES_BANETTE] = - { - BANETTE_MISC_INFO, - .baseHP = 64, - .baseAttack = 115, - .baseDefense = 65, - .baseSpeed = 65, - .baseSpAttack = 83, - .baseSpDefense = 63, - .expYield = 159, - .abilities = {ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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_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, - .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_DUSKNOIR] = - { - .baseHP = 45, - .baseAttack = 100, - .baseDefense = 135, - .baseSpeed = 45, - .baseSpAttack = 65, - .baseSpDefense = 135, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 45, - .expYield = 236, - .evYield_Defense = 1, - .evYield_SpDefense = 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_PRESSURE, ABILITY_NONE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DUSKULL - -#if P_FAMILY_TROPIUS - [SPECIES_TROPIUS] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TROPIUS - -#if P_FAMILY_CHIMECHO - [SPECIES_CHINGLING] = - { - .baseHP = 45, - .baseAttack = 30, - .baseDefense = 50, - .baseSpeed = 45, - .baseSpAttack = 65, - .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 120, - .expYield = 57, - .evYield_SpAttack = 1, - .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_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_CHIMECHO] = - { - .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, - .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, - }, -#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 - - [SPECIES_ABSOL] = - { - 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}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_ABSOL_MEGA] = - { - 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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#endif //P_FAMILY_ABSOL - -#if P_FAMILY_SNORUNT - [SPECIES_SNORUNT] = - { - .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 = 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, - }, - -#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 - - [SPECIES_GLALIE] = - { - GLALIE_MISC_INFO, - .baseHP = 80, - .baseAttack = 80, - .baseDefense = 80, - .baseSpeed = 80, - .baseSpAttack = 80, - .baseSpDefense = 80, - .expYield = 168, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY}, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_GLALIE_MEGA] = - { - GLALIE_MISC_INFO, - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 80, - .baseSpeed = 100, - .baseSpAttack = 120, - .baseSpDefense = 80, - .expYield = 203, - .abilities = {ABILITY_REFRIGERATE, ABILITY_REFRIGERATE, ABILITY_REFRIGERATE}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - - [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, - }, -#endif //P_FAMILY_SNORUNT - -#if P_FAMILY_SPHEAL - [SPECIES_SPHEAL] = - { - .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 = PERCENT_FEMALE(50), - .eggCycles = 20, - .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, - .noFlip = FALSE, - }, - - [SPECIES_SEALEO] = - { - .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_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, - }, - - [SPECIES_WALREIN] = - { - .baseHP = 110, - .baseAttack = 80, - .baseDefense = 90, - .baseSpeed = 65, - .baseSpAttack = 95, - .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_WATER}, - .catchRate = 45, - .expYield = 239, - .evYield_HP = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SPHEAL - -#if P_FAMILY_CLAMPERL - [SPECIES_CLAMPERL] = - { - .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, - }, - - [SPECIES_HUNTAIL] = - { - .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, - }, - - [SPECIES_GOREBYSS] = - { - .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_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CLAMPERL - -#if P_FAMILY_RELICANTH - [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}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#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_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_LUVDISC - -#if P_FAMILY_BAGON - [SPECIES_BAGON] = - { - .baseHP = 45, - .baseAttack = 75, - .baseDefense = 60, - .baseSpeed = 50, - .baseSpAttack = 40, - .baseSpDefense = 30, - .types = { TYPE_DRAGON, TYPE_DRAGON }, - .catchRate = 45, - .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, - }, - - [SPECIES_SHELGON] = - { - .baseHP = 65, - .baseAttack = 95, - .baseDefense = 100, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, - .catchRate = 45, - .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, - }, - -#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 - - [SPECIES_SALAMENCE] = - { - SALAMENCE_MISC_INFO, - .baseHP = 95, - .baseAttack = 135, - .baseDefense = 80, - .baseSpeed = 100, - .baseSpAttack = 110, - .baseSpDefense = 80, - .expYield = 270, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - }, - - [SPECIES_METANG] = - { - .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, - }, - -#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 - - [SPECIES_METAGROSS] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_REGICE - -#if P_FAMILY_REGISTEEL - [SPECIES_REGISTEEL] = - { - .baseHP = 80, - .baseAttack = 75, - .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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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 - - [SPECIES_LATIAS] = - { - 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, - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_LATIAS_MEGA] = - { - LATIAS_MISC_INFO, - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 120, - .baseSpeed = 110, - .baseSpAttack = 140, - .baseSpDefense = 150, - .expYield = 315, - .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE}, - .bodyColor = BODY_COLOR_PURPLE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 - - [SPECIES_LATIOS] = - { - 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, - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_LATIOS_MEGA] = - { - 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, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 - - [SPECIES_KYOGRE] = - { - KYOGRE_MISC_INFO, - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 90, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 140, - .abilities = {ABILITY_DRIZZLE, ABILITY_NONE}, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [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}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_PRIMAL_REVERSION, - }, -#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 - - [SPECIES_GROUDON] = - { - 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}, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [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}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_PRIMAL_REVERSION, - }, -#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 - - [SPECIES_RAYQUAZA] = - { - RAYQUAZA_MISC_INFO, - .baseHP = 105, - .baseAttack = 150, - .baseDefense = 90, - .baseSpeed = 95, - .baseSpAttack = 150, - .baseSpDefense = 90, - .abilities = {ABILITY_AIR_LOCK, ABILITY_NONE}, - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#if P_MEGA_EVOLUTIONS - [SPECIES_RAYQUAZA_MEGA] = - { - 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}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#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, \ - .flags = SPECIES_FLAG_MYTHICAL - - [SPECIES_DEOXYS_NORMAL] = - { - DEOXYS_MISC_INFO, - .baseHP = 50, - .baseAttack = 150, - .baseDefense = 50, - .baseSpeed = 150, - .baseSpAttack = 150, - .baseSpDefense = 50, - .evYield_Attack = 1, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .noFlip = FALSE, - }, - - [SPECIES_DEOXYS_ATTACK] = - { - DEOXYS_MISC_INFO, - .baseHP = 50, - .baseAttack = 180, - .baseDefense = 20, - .baseSpeed = 150, - .baseSpAttack = 180, - .baseSpDefense = 20, - .evYield_Attack = 2, - .evYield_SpAttack = 1, - .noFlip = FALSE, - }, - - [SPECIES_DEOXYS_DEFENSE] = - { - DEOXYS_MISC_INFO, - .baseHP = 50, - .baseAttack = 70, - .baseDefense = 160, - .baseSpeed = 90, - .baseSpAttack = 70, - .baseSpDefense = 160, - .evYield_Defense = 2, - .evYield_SpDefense = 1, - .noFlip = FALSE, - }, - - [SPECIES_DEOXYS_SPEED] = - { - DEOXYS_MISC_INFO, - .baseHP = 50, - .baseAttack = 95, - .baseDefense = 90, - .baseSpeed = 180, - .baseSpAttack = 95, - .baseSpDefense = 90, - .evYield_Speed = 3, - .noFlip = TRUE, - }, -#endif //P_FAMILY_DEOXYS - -#if P_FAMILY_TURTWIG - [SPECIES_TURTWIG] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_GROTLE] = - { - .baseHP = 75, - .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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_TORTERRA] = - { - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, -#endif //P_FAMILY_TURTWIG - -#if P_FAMILY_CHIMCHAR - [SPECIES_CHIMCHAR] = - { - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, - }, - - [SPECIES_MONFERNO] = - { - .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_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, - }, - - [SPECIES_INFERNAPE] = - { - .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_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CHIMCHAR - -#if P_FAMILY_PIPLUP - [SPECIES_PIPLUP] = - { - .baseHP = 53, - .baseAttack = 51, - .baseDefense = 53, - .baseSpeed = 40, - .baseSpAttack = 61, - .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 63, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .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_PRINPLUP] = - { - .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_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_EMPOLEON] = - { - .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_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, - }, -#endif //P_FAMILY_PIPLUP - -#if P_FAMILY_STARLY - [SPECIES_STARLY] = - { - .baseHP = 40, - .baseAttack = 55, - .baseDefense = 30, - .baseSpeed = 60, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_NORMAL, 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_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_STARAVIA] = - { - .baseHP = 55, - .baseAttack = 75, - .baseDefense = 50, - .baseSpeed = 80, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 120, - .expYield = 119, - .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_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_STARAPTOR] = - { - .baseHP = 85, - .baseAttack = 120, - .baseDefense = 70, - .baseSpeed = 100, - .baseSpAttack = 50, - .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 60 : 50, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 218, - .evYield_Attack = 3, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_STARLY - -#if P_FAMILY_BIDOOF - [SPECIES_BIDOOF] = - { - .baseHP = 59, - .baseAttack = 45, - .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_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_BIBAREL] = - { - .baseHP = 79, - .baseAttack = 85, - .baseDefense = 60, - .baseSpeed = 71, - .baseSpAttack = 55, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_WATER}, - .catchRate = 127, - .expYield = 144, - .evYield_Attack = 2, - .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}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BIDOOF - -#if P_FAMILY_KRICKETOT - [SPECIES_KRICKETOT] = - { - .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_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_KRICKETUNE] = - { - .baseHP = 77, - .baseAttack = 85, - .baseDefense = 51, - .baseSpeed = 65, - .baseSpAttack = 55, - .baseSpDefense = 51, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 45, - .expYield = 134, - .evYield_Attack = 2, - .itemRare = ITEM_METRONOME, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_KRICKETOT - -#if P_FAMILY_SHINX - [SPECIES_SHINX] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_LUXIO] = - { - .baseHP = 60, - .baseAttack = 85, - .baseDefense = 49, - .baseSpeed = 60, - .baseSpAttack = 60, - .baseSpDefense = 49, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 120, - .expYield = 127, - .evYield_Attack = 2, - .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, - .noFlip = FALSE, - }, - - [SPECIES_LUXRAY] = - { - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 79, - .baseSpeed = 70, - .baseSpAttack = 95, - .baseSpDefense = 79, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 45, - .expYield = 235, - .evYield_Attack = 3, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SHINX - -#if P_FAMILY_CRANIDOS - [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, - .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_RAMPARDOS] = - { - .baseHP = 97, - .baseAttack = 165, - .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, - }, -#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, - }, - - [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, - }, -#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 - - [SPECIES_BURMY_PLANT_CLOAK] = - { - BURMY_MISC_INFO, - .bodyColor = BODY_COLOR_GREEN, - }, - - [SPECIES_BURMY_SANDY_CLOAK] = - { - BURMY_MISC_INFO, - .bodyColor = BODY_COLOR_BROWN, - }, - - [SPECIES_BURMY_TRASH_CLOAK] = - { - BURMY_MISC_INFO, - .bodyColor = BODY_COLOR_RED, - }, - -#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 - - [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, - }, - - [SPECIES_WORMADAM_SANDY_CLOAK] = - { - 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, - }, - - [SPECIES_WORMADAM_TRASH_CLOAK] = - { - 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, - }, - - [SPECIES_MOTHIM] = - { - .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, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BURMY - -#if P_FAMILY_COMBEE - [SPECIES_COMBEE] = - { - .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), - .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, - .noFlip = FALSE, - }, - - [SPECIES_VESPIQUEN] = - { - .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 = MON_FEMALE, - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#endif //P_FAMILY_COMBEE - -#if P_FAMILY_PACHIRISU - [SPECIES_PACHIRISU] = - { - .baseHP = 60, - .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 = 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, - }, -#endif //P_FAMILY_PACHIRISU - -#if P_FAMILY_BUIZEL - [SPECIES_BUIZEL] = - { - .baseHP = 55, - .baseAttack = 65, - .baseDefense = 35, - .baseSpeed = 85, - .baseSpAttack = 60, - .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 190, - .expYield = 66, - .evYield_Speed = 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, - .noFlip = FALSE, - }, - - [SPECIES_FLOATZEL] = - { - .baseHP = 85, - .baseAttack = 105, - .baseDefense = 55, - .baseSpeed = 115, - .baseSpAttack = 85, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 75, - .expYield = 173, - .evYield_Speed = 2, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BUIZEL - -#if P_FAMILY_CHERUBI - [SPECIES_CHERUBI] = - { - .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, - .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, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_CHERRIM_OVERCAST] = - { - CHERRIM_MISC_INFO, - .bodyColor = BODY_COLOR_PURPLE, - }, - - [SPECIES_CHERRIM_SUNSHINE] = - { - CHERRIM_MISC_INFO, - .bodyColor = BODY_COLOR_PINK, - }, -#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 - - [SPECIES_SHELLOS_WEST_SEA] = - { - SHELLOS_MISC_INFO, - .bodyColor = BODY_COLOR_PURPLE, - }, - - [SPECIES_SHELLOS_EAST_SEA] = - { - SHELLOS_MISC_INFO, - .bodyColor = BODY_COLOR_BLUE, - }, - -#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 - - [SPECIES_GASTRODON_WEST_SEA] = - { - GASTRODON_MISC_INFO, - .bodyColor = BODY_COLOR_PURPLE, - }, - - [SPECIES_GASTRODON_EAST_SEA] = - { - GASTRODON_MISC_INFO, - .bodyColor = BODY_COLOR_BLUE, - }, -#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_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_DRIFBLIM] = - { - .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 = 30, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DRIFLOON - -#if P_FAMILY_BUNEARY - [SPECIES_BUNEARY] = - { - .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 = 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, - }, - -#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 - - [SPECIES_LOPUNNY] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIMBER, ABILITY_OWN_TEMPO, ABILITY_KEEN_EYE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_GLAMEOW - -#if P_FAMILY_STUNKY - [SPECIES_STUNKY] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_SKUNTANK] = - { - .baseHP = 103, - .baseAttack = 93, - .baseDefense = 67, - .baseSpeed = 84, - .baseSpAttack = 71, - .baseSpDefense = 61, - .types = { TYPE_POISON, TYPE_DARK}, - .catchRate = 60, - .expYield = 168, - .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_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_STUNKY - -#if P_FAMILY_BRONZOR - [SPECIES_BRONZOR] = - { - .baseHP = 57, - .baseAttack = 24, - .baseDefense = 86, - .baseSpeed = 23, - .baseSpAttack = 24, - .baseSpDefense = 86, - .types = { TYPE_STEEL, TYPE_PSYCHIC}, - .catchRate = 255, - .expYield = 60, - .evYield_Defense = 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_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_BRONZONG] = - { - .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, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BRONZOR - -#if P_FAMILY_CHATOT - [SPECIES_CHATOT] = - { - .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, - }, -#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_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SPIRITOMB - -#if P_FAMILY_GIBLE - [SPECIES_GIBLE] = - { - .baseHP = 58, - .baseAttack = 70, - .baseDefense = 45, - .baseSpeed = 42, - .baseSpAttack = 40, - .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_GROUND}, - .catchRate = 45, - .expYield = 60, - .evYield_Attack = 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}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_GABITE] = - { - .baseHP = 68, - .baseAttack = 90, - .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 = 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, - }, - -#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 - - [SPECIES_GARCHOMP] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_LUCARIO] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .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_HIPPOWDON] = - { - .baseHP = 108, - .baseAttack = 112, - .baseDefense = 118, - .baseSpeed = 47, - .baseSpAttack = 68, - .baseSpDefense = 72, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 60, - .expYield = 184, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#endif //P_FAMILY_HIPPOPOTAS - -#if P_FAMILY_SKORUPI - [SPECIES_SKORUPI] = - { - .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, - .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}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_DRAPION] = - { - .baseHP = 70, - .baseAttack = 90, - .baseDefense = 110, - .baseSpeed = 95, - .baseSpAttack = 60, - .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_DARK}, - .catchRate = 45, - .expYield = 175, - .evYield_Defense = 2, - .itemRare = ITEM_POISON_BARB, - .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}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SKORUPI - -#if P_FAMILY_CROAGUNK - [SPECIES_CROAGUNK] = - { - .baseHP = 48, - .baseAttack = 61, - .baseDefense = 40, - .baseSpeed = 50, - .baseSpAttack = 61, - .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FIGHTING}, - .catchRate = 140, - .expYield = 60, - .evYield_Attack = 1, - .itemRare = ITEM_BLACK_SLUDGE, - .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, - .noFlip = FALSE, - }, - - [SPECIES_TOXICROAK] = - { - .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, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CROAGUNK - -#if P_FAMILY_CARNIVINE - [SPECIES_CARNIVINE] = - { - .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, - }, -#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, - .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, - .noFlip = FALSE, - }, - - [SPECIES_LUMINEON] = - { - .baseHP = 69, - .baseAttack = 69, - .baseDefense = 76, - .baseSpeed = 91, - .baseSpAttack = 69, - .baseSpDefense = 86, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 75, - .expYield = 161, - .evYield_Speed = 2, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_FINNEON - -#if P_FAMILY_SNOVER - [SPECIES_SNOVER] = - { - .baseHP = 60, - .baseAttack = 62, - .baseDefense = 50, - .baseSpeed = 40, - .baseSpAttack = 62, - .baseSpDefense = 60, - .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_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_ABOMASNOW] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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 - - [SPECIES_ROTOM] = - { - ROTOM_MISC_INFO, - .baseHP = 50, - .baseAttack = 50, - .baseDefense = 77, - .baseSpeed = 91, - .baseSpAttack = 95, - .baseSpDefense = 77, - .types = { TYPE_ELECTRIC, TYPE_GHOST}, - .expYield = 154, - .noFlip = FALSE, - }, - -#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), - }, - - [SPECIES_ROTOM_WASH] = - { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_WATER }, - .noFlip = TRUE, - ROTOM_APPLIANCE_INFO(Wash), - }, - - [SPECIES_ROTOM_FROST] = - { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_ICE }, - .noFlip = FALSE, - ROTOM_APPLIANCE_INFO(Frost), - }, - - [SPECIES_ROTOM_FAN] = - { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, - .noFlip = FALSE, - ROTOM_APPLIANCE_INFO(Fan), - }, - - [SPECIES_ROTOM_MOW] = - { - ROTOM_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_GRASS }, - .noFlip = FALSE, - ROTOM_APPLIANCE_INFO(Mow), - }, -#endif //P_FAMILY_ROTOM - -#if P_FAMILY_UXIE - [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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_MESPRIT - -#if P_FAMILY_AZELF - [SPECIES_AZELF] = - { - .baseHP = 75, - .baseAttack = 125, - .baseDefense = 70, - .baseSpeed = 115, - .baseSpAttack = 125, - .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [SPECIES_DIALGA] = - { - DIALGA_MISC_INFO, - .baseHP = 100, - .baseAttack = 120, - .baseDefense = 120, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 100, - }, - - [SPECIES_DIALGA_ORIGIN] = - { - DIALGA_MISC_INFO, - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 120, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 120, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [SPECIES_PALKIA] = - { - PALKIA_MISC_INFO, - .baseHP = 90, - .baseAttack = 120, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 150, - .baseSpDefense = 120, - }, - - [SPECIES_PALKIA_ORIGIN] = - { - PALKIA_MISC_INFO, - .baseHP = 90, - .baseAttack = 100, - .baseDefense = 100, - .baseSpeed = 120, - .baseSpAttack = 150, - .baseSpDefense = 120, - }, -#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 = 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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_HEATRAN - -#if P_FAMILY_REGIGIGAS - [SPECIES_REGIGIGAS] = - { - .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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [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}, - }, - - [SPECIES_GIRATINA_ORIGIN] = - { - GIRATINA_MISC_INFO, - .baseHP = 150, - .baseAttack = 120, - .baseDefense = 100, - .baseSpeed = 90, - .baseSpAttack = 120, - .baseSpDefense = 100, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE}, - }, -#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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_CRESSELIA - -#if P_FAMILY_MANAPHY - [SPECIES_PHIONE] = - { - .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_WATER_1, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HYDRATION, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_MANAPHY] = - { - .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_WATER_1, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HYDRATION, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#endif //P_FAMILY_MANAPHY - -#if P_FAMILY_DARKRAI - [SPECIES_DARKRAI] = - { - .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_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BAD_DREAMS, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#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, \ - .flags = SPECIES_FLAG_MYTHICAL - - [SPECIES_SHAYMIN_LAND] = - { - 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, - }, - - [SPECIES_SHAYMIN_SKY] = - { - 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, - }, -#endif //P_FAMILY_SHAYMIN - -#if P_FAMILY_ARCEUS -#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, \ - } - - [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL), - [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 //P_FAMILY_ARCEUS - -#if P_FAMILY_VICTINI - [SPECIES_VICTINI] = - { - .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, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_SERVINE] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_SERPERIOR] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SNIVY - -#if P_FAMILY_TEPIG - [SPECIES_TEPIG] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_PIGNITE] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_EMBOAR] = - { - .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, - }, -#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 = 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}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_DEWOTT] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_SAMUROTT] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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 = 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] = - { - .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, - }, -#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, - }, - - [SPECIES_HERDIER] = - { - .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, - }, - - [SPECIES_STOUTLAND] = - { - .baseHP = 85, - .baseAttack = P_UPDATED_STATS >= GEN_6 ? 110 : 100, - .baseDefense = 90, - .baseSpeed = 80, - .baseSpAttack = 45, - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_LILLIPUP - -#if P_FAMILY_PURRLOIN - [SPECIES_PURRLOIN] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_LIEPARD] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PURRLOIN - -#if P_FAMILY_PANSAGE - [SPECIES_PANSAGE] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_SIMISAGE] = - { - .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, - }, -#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_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, - .noFlip = TRUE, - }, -#endif //P_FAMILY_PANSEAR - -#if P_FAMILY_PANPOUR - [SPECIES_PANPOUR] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_SIMIPOUR] = - { - .baseHP = 75, - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PANPOUR - -#if P_FAMILY_MUNNA - [SPECIES_MUNNA] = - { - .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, - .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] = - { - .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, - .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, - }, -#endif //P_FAMILY_MUNNA - -#if P_FAMILY_PIDOVE - [SPECIES_PIDOVE] = - { - .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, - .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_TRANQUILL] = - { - .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, - .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_UNFEZANT] = - { - .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 = 220, - .evYield_Attack = 3, - .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_SUPER_LUCK, ABILITY_RIVALRY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PIDOVE - -#if P_FAMILY_BLITZLE - [SPECIES_BLITZLE] = - { - .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_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_ZEBSTRIKA] = - { - .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_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_BOLDORE] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_GIGALITH] = - { - .baseHP = 85, - .baseAttack = 135, - .baseDefense = 130, - .baseSpeed = 25, - .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, - }, -#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_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, - .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, - }, -#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, - }, - - [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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - }, -#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 - -#if P_FAMILY_AUDINO - [SPECIES_AUDINO] = - { - 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, - }, - -#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, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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_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, - }, - - [SPECIES_GURDURR] = - { - .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, - .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, - .noFlip = FALSE, - }, - - [SPECIES_CONKELDURR] = - { - .baseHP = 105, - .baseAttack = 140, - .baseDefense = 95, - .baseSpeed = 45, - .baseSpAttack = 55, - .baseSpDefense = 65, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 227, - .evYield_Attack = 3, - .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_SHEER_FORCE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TIMBURR - -#if P_FAMILY_TYMPOLE - [SPECIES_TYMPOLE] = - { - .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 = 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}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_PALPITOAD] = - { - .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_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, - }, - - [SPECIES_SEISMITOAD] = - { - .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_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, - }, -#endif //P_FAMILY_TYMPOLE - -#if P_FAMILY_THROH - [SPECIES_THROH] = - { - .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 = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_THROH - -#if P_FAMILY_SAWK - [SPECIES_SAWK] = - { - .baseHP = 75, - .baseAttack = 125, - .baseDefense = 75, - .baseSpeed = 85, - .baseSpAttack = 30, - .baseSpDefense = 75, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 163, - .evYield_Attack = 2, - .itemRare = ITEM_BLACK_BELT, - .genderRatio = MON_MALE, - .eggCycles = 20, - .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}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, -#endif //P_FAMILY_SAWK - -#if P_FAMILY_SEWADDLE - [SPECIES_SEWADDLE] = - { - .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, - }, - - [SPECIES_SWADLOON] = - { - .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, - }, - - [SPECIES_LEAVANNY] = - { - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_WHIRLIPEDE] = - { - .baseHP = 40, - .baseAttack = 55, - .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, - }, - - [SPECIES_SCOLIPEDE] = - { - .baseHP = 60, - .baseAttack = P_UPDATED_STATS >= GEN_6 ? 100 : 90, - .baseDefense = 89, - .baseSpeed = 112, - .baseSpAttack = 55, - .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 = 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, - }, -#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_GRASS, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_WHIMSICOTT] = - { - .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_GRASS, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_COTTONEE - -#if P_FAMILY_PETILIL - [SPECIES_PETILIL] = - { - .baseHP = 45, - .baseAttack = 35, - .baseDefense = 50, - .baseSpeed = 30, - .baseSpAttack = 70, - .baseSpDefense = 50, - .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, - }, - -#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 - - [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}, - }, - -#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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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 - - [SPECIES_BASCULIN_RED_STRIPED] = - { - BASCULIN_MISC_INFO, - .itemRare = ITEM_DEEP_SEA_TOOTH, - .abilities = {ABILITY_RECKLESS, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, - }, - - [SPECIES_BASCULIN_BLUE_STRIPED] = - { - BASCULIN_MISC_INFO, - .itemRare = ITEM_DEEP_SEA_SCALE, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, - }, - - [SPECIES_BASCULIN_WHITE_STRIPED] = - { - BASCULIN_MISC_INFO, - .itemRare = ITEM_DEEP_SEA_SCALE, - .abilities = {ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, - }, - -#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 - - [SPECIES_BASCULEGION_MALE] = - { - BASCULEGION_MISC_INFO, - .baseHP = 120, - .baseAttack = 112, - .baseDefense = 65, - .baseSpeed = 78, - .baseSpAttack = 80, - .baseSpDefense = 75, - .genderRatio = MON_MALE, - }, - - [SPECIES_BASCULEGION_FEMALE] = - { - BASCULEGION_MISC_INFO, - .baseHP = 120, - .baseAttack = 92, - .baseDefense = 65, - .baseSpeed = 78, - .baseSpAttack = 100, - .baseSpDefense = 75, - .genderRatio = MON_FEMALE, - }, -#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 = 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, - }, - - [SPECIES_KROKOROK] = - { - .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 = 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, - }, - - [SPECIES_KROOKODILE] = - { - .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 = 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_RED, - .noFlip = FALSE, - }, -#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 - -#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 - -#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, \ - DARMANITAN_MISC_INFO - - [SPECIES_DARUMAKA] = - { - DARUMAKA_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE}, - .bodyColor = BODY_COLOR_RED, - }, - - [SPECIES_DARMANITAN_STANDARD_MODE] = - { - DARMANITAN_STANDARD_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FIRE}, - .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE}, - .bodyColor = BODY_COLOR_RED, - }, - - [SPECIES_DARMANITAN_ZEN_MODE] = - { - DARMANITAN_ZEN_MODE_MISC_INFO, - .baseHP = 105, - .baseAttack = 30, - .baseDefense = 105, - .baseSpeed = 55, - .baseSpAttack = 140, - .baseSpDefense = 105, - .types = { TYPE_FIRE, TYPE_PSYCHIC}, - .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE}, - .bodyColor = BODY_COLOR_BLUE, - }, - -#if P_GALARIAN_FORMS - [SPECIES_DARUMAKA_GALARIAN] = - { - DARUMAKA_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE}, - .bodyColor = BODY_COLOR_WHITE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - -#define DARMANITAN_GALARIAN_MISC_INFO \ - .abilities = {ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE}, \ - .bodyColor = BODY_COLOR_WHITE, \ - .flags = SPECIES_FLAG_GALARIAN_FORM - - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = - { - DARMANITAN_GALARIAN_MISC_INFO, - DARMANITAN_STANDARD_MISC_INFO, - .types = { TYPE_ICE, TYPE_ICE}, - }, - - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = - { - 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}, - }, -#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, - }, -#endif //P_FAMILY_MARACTUS - -#if P_FAMILY_DWEBBLE - [SPECIES_DWEBBLE] = - { - .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, - }, - - [SPECIES_CRUSTLE] = - { - .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, - }, -#endif //P_FAMILY_DWEBBLE - -#if P_FAMILY_SCRAGGY - [SPECIES_SCRAGGY] = - { - .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, - }, - - [SPECIES_SCRAFTY] = - { - .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, - }, -#endif //P_FAMILY_SCRAGGY - -#if P_FAMILY_SIGILYPH - [SPECIES_SIGILYPH] = - { - .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, - .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, - }, -#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 - - [SPECIES_YAMASK] = - { - 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}, - }, - - [SPECIES_COFAGRIGUS] = - { - .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, - }, - -#if P_GALARIAN_FORMS - [SPECIES_YAMASK_GALARIAN] = - { - 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}, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_RUNERIGUS] = - { - .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, - }, -#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_WATER, TYPE_ROCK}, - .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_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_CARRACOSTA] = - { - .baseHP = 74, - .baseAttack = 108, - .baseDefense = 133, - .baseSpeed = 32, - .baseSpAttack = 83, - .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_ROCK}, - .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_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_ARCHEOPS] = - { - .baseHP = 75, - .baseAttack = 140, - .baseDefense = 65, - .baseSpeed = 110, - .baseSpAttack = 112, - .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_FLYING}, - .catchRate = 45, - .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, - }, -#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_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_AFTERMATH}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_GARBODOR] = - { - GARBODOR_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_GARBODOR_GIGANTAMAX] = - { - GARBODOR_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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 - -#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 - - [SPECIES_ZORUA] = - { - ZORUA_MISC_INFO, - .baseHP = 40, - .baseAttack = 65, - .baseDefense = 40, - .baseSpeed = 65, - .baseSpAttack = 80, - .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_DARK}, - }, - - [SPECIES_ZOROARK] = - { - ZOROARK_MISC_INFO, - .baseHP = 60, - .baseAttack = 105, - .baseDefense = 60, - .baseSpeed = 105, - .baseSpAttack = 120, - .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK}, - }, - -#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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_ZOROARK_HISUIAN] = - { - ZOROARK_MISC_INFO, - .baseHP = 55, - .baseAttack = 100, - .baseDefense = 60, - .baseSpeed = 110, - .baseSpAttack = 125, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_GHOST}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_CINCCINO] = - { - .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, - }, -#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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_GOTHORITA] = - { - .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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_GOTHITELLE] = - { - .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, - }, -#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_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_DUOSION] = - { - .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, - }, - - [SPECIES_REUNICLUS] = - { - .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_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SOLOSIS - -#if P_FAMILY_DUCKLETT - [SPECIES_DUCKLETT] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_SWANNA] = - { - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DUCKLETT - -#if P_FAMILY_VANILLITE - [SPECIES_VANILLITE] = - { - .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, - .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, - .noFlip = FALSE, - }, - - [SPECIES_VANILLISH] = - { - .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, - .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, - .noFlip = FALSE, - }, - - [SPECIES_VANILLUXE] = - { - .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, - .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, - }, -#endif //P_FAMILY_VANILLITE - -#if P_FAMILY_DEERLING -#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, \ - } - - [SPECIES_DEERLING_SPRING] = DEERLING_SPECIES_INFO(BODY_COLOR_PINK), - [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), - -#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, \ - } - - [SPECIES_SAWSBUCK_SPRING] = SAWSBUCK_SPECIES_INFO, - [SPECIES_SAWSBUCK_SUMMER] = SAWSBUCK_SPECIES_INFO, - [SPECIES_SAWSBUCK_AUTUMN] = SAWSBUCK_SPECIES_INFO, - [SPECIES_SAWSBUCK_WINTER] = SAWSBUCK_SPECIES_INFO, -#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 = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_EMOLGA - -#if P_FAMILY_KARRABLAST - [SPECIES_KARRABLAST] = - { - .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, - }, - - [SPECIES_ESCAVALIER] = - { - .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_SWARM, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_KARRABLAST - -#if P_FAMILY_FOONGUS - [SPECIES_FOONGUS] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_AMOONGUSS] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - }, -#endif //P_FAMILY_FOONGUS - -#if P_FAMILY_FRILLISH - [SPECIES_FRILLISH] = - { - .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_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_JELLICENT] = - { - .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_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_FRILLISH - -#if P_FAMILY_ALOMOMOLA - [SPECIES_ALOMOMOLA] = - { - .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, - }, -#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 = 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, - .noFlip = FALSE, - }, - - [SPECIES_GALVANTULA] = - { - .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 = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_JOLTIK - -#if P_FAMILY_FERROSEED - [SPECIES_FERROSEED] = - { - .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_GRASS, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_IRON_BARBS, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_FERROTHORN] = - { - .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, - .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, ABILITY_ANTICIPATION}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_KLANG] = - { - .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, - .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_KLINKLANG] = - { - .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, - }, -#endif //P_FAMILY_KLINK - -#if P_FAMILY_TYNAMO - [SPECIES_TYNAMO] = - { - .baseHP = 35, - .baseAttack = 55, - .baseDefense = 40, - .baseSpeed = 60, - .baseSpAttack = 45, - .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_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_EELEKTRIK] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_EELEKTROSS] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TYNAMO - -#if P_FAMILY_ELGYEM - [SPECIES_ELGYEM] = - { - .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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_BEHEEYEM] = - { - .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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_ELGYEM - -#if P_FAMILY_LITWICK - [SPECIES_LITWICK] = - { - .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_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, - .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_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_CHANDELURE] = - { - .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_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, - }, -#endif //P_FAMILY_LITWICK - -#if P_FAMILY_AXEW - [SPECIES_AXEW] = - { - .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 = 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, - }, - - [SPECIES_FRAXURE] = - { - .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 = 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, - }, - - [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, - }, -#endif //P_FAMILY_AXEW - -#if P_FAMILY_CUBCHOO - [SPECIES_CUBCHOO] = - { - .baseHP = 55, - .baseAttack = 70, - .baseDefense = 40, - .baseSpeed = 40, - .baseSpAttack = 60, - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_BEARTIC] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CUBCHOO - -#if P_FAMILY_CRYOGONAL - [SPECIES_CRYOGONAL] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CRYOGONAL - -#if P_FAMILY_SHELMET - [SPECIES_SHELMET] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_HYDRATION, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_ACCELGOR] = - { - .baseHP = 80, - .baseAttack = 70, - .baseDefense = 40, - .baseSpeed = 145, - .baseSpAttack = 100, - .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 75, - .expYield = 173, - .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_HYDRATION, ABILITY_STICKY_HOLD, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#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 - - [SPECIES_STUNFISK] = - { - 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, - }, - -#if P_GALARIAN_FORMS - [SPECIES_STUNFISK_GALARIAN] = - { - STUNFISK_MISC_INFO, - .baseHP = 109, - .baseAttack = 81, - .baseDefense = 99, - .baseSpeed = 32, - .baseSpAttack = 66, - .baseSpDefense = 84, - .types = { TYPE_GROUND, TYPE_STEEL}, - .friendship = STANDARD_FRIENDSHIP, - .abilities = {ABILITY_MIMICRY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, -#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, - }, - - [SPECIES_MIENSHAO] = - { - .baseHP = 65, - .baseAttack = 125, - .baseDefense = 60, - .baseSpeed = 105, - .baseSpAttack = 95, - .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 179, - .evYield_Attack = 2, - .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_PURPLE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MIENFOO - -#if P_FAMILY_DRUDDIGON - [SPECIES_DRUDDIGON] = - { - .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, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DRUDDIGON - -#if P_FAMILY_GOLETT - [SPECIES_GOLETT] = - { - .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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_GOLURK] = - { - .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, - .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, - }, -#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, - }, - - [SPECIES_BISHARP] = - { - .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 = 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, - }, - - [SPECIES_KINGAMBIT] = - { - .baseHP = 100, - .baseAttack = 135, - .baseDefense = 120, - .baseSpeed = 50, - .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_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, - }, -#endif //P_FAMILY_PAWNIARD - -#if P_FAMILY_BOUFFALANT - [SPECIES_BOUFFALANT] = - { - .baseHP = 95, - .baseAttack = 110, - .baseDefense = 95, - .baseSpeed = 55, - .baseSpAttack = 40, - .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 172, - .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_RECKLESS, ABILITY_SAP_SIPPER, ABILITY_SOUNDPROOF}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#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_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_BRAVIARY] = - { - 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, - }, - -#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, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#endif //P_HISUIAN_FORMS -#endif //P_FAMILY_RUFFLET - -#if P_FAMILY_VULLABY - [SPECIES_VULLABY] = - { - .baseHP = 70, - .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, - .noFlip = FALSE, - }, - - [SPECIES_MANDIBUZZ] = - { - .baseHP = 110, - .baseAttack = 65, - .baseDefense = 105, - .baseSpeed = 80, - .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_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_VULLABY - -#if P_FAMILY_HEATMOR - [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, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_HEATMOR - -#if P_FAMILY_DURANT - [SPECIES_DURANT] = - { - .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_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_HUSTLE, ABILITY_TRUANT}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DURANT - -#if P_FAMILY_DEINO - [SPECIES_DEINO] = - { - .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 = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_HUSTLE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_ZWEILOUS] = - { - .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, - }, - - [SPECIES_HYDREIGON] = - { - .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 = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#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_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_VOLCARONA] = - { - .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, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_LARVESTA - -#if P_FAMILY_COBALION - [SPECIES_COBALION] = - { - .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, - }, -#endif //P_FAMILY_COBALION - -#if P_FAMILY_TERRAKION - [SPECIES_TERRAKION] = - { - .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, - }, -#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_LEGENDARY, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [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}, - }, - - [SPECIES_TORNADUS_THERIAN] = - { - TORNADUS_MISC_INFO, - .baseHP = 79, - .baseAttack = 100, - .baseDefense = 80, - .baseSpeed = 121, - .baseSpAttack = 110, - .baseSpDefense = 90, - .abilities = {ABILITY_REGENERATOR, ABILITY_NONE, ABILITY_REGENERATOR}, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [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}, - }, - - [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}, - }, -#endif //P_FAMILY_THUNDURUS - -#if P_FAMILY_RESHIRAM - [SPECIES_RESHIRAM] = - { - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_RESHIRAM - -#if P_FAMILY_ZEKROM - [SPECIES_ZEKROM] = - { - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [SPECIES_LANDORUS_INCARNATE] = - { - 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}, - }, - - [SPECIES_LANDORUS_THERIAN] = - { - LANDORUS_MISC_INFO, - .baseHP = 89, - .baseAttack = 145, - .baseDefense = 90, - .baseSpeed = 91, - .baseSpAttack = 105, - .baseSpDefense = 80, - .evYield_Attack = 3, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, - }, -#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 - - [SPECIES_KYUREM] = - { - KYUREM_MISC_INFO, - .baseHP = 125, - .baseAttack = 130, - .baseDefense = 90, - .baseSpeed = 95, - .baseSpAttack = 130, - .baseSpDefense = 90, - .expYield = 297, - .evYield_HP = 1, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_KYUREM_WHITE] = - { - KYUREM_MISC_INFO, - .baseHP = 125, - .baseAttack = 120, - .baseDefense = 90, - .baseSpeed = 95, - .baseSpAttack = 170, - .baseSpDefense = 100, - .expYield = 315, - .evYield_SpAttack = 3, - .abilities = {ABILITY_TURBOBLAZE, ABILITY_NONE}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_KYUREM_BLACK] = - { - 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}, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, -#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, \ - .flags = SPECIES_FLAG_MYTHICAL - - [SPECIES_KELDEO_ORDINARY] = - { - KELDEO_MISC_INFO, - .noFlip = FALSE, - }, - - [SPECIES_KELDEO_RESOLUTE] = - { - KELDEO_MISC_INFO, - .noFlip = TRUE, - }, -#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, \ - .flags = SPECIES_FLAG_MYTHICAL - - [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, - }, - - [SPECIES_MELOETTA_PIROUETTE] = - { - 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, - }, -#endif //P_FAMILY_MELOETTA - -#if P_FAMILY_GENESECT -#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, \ - } - - [SPECIES_GENESECT] = GENESECT_SPECIES_INFO, - [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 //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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_QUILLADIN] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_CHESNAUGHT] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CHESPIN - -#if P_FAMILY_FENNEKIN - [SPECIES_FENNEKIN] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_BRAIXEN] = - { - .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), - .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, - .noFlip = FALSE, - }, - - [SPECIES_DELPHOX] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_FROGADIER] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - -#define GRENINJA_NORMAL_MISC_INFO \ - .baseHP = 72, \ - .baseAttack = 95, \ - .baseDefense = 67, \ - .baseSpeed = 122, \ - .baseSpAttack = 103, \ - .baseSpDefense = 71, \ - .expYield = 239 - -#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 - - [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}, - }, - - [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}, - }, - - [SPECIES_GRENINJA_ASH] = - { - 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}, - }, -#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, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .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, - .noFlip = FALSE, - }, - - [SPECIES_DIGGERSBY] = - { - .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 = 15, - .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, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_FLETCHINDER] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_TALONFLAME] = - { - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_FLETCHLING - -#if P_FAMILY_SCATTERBUG - [SPECIES_SCATTERBUG] = - { - .baseHP = 38, - .baseAttack = 35, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 27, - .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 255, - .expYield = 40, - .evYield_Defense = 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, - .noFlip = FALSE, - }, - - [SPECIES_SPEWPA] = - { - .baseHP = 45, - .baseAttack = 22, - .baseDefense = 60, - .baseSpeed = 29, - .baseSpAttack = 27, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 120, - .expYield = 75, - .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, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - -#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, \ - } - - [SPECIES_VIVILLON_ICY_SNOW] = VIVILLON_SPECIES_INFO(BODY_COLOR_WHITE), - [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), -#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, - }, - - [SPECIES_PYROAR] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_LITLEO - -#if P_FAMILY_FLABEBE -#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, \ - } - - [SPECIES_FLABEBE_RED_FLOWER] = FLABEBE_SPECIES_INFO, - [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, - -#define FLOETTE_MISC_INFO \ - .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 - -#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}, \ - FLOETTE_MISC_INFO, \ - } - - [SPECIES_FLOETTE_RED_FLOWER] = FLOETTE_NORMAL_INFO(RedFlower, RED_FLOWER, 1), - [SPECIES_FLOETTE_YELLOW_FLOWER] = FLOETTE_NORMAL_INFO(YellowFlower, YELLOW_FLOWER, 1), - [SPECIES_FLOETTE_ORANGE_FLOWER] = FLOETTE_NORMAL_INFO(OrangeFlower, ORANGE_FLOWER, 0), - [SPECIES_FLOETTE_BLUE_FLOWER] = FLOETTE_NORMAL_INFO(BlueFlower, BLUE_FLOWER, 0), - [SPECIES_FLOETTE_WHITE_FLOWER] = FLOETTE_NORMAL_INFO(WhiteFlower, WHITE_FLOWER, 1), - [SPECIES_FLOETTE_ETERNAL_FLOWER] = - { - FLOETTE_MISC_INFO, - .baseHP = 74, - .baseAttack = 65, - .baseDefense = 67, - .baseSpeed = 92, - .baseSpAttack = 125, - .baseSpDefense = 128, - .expYield = 243, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - }, - -#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, \ - } - - [SPECIES_FLORGES_RED_FLOWER] = FLORGES_SPECIES_INFO, - [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, -#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_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GOGOAT] = - { - .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 = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SKIDDO - -#if P_FAMILY_PANCHAM - [SPECIES_PANCHAM] = - { - .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 = 25, - .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, - .noFlip = FALSE, - }, - - [SPECIES_PANGORO] = - { - .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 = 25, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PANCHAM - -#if P_FAMILY_FURFROU -#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, \ - } - - [SPECIES_FURFROU_NATURAL] = FURFROU_SPECIES_INFO(FLIP), - [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), -#endif //P_FAMILY_FURFROU - -#if P_FAMILY_ESPURR - [SPECIES_ESPURR] = - { - .baseHP = 62, - .baseAttack = 48, - .baseDefense = 54, - .baseSpeed = 68, - .baseSpAttack = 63, - .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 190, - .expYield = 71, - .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_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_OWN_TEMPO}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_MEOWSTIC_MALE] = - { - MEOWSTIC_MISC_INFO, - .genderRatio = MON_MALE, - .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_BLUE, - }, - - [SPECIES_MEOWSTIC_FEMALE] = - { - MEOWSTIC_MISC_INFO, - .genderRatio = MON_FEMALE, - .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_COMPETITIVE}, - .bodyColor = BODY_COLOR_WHITE, - }, -#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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_NO_GUARD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_DOUBLADE] = - { - .baseHP = 59, - .baseAttack = 110, - .baseDefense = 150, - .baseSpeed = 35, - .baseSpAttack = 45, - .baseSpDefense = 49, - .types = { TYPE_STEEL, TYPE_GHOST}, - .catchRate = 90, - .expYield = 157, - .evYield_Defense = 2, - .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, - .noFlip = FALSE, - }, - -#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 - -#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, - }, - - [SPECIES_AEGISLASH_BLADE] = - { - AEGISLASH_MISC_INFO, - .baseHP = 60, - .baseAttack = AEGISLASH_MAIN_STAT, - .baseDefense = 50, - .baseSpeed = 60, - .baseSpAttack = AEGISLASH_MAIN_STAT, - .baseSpDefense = 50, - .evYield_Attack = 2, - .evYield_SpAttack = 1, - }, -#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 = 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, - .noFlip = FALSE, - }, - - [SPECIES_AROMATISSE] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SPRITZEE - -#if P_FAMILY_SWIRLIX - [SPECIES_SWIRLIX] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_SLURPUFF] = - { - .baseHP = 82, - .baseAttack = 80, - .baseDefense = 86, - .baseSpeed = 72, - .baseSpAttack = 85, - .baseSpDefense = 75, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 140, - .expYield = 168, - .evYield_Defense = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SWIRLIX - -#if P_FAMILY_INKAY - [SPECIES_INKAY] = - { - .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_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_MALAMAR] = - { - .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_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, - }, -#endif //P_FAMILY_INKAY - -#if P_FAMILY_BINACLE - [SPECIES_BINACLE] = - { - .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_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_BARBARACLE] = - { - .baseHP = 72, - .baseAttack = 105, - .baseDefense = 115, - .baseSpeed = 68, - .baseSpAttack = 54, - .baseSpDefense = 86, - .types = { TYPE_ROCK, TYPE_WATER}, - .catchRate = 45, - .expYield = 175, - .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, - }, -#endif //P_FAMILY_BINACLE - -#if P_FAMILY_SKRELP - [SPECIES_SKRELP] = - { - .baseHP = 50, - .baseAttack = 60, - .baseDefense = 60, - .baseSpeed = 30, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_WATER}, - .catchRate = 225, - .expYield = 64, - .evYield_SpDefense = 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, - .noFlip = FALSE, - }, - - [SPECIES_DRAGALGE] = - { - .baseHP = 65, - .baseAttack = 75, - .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 = 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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SKRELP - -#if P_FAMILY_CLAUNCHER - [SPECIES_CLAUNCHER] = - { - .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, - .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_CLAWITZER] = - { - .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 = 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, - }, -#endif //P_FAMILY_CLAUNCHER - -#if P_FAMILY_HELIOPTILE - [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, - .noFlip = FALSE, - }, - - [SPECIES_HELIOLISK] = - { - .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_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#endif //P_FAMILY_HELIOPTILE - -#if P_FAMILY_TYRUNT - [SPECIES_TYRUNT] = - { - .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}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_TYRANTRUM] = - { - .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, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TYRUNT - -#if P_FAMILY_AMAURA - [SPECIES_AMAURA] = - { - .baseHP = 77, - .baseAttack = 59, - .baseDefense = 50, - .baseSpeed = 46, - .baseSpAttack = 67, - .baseSpDefense = 63, - .types = { TYPE_ROCK, TYPE_ICE}, - .catchRate = 45, - .expYield = 72, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .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, - .noFlip = FALSE, - }, - - [SPECIES_AURORUS] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_AMAURA - -#if P_FAMILY_HAWLUCHA - [SPECIES_HAWLUCHA] = - { - .baseHP = 78, - .baseAttack = 92, - .baseDefense = 75, - .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_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, - }, -#endif //P_FAMILY_HAWLUCHA - -#if P_FAMILY_DEDENNE - [SPECIES_DEDENNE] = - { - .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, - }, -#endif //P_FAMILY_DEDENNE - -#if P_FAMILY_CARBINK - [SPECIES_CARBINK] = - { - .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 = 25, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CARBINK - -#if P_FAMILY_GOOMY - [SPECIES_GOOMY] = - { - .baseHP = 45, - .baseAttack = 50, - .baseDefense = 35, - .baseSpeed = 40, - .baseSpAttack = 55, - .baseSpDefense = 75, - .types = { TYPE_DRAGON, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 60, - .evYield_SpDefense = 1, - .itemRare = ITEM_SHED_SHELL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - -#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 - -#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 - - [SPECIES_SLIGGOO] = - { - 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}, - }, - - [SPECIES_GOODRA] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_GOODRA_HISUIAN] = - { - 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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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, - }, -#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, - .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, - }, - - [SPECIES_TREVENANT] = - { - .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, - }, -#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 - - [SPECIES_PUMPKABOO_AVERAGE] = - { - PUMPKABOO_MISC_INFO, - .baseHP = 49, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 51, - .baseSpAttack = 44, - .baseSpDefense = 55, - }, - - [SPECIES_PUMPKABOO_SMALL] = - { - PUMPKABOO_MISC_INFO, - .baseHP = 44, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 56, - .baseSpAttack = 44, - .baseSpDefense = 55, - }, - - [SPECIES_PUMPKABOO_LARGE] = - { - PUMPKABOO_MISC_INFO, - .baseHP = 54, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 46, - .baseSpAttack = 44, - .baseSpDefense = 55, - }, - - [SPECIES_PUMPKABOO_SUPER] = - { - PUMPKABOO_MISC_INFO, - .baseHP = 59, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 41, - .baseSpAttack = 44, - .baseSpDefense = 55, - .itemCommon = ITEM_MIRACLE_SEED, - .itemRare = ITEM_MIRACLE_SEED, - }, - -#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 - - [SPECIES_GOURGEIST_AVERAGE] = - { - GOURGEIST_MISC_INFO, - .baseHP = 65, - .baseAttack = 90, - .baseDefense = 122, - .baseSpeed = 84, - .baseSpAttack = 58, - .baseSpDefense = 75, - }, - - [SPECIES_GOURGEIST_SMALL] = - { - GOURGEIST_MISC_INFO, - .baseHP = 55, - .baseAttack = 85, - .baseDefense = 122, - .baseSpeed = 99, - .baseSpAttack = 58, - .baseSpDefense = 75, - }, - - [SPECIES_GOURGEIST_LARGE] = - { - GOURGEIST_MISC_INFO, - .baseHP = 75, - .baseAttack = 95, - .baseDefense = 122, - .baseSpeed = 69, - .baseSpAttack = 58, - .baseSpDefense = 75, - }, - - [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, - }, -#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_BERGMITE] = - { - .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, - }, - -#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 - - [SPECIES_AVALUGG] = - { - 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}, - }, - -#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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#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 = 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, - }, - - [SPECIES_NOIVERN] = - { - .baseHP = 85, - .baseAttack = 70, - .baseDefense = 80, - .baseSpeed = 123, - .baseSpAttack = 97, - .baseSpDefense = 80, - .types = { TYPE_FLYING, TYPE_DRAGON}, - .catchRate = 45, - .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, - }, -#endif //P_FAMILY_NOIBAT - -#if P_FAMILY_XERNEAS -#define XERNEAS_MISC_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 - - [SPECIES_XERNEAS_NEUTRAL] = - { - XERNEAS_MISC_INFO, - }, - - [SPECIES_XERNEAS_ACTIVE] = - { - XERNEAS_MISC_INFO, - }, -#endif //P_FAMILY_XERNEAS - -#if P_FAMILY_YVELTAL - [SPECIES_YVELTAL] = - { - .baseHP = 126, - .baseAttack = 131, - .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_DARK_AURA, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_YVELTAL - -#if P_FAMILY_ZYGARDE -#define ZYGARDE_MISC_INFO \ - .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}, \ - .noFlip = TRUE, \ - .flags = SPECIES_FLAG_LEGENDARY - -#define ZYGARDE_50_SPECIES_INFO(ability) \ - { \ - .baseHP = 108, \ - .baseAttack = 100, \ - .baseDefense = 121, \ - .baseSpeed = 95, \ - .baseSpAttack = 81, \ - .baseSpDefense = 95, \ - .expYield = 270, \ - .abilities = {ability, ABILITY_NONE}, \ - .bodyColor = BODY_COLOR_GREEN, \ - ZYGARDE_MISC_INFO, \ - } - -#define ZYGARDE_10_SPECIES_INFO(ability) \ - { \ - .baseHP = 54, \ - .baseAttack = 100, \ - .baseDefense = 71, \ - .baseSpeed = 115, \ - .baseSpAttack = 61, \ - .baseSpDefense = 85, \ - .expYield = 219, \ - .abilities = {ability, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_BLACK, \ - ZYGARDE_MISC_INFO, \ - } - - [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] = - { - ZYGARDE_MISC_INFO, - .baseHP = 216, - .baseAttack = 100, - .baseDefense = 121, - .baseSpeed = 85, - .baseSpAttack = 91, - .baseSpDefense = 95, - .expYield = 319, - .abilities = {ABILITY_POWER_CONSTRUCT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - }, -#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 - - [SPECIES_DIANCIE] = - { - DIANCE_MISC_INFO, - .baseHP = 50, - .baseAttack = 100, - .baseDefense = 150, - .baseSpeed = 50, - .baseSpAttack = 100, - .baseSpDefense = 150, - .expYield = 270, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, - .flags = SPECIES_FLAG_MYTHICAL, - }, - -#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}, - .flags = SPECIES_FLAG_MYTHICAL | SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif -#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, \ - .flags = SPECIES_FLAG_MYTHICAL - - [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, - }, - - [SPECIES_HOOPA_UNBOUND] = - { - 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, - }, -#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 = 270, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .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 //P_FAMILY_VOLCANION - -#if P_FAMILY_ROWLET - [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, - }, - -#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 - - [SPECIES_DECIDUEYE] = - { - 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}, - }, - -#if P_HISUIAN_FORMS - [SPECIES_DECIDUEYE_HISUIAN] = - { - 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}, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#endif //P_HISUIAN_FORMS -#endif //P_FAMILY_ROWLET - -#if P_FAMILY_LITTEN - [SPECIES_LITTEN] = - { - .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, - }, - - [SPECIES_TORRACAT] = - { - .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, - }, - - [SPECIES_INCINEROAR] = - { - .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, - }, -#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, - }, - - [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] = - { - .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, - }, -#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, - }, - - [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_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_TOUCANNON] = - { - .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, - }, -#endif //P_FAMILY_PIKIPEK - -#if P_FAMILY_YUNGOOS - [SPECIES_YUNGOOS] = - { - .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, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GUMSHOOS] = - { - .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, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_YUNGOOS - -#if P_FAMILY_GRUBBIN - [SPECIES_GRUBBIN] = - { - .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, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_CHARJABUG] = - { - .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, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_BATTERY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_VIKAVOLT] = - { - .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_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_GRUBBIN - -#if P_FAMILY_CRABRAWLER - [SPECIES_CRABRAWLER] = - { - .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 = 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, - .noFlip = FALSE, - }, - - [SPECIES_CRABOMINABLE] = - { - .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 = 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, - .noFlip = FALSE, - }, -#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 - - [SPECIES_ORICORIO_BAILE] = - { - ORICORIO_MISC_INFO, - .types = { TYPE_FIRE, TYPE_FLYING }, - .bodyColor = BODY_COLOR_RED, - }, - - [SPECIES_ORICORIO_POM_POM] = - { - ORICORIO_MISC_INFO, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, - .bodyColor = BODY_COLOR_YELLOW, - }, - - [SPECIES_ORICORIO_PAU] = - { - ORICORIO_MISC_INFO, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, - .bodyColor = BODY_COLOR_PINK, - }, - - [SPECIES_ORICORIO_SENSU] = - { - ORICORIO_MISC_INFO, - .types = { TYPE_GHOST, TYPE_FLYING }, - .bodyColor = BODY_COLOR_PURPLE, - }, -#endif //P_FAMILY_ORICORIO - -#if P_FAMILY_CUTIEFLY - [SPECIES_CUTIEFLY] = - { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 40, - .baseSpeed = 84, - .baseSpAttack = 55, - .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_FAIRY}, - .catchRate = 190, - .expYield = 61, - .evYield_Speed = 1, - .itemRare = ITEM_HONEY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .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, - .noFlip = FALSE, - }, - - [SPECIES_RIBOMBEE] = - { - .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, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .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, - .noFlip = FALSE, - }, -#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 - - [SPECIES_ROCKRUFF] = - { - ROCKRUFF_MISC_INFO, - .abilities = {ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_STEADFAST}, - }, - - [SPECIES_ROCKRUFF_OWN_TEMPO] = - { - ROCKRUFF_MISC_INFO, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_NONE}, - }, - -#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 - - [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, - }, - - [SPECIES_LYCANROC_MIDNIGHT] = - { - 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, - }, - - [SPECIES_LYCANROC_DUSK] = - { - 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, - }, -#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 - - [SPECIES_WISHIWASHI_SOLO] = - { - WISHIWASHI_MISC_INFO, - .baseHP = 45, - .baseAttack = 20, - .baseDefense = 20, - .baseSpeed = 40, - .baseSpAttack = 25, - .baseSpDefense = 25, - }, - - [SPECIES_WISHIWASHI_SCHOOL] = - { - WISHIWASHI_MISC_INFO, - .baseHP = 45, - .baseAttack = 140, - .baseDefense = 130, - .baseSpeed = 30, - .baseSpAttack = 140, - .baseSpDefense = 135, - }, -#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 = 20, - .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, - .noFlip = FALSE, - }, - - [SPECIES_TOXAPEX] = - { - .baseHP = 50, - .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_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MAREANIE - -#if P_FAMILY_MUDBRAY - [SPECIES_MUDBRAY] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MUDSDALE] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MUDBRAY - -#if P_FAMILY_DEWPIDER - [SPECIES_DEWPIDER] = - { - .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, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .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, - .noFlip = FALSE, - }, - - [SPECIES_ARAQUANID] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, - .abilities = {ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DEWPIDER - -#if P_FAMILY_FOMANTIS - [SPECIES_FOMANTIS] = - { - .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_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_LURANTIS] = - { - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_FOMANTIS - -#if P_FAMILY_MORELULL - [SPECIES_MORELULL] = - { - .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, - .noFlip = FALSE, - }, - - [SPECIES_SHIINOTIC] = - { - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MORELULL - -#if P_FAMILY_SALANDIT - [SPECIES_SALANDIT] = - { - .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_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_SALAZZLE] = - { - .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, - .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, - }, -#endif //P_FAMILY_SALANDIT - -#if P_FAMILY_STUFFUL - [SPECIES_STUFFUL] = - { - .baseHP = 70, - .baseAttack = 75, - .baseDefense = 50, - .baseSpeed = 50, - .baseSpAttack = 45, - .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FIGHTING}, - .catchRate = 140, - .expYield = 68, - .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_FLUFFY, ABILITY_KLUTZ, ABILITY_CUTE_CHARM}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_BEWEAR] = - { - .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 = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_STUFFUL - -#if P_FAMILY_BOUNSWEET - [SPECIES_BOUNSWEET] = - { - .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, - .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 = FALSE, - }, - - [SPECIES_STEENEE] = - { - .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, - .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, - }, - - [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, - }, -#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, - }, -#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, - }, -#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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RECEIVER, ABILITY_NONE, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PASSIMIAN - -#if P_FAMILY_WIMPOD - [SPECIES_WIMPOD] = - { - .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_BUG, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_WIMP_OUT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_GOLISOPOD] = - { - .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_BUG, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_EMERGENCY_EXIT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_WIMPOD - -#if P_FAMILY_SANDYGAST - [SPECIES_SANDYGAST] = - { - .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_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_PALOSSAND] = - { - .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 = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SANDYGAST - -#if P_FAMILY_PYUKUMUKU - [SPECIES_PYUKUMUKU] = - { - .baseHP = 55, - .baseAttack = 60, - .baseDefense = 130, - .baseSpeed = 5, - .baseSpAttack = 30, - .baseSpDefense = 130, - .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_1}, - .abilities = {ABILITY_INNARDS_OUT, ABILITY_NONE, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PYUKUMUKU - -#if P_FAMILY_TYPE_NULL - [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, - }, - -#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, \ - } - - [SPECIES_SILVALLY_NORMAL] = SILVALLY_SPECIES_INFO(TYPE_NORMAL), - [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), -#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 - -#define MINIOR_METEOR_SPECIES_INFO \ - { \ - .baseHP = 60, \ - .baseAttack = 60, \ - .baseDefense = 100, \ - .baseSpeed = 60, \ - .baseSpAttack = 60, \ - .baseSpDefense = 100, \ - MINIOR_MISC_INFO(BODY_COLOR_BROWN), \ - } - -#define MINIOR_CORE_SPECIES_INFO(color) \ - { \ - .baseHP = 60, \ - .baseAttack = 100, \ - .baseDefense = 60, \ - .baseSpeed = 120, \ - .baseSpAttack = 100, \ - .baseSpDefense = 60, \ - MINIOR_MISC_INFO(color), \ - } - - [SPECIES_MINIOR_METEOR_RED] = MINIOR_METEOR_SPECIES_INFO, - [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), -#endif //P_FAMILY_MINIOR - -#if P_FAMILY_KOMALA - [SPECIES_KOMALA] = - { - .baseHP = 65, - .baseAttack = 115, - .baseDefense = 65, - .baseSpeed = 65, - .baseSpAttack = 75, - .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 168, - .evYield_Attack = 2, - .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, - }, -#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_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TURTONATOR - -#if P_FAMILY_TOGEDEMARU - [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, - }, -#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 - - [SPECIES_MIMIKYU_DISGUISED] = - { - MIMIKYU_MISC_INFO, - }, - - [SPECIES_MIMIKYU_BUSTED] = - { - MIMIKYU_MISC_INFO, - }, -#endif //P_FAMILY_MIMIKYU - -#if P_FAMILY_BRUXISH - [SPECIES_BRUXISH] = - { - .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 = 15, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BRUXISH - -#if P_FAMILY_DRAMPA - [SPECIES_DRAMPA] = - { - .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_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_BERSERK, ABILITY_SAP_SIPPER, ABILITY_CLOUD_NINE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DRAMPA - -#if P_FAMILY_DHELMISE - [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, - }, -#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, - }, - - [SPECIES_HAKAMO_O] = - { - .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 = 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, - }, - - [SPECIES_KOMMO_O] = - { - .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 = 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, - }, -#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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_TAPU_LELE - -#if P_FAMILY_TAPU_BULU - [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, - }, -#endif //P_FAMILY_TAPU_BULU - -#if P_FAMILY_TAPU_FINI - [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, - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_TAPU_FINI - -#if P_FAMILY_COSMOG - [SPECIES_COSMOG] = - { - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_COSMOEM] = - { - .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, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_SOLGALEO] = - { - .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, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_LUNALA] = - { - .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, - }, -#endif //P_FAMILY_COSMOG - -#if P_FAMILY_NIHILEGO - [SPECIES_NIHILEGO] = - { - .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, - }, -#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, - .flags = SPECIES_FLAG_ULTRA_BEAST, - }, -#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 = 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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, - }, -#endif //P_FAMILY_PHEROMOSA - -#if P_FAMILY_XURKITREE - [SPECIES_XURKITREE] = - { - .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, - }, -#endif //P_FAMILY_XURKITREE - -#if P_FAMILY_CELESTEELA - [SPECIES_CELESTEELA] = - { - .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, - }, -#endif //P_FAMILY_CELESTEELA - -#if P_FAMILY_KARTANA - [SPECIES_KARTANA] = - { - .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, - }, -#endif //P_FAMILY_KARTANA - -#if P_FAMILY_GUZZLORD - [SPECIES_GUZZLORD] = - { - .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, - }, -#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 - - [SPECIES_NECROZMA] = - { - 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, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [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, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_NECROZMA_DAWN_WINGS] = - { - 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, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [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, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_ULTRA_BURST, - }, -#endif //P_FAMILY_NECROZMA - -#if P_FAMILY_MAGEARNA -#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, \ - } - - [SPECIES_MAGEARNA] = MAGEARNA_SPECIES_INFO(BODY_COLOR_GRAY), - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = MAGEARNA_SPECIES_INFO(BODY_COLOR_RED), -#endif //P_FAMILY_MAGEARNA - -#if P_FAMILY_MARSHADOW - [SPECIES_MARSHADOW] = - { - .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, - }, -#endif //P_FAMILY_MARSHADOW - -#if P_FAMILY_POIPOLE - [SPECIES_POIPOLE] = - { - .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_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, - }, - - [SPECIES_NAGANADEL] = - { - .baseHP = 73, - .baseAttack = 73, - .baseDefense = 73, - .baseSpeed = 121, - .baseSpAttack = 127, - .baseSpDefense = 73, - .types = { TYPE_POISON, 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}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, - }, -#endif //P_FAMILY_POIPOLE - -#if P_FAMILY_STAKATAKA - [SPECIES_STAKATAKA] = - { - .baseHP = 61, - .baseAttack = 131, - .baseDefense = 211, - .baseSpeed = 13, - .baseSpAttack = 53, - .baseSpDefense = 101, - .types = { TYPE_ROCK, TYPE_STEEL}, - .catchRate = 30, - .expYield = 257, - .evYield_Defense = 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, - }, -#endif //P_FAMILY_STAKATAKA - -#if P_FAMILY_BLACEPHALON - [SPECIES_BLACEPHALON] = - { - .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, - }, -#endif //P_FAMILY_BLACEPHALON - -#if P_FAMILY_ZERAORA - [SPECIES_ZERAORA] = - { - .baseHP = 88, - .baseAttack = 112, - .baseDefense = 75, - .baseSpeed = 143, - .baseSpAttack = 102, - .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .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_VOLT_ABSORB, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#endif //P_FAMILY_ZERAORA - -#if P_FAMILY_MELTAN - [SPECIES_MELTAN] = - { - .baseHP = 46, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 34, - .baseSpAttack = 55, - .baseSpDefense = 35, - .types = { TYPE_STEEL, TYPE_STEEL}, - .catchRate = 3, - .expYield = 135, - .evYield_Attack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .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 - - [SPECIES_MELMETAL] = - { - MELMETAL_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_MELMETAL_GIGANTAMAX] = - { - MELMETAL_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_THWACKEY] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_RILLABOOM] = - { - RILLABOOM_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_RILLABOOM_GIGANTAMAX] = - { - RILLABOOM_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#endif //P_FAMILY_GROOKEY - -#if P_FAMILY_SCORBUNNY - [SPECIES_SCORBUNNY] = - { - .baseHP = 50, - .baseAttack = 71, - .baseDefense = 40, - .baseSpeed = 69, - .baseSpAttack = 40, - .baseSpDefense = 40, - .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_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_RABOOT] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, - .bodyColor = BODY_COLOR_GRAY, - .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 - - [SPECIES_CINDERACE] = - { - CINDERACE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_CINDERACE_GIGANTAMAX] = - { - CINDERACE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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 = 62, - .evYield_Speed = 1, - .evYield_SpDefense = 1, - .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, - }, - - [SPECIES_DRIZZILE] = - { - .baseHP = 65, - .baseAttack = 60, - .baseDefense = 55, - .baseSpeed = 90, - .baseSpAttack = 95, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 147, - .evYield_SpAttack = 2, - .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 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 - - [SPECIES_INTELEON] = - { - INTELEON_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_INTELEON_GIGANTAMAX] = - { - INTELEON_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GREEDENT] = - { - .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, - }, -#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_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_CORVISQUIRE] = - { - .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, - }, - -#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 - - [SPECIES_CORVIKNIGHT] = - { - CORVIKNIGHT_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = - { - CORVIKNIGHT_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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, - .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_BLUE, - .noFlip = FALSE, - }, - - [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, - }, - -#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 - - [SPECIES_ORBEETLE] = - { - ORBEETLE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_ORBEETLE_GIGANTAMAX] = - { - ORBEETLE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_THIEVUL] = - { - .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, - }, -#endif //P_FAMILY_NICKIT - -#if P_FAMILY_GOSSIFLEUR - [SPECIES_GOSSIFLEUR] = - { - .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_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_ELDEGOSS] = - { - .baseHP = 60, - .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_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#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, - }, - - [SPECIES_DUBWOOL] = - { - .baseHP = 72, - .baseAttack = 80, - .baseDefense = 100, - .baseSpeed = 88, - .baseSpAttack = 60, - .baseSpDefense = 90, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .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, - }, -#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_WATER_1}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_GREEN, - .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 - - [SPECIES_DREDNAW] = - { - DREDNAW_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_DREDNAW_GIGANTAMAX] = - { - DREDNAW_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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, - }, - - [SPECIES_BOLTUND] = - { - .baseHP = 69, - .baseAttack = 90, - .baseDefense = 60, - .baseSpeed = 121, - .baseSpAttack = 90, - .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 45, - .expYield = 172, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_COMPETITIVE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#endif //P_FAMILY_YAMPER - -#if P_FAMILY_ROLYCOLY - [SPECIES_ROLYCOLY] = - { - .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 = 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, - .noFlip = FALSE, - }, - - [SPECIES_CARKOL] = - { - .baseHP = 80, - .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_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 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 - - [SPECIES_COALOSSAL] = - { - COALOSSAL_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_COALOSSAL_GIGANTAMAX] = - { - COALOSSAL_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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_ERRATIC, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_GREEN, - .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 - - [SPECIES_FLAPPLE] = - { - FLAPPLE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_FLAPPLE_GIGANTAMAX] = - { - FLAPPLE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif - -#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 - - [SPECIES_APPLETUN] = - { - APPLETUN_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_APPLETUN_GIGANTAMAX] = - { - APPLETUN_MISC_INFO, - .gigantamax = TRUE, - }, -#endif - - [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 = 20, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#endif //P_FAMILY_APPLIN - -#if P_FAMILY_SILICOBRA - [SPECIES_SILICOBRA] = - { - .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 = 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 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 - - [SPECIES_SANDACONDA] = - { - SANDACONDA_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_SANDACONDA_GIGANTAMAX] = - { - SANDACONDA_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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 - - [SPECIES_CRAMORANT] = - { - CRAMORANT_MISC_INFO, - }, - - [SPECIES_CRAMORANT_GULPING] = - { - CRAMORANT_MISC_INFO, - }, - - [SPECIES_CRAMORANT_GORGING] = - { - CRAMORANT_MISC_INFO, - }, -#endif //P_FAMILY_CRAMORANT - -#if P_FAMILY_ARROKUDA - [SPECIES_ARROKUDA] = - { - .baseHP = 41, - .baseAttack = 63, - .baseDefense = 40, - .baseSpeed = 66, - .baseSpAttack = 40, - .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 255, - .expYield = 56, - .evYield_Speed = 1, - .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, - .noFlip = FALSE, - }, - - [SPECIES_BARRASKEWDA] = - { - .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 = 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, - .noFlip = FALSE, - }, -#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, - }, - -#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 - - [SPECIES_TOXTRICITY_AMPED] = - { - TOXTRICITY_MISC_INFO, - .abilities = {ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN}, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = - { - TOXTRICITY_MISC_INFO, - .abilities = {ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN}, - .gigantamax = TRUE, - }, -#endif - - [SPECIES_TOXTRICITY_LOW_KEY] = - { - TOXTRICITY_MISC_INFO, - .abilities = {ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN}, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = - { - TOXTRICITY_MISC_INFO, - .abilities = {ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN}, - .gigantamax = TRUE, - }, -#endif -#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 = 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 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 - - [SPECIES_CENTISKORCH] = - { - CENTISKORCH_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_CENTISKORCH_GIGANTAMAX] = - { - CENTISKORCH_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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_WATER_1, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GRAPPLOCT] = - { - .baseHP = 80, - .baseAttack = 118, - .baseDefense = 90, - .baseSpeed = 42, - .baseSpAttack = 70, - .baseSpDefense = 80, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 168, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .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, - .noFlip = FALSE, - }, -#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 - - [SPECIES_SINISTEA_PHONY] = - { - SINISTEA_MISC_INFO, - }, - - [SPECIES_SINISTEA_ANTIQUE] = - { - SINISTEA_MISC_INFO, - }, - -#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 - - [SPECIES_POLTEAGEIST_PHONY] = - { - POLTEAGEIST_MISC_INFO, - }, - - [SPECIES_POLTEAGEIST_ANTIQUE] = - { - POLTEAGEIST_MISC_INFO, - }, -#endif //P_FAMILY_SINISTEA - -#if P_FAMILY_HATENNA - [SPECIES_HATENNA] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_HATTREM] = - { - .baseHP = 57, - .baseAttack = 40, - .baseDefense = 65, - .baseSpeed = 49, - .baseSpAttack = 86, - .baseSpDefense = 73, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 120, - .expYield = 130, - .evYield_SpAttack = 2, - .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 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 - - [SPECIES_HATTERENE] = - { - HATTERENE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_HATTERENE_GIGANTAMAX] = - { - HATTERENE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#endif //P_FAMILY_HATENNA - -#if P_FAMILY_IMPIDIMP - [SPECIES_IMPIDIMP] = - { - .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, - .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, - }, - - [SPECIES_MORGREM] = - { - .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, - }, - -#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 - - [SPECIES_GRIMMSNARL] = - { - GRIMMSNARL_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_GRIMMSNARL_GIGANTAMAX] = - { - GRIMMSNARL_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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_FAIRY, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL}, - .bodyColor = BODY_COLOR_WHITE, - .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 - -// For later -#define ALCREMIE_REGULAR_MISC_INFO(color, sweet, cream) \ - ALCREMIE_MISC_INFO(color) - - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Strawberry, VanillaCream), }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Strawberry, RubyCream), }, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Strawberry, MatchaCream), }, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Strawberry, MintCream), }, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Strawberry, LemonCream), }, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Strawberry, SaltedCream), }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Strawberry, RubySwirl), }, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Strawberry, CaramelSwirl), }, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Strawberry, RainbowSwirl), }, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Berry, VanillaCream) }, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Berry, RubyCream) }, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Berry, MatchaCream), }, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Berry, MintCream), }, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Berry, LemonCream), }, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Berry, SaltedCream), }, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Berry, RubySwirl), }, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Berry, CaramelSwirl), }, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Berry, RainbowSwirl), }, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Love, VanillaCream) }, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Love, RubyCream) }, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Love, MatchaCream), }, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Love, MintCream), }, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Love, LemonCream), }, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Love, SaltedCream), }, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Love, RubySwirl), }, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Love, CaramelSwirl), }, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Love, RainbowSwirl), }, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Star, VanillaCream) }, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Star, RubyCream) }, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Star, MatchaCream), }, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Star, MintCream), }, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Star, LemonCream), }, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Star, SaltedCream), }, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Star, RubySwirl), }, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Star, CaramelSwirl), }, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Star, RainbowSwirl), }, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Clover, VanillaCream) }, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Clover, RubyCream) }, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Clover, MatchaCream), }, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Clover, MintCream), }, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Clover, LemonCream), }, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Clover, SaltedCream), }, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Clover, RubySwirl), }, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Clover, CaramelSwirl), }, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Clover, RainbowSwirl), }, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Flower, VanillaCream) }, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Flower, RubyCream) }, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Flower, MatchaCream), }, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Flower, MintCream), }, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Flower, LemonCream), }, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Flower, SaltedCream), }, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Flower, RubySwirl), }, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Flower, CaramelSwirl), }, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Flower, RainbowSwirl), }, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Ribbon, VanillaCream) }, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_PINK, Ribbon, RubyCream) }, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_GREEN, Ribbon, MatchaCream), }, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BLUE, Ribbon, MintCream), }, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Ribbon, LemonCream), }, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_WHITE, Ribbon, SaltedCream), }, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Ribbon, RubySwirl), }, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_BROWN, Ribbon, CaramelSwirl), }, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = { ALCREMIE_REGULAR_MISC_INFO(BODY_COLOR_YELLOW, Ribbon, RainbowSwirl), }, -#if P_GIGANTAMAX_FORMS - [SPECIES_ALCREMIE_GIGANTAMAX] = - { - ALCREMIE_MISC_INFO(BODY_COLOR_PINK), - .gigantamax = TRUE, - }, -#endif -#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 = 165, - .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, - .noFlip = FALSE, - }, -#endif //P_FAMILY_FALINKS - -#if P_FAMILY_PINCURCHIN - [SPECIES_PINCURCHIN] = - { - .baseHP = 48, - .baseAttack = 101, - .baseDefense = 95, - .baseSpeed = 15, - .baseSpAttack = 91, - .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 75, - .expYield = 152, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .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, - }, -#endif //P_FAMILY_PINCURCHIN - -#if P_FAMILY_SNOM - [SPECIES_SNOM] = - { - .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, - .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_NONE, ABILITY_ICE_SCALES}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_FROSMOTH] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SNOM - -#if P_FAMILY_STONJOURNER - [SPECIES_STONJOURNER] = - { - .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 = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_POWER_SPOT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_STONJOURNER - -#if P_FAMILY_EISCUE -#define EISCUE_MISC_INFO(form) \ - .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 - - [SPECIES_EISCUE_ICE_FACE] = - { - .baseHP = 75, - .baseAttack = 80, - .baseDefense = 110, - .baseSpeed = 50, - .baseSpAttack = 65, - .baseSpDefense = 90, - EISCUE_MISC_INFO(IceFace), - }, - - [SPECIES_EISCUE_NOICE_FACE] = - { - .baseHP = 75, - .baseAttack = 80, - .baseDefense = 70, - .baseSpeed = 130, - .baseSpAttack = 65, - .baseSpDefense = 50, - EISCUE_MISC_INFO(NoiceFace), - }, -#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 - - [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}, - }, - - [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}, - }, -#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 - - [SPECIES_MORPEKO_FULL_BELLY] = - { - MORPEKO_MISC_INFO, - }, - - [SPECIES_MORPEKO_HANGRY] = - { - MORPEKO_MISC_INFO, - }, -#endif //P_FAMILY_MORPEKO - -#if P_FAMILY_CUFANT - [SPECIES_CUFANT] = - { - .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, - .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 - - [SPECIES_COPPERAJAH] = - { - COPPERAJAH_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_COPPERAJAH_GIGANTAMAX] = - { - COPPERAJAH_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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 = 177, - .evYield_Attack = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_HUSTLE, ABILITY_SAND_RUSH}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DRACOZOLT - -#if P_FAMILY_ARCTOZOLT - [SPECIES_ARCTOZOLT] = - { - .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 = 35, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_STATIC, ABILITY_SLUSH_RUSH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_ARCTOZOLT - -#if P_FAMILY_DRACOVISH - [SPECIES_DRACOVISH] = - { - .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_WATER_ABSORB, ABILITY_STRONG_JAW, ABILITY_SAND_RUSH}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_DRACOVISH - -#if P_FAMILY_ARCTOVISH - [SPECIES_ARCTOVISH] = - { - .baseHP = 90, - .baseAttack = 90, - .baseDefense = 100, - .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_WATER_ABSORB, ABILITY_ICE_BODY, ABILITY_SLUSH_RUSH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#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 - - [SPECIES_DURALUDON] = - { - DURALUDON_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_DURALUDON_GIGANTAMAX] = - { - DURALUDON_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#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 = 54, - .evYield_Speed = 1, - .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, - }, - - [SPECIES_DRAKLOAK] = - { - .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, - }, - - [SPECIES_DRAGAPULT] = - { - .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, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [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, - }, - - [SPECIES_ZACIAN_CROWNED_SWORD] = - { - ZACIAN_MISC_INFO, - .baseHP = 92, - .baseAttack = P_UPDATED_STATS >= GEN_9 ? 150 : 170, - .baseDefense = 115, - .baseSpeed = 148, - .baseSpAttack = 80, - .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_STEEL}, - .expYield = 360, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [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, - }, - - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = - { - 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 = P_UPDATED_STATS >= GEN_9 ? 140 : 145, - .types = { TYPE_FIGHTING, TYPE_STEEL}, - .expYield = 360, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [SPECIES_ETERNATUS] = - { - ETERNATUS_MISC_INFO, - .baseHP = 140, - .baseAttack = 85, - .baseDefense = 95, - .baseSpeed = 130, - .baseSpAttack = 145, - .baseSpDefense = 95, - .expYield = 345, - }, - - [SPECIES_ETERNATUS_ETERNAMAX] = - { - ETERNATUS_MISC_INFO, - .baseHP = 255, - .baseAttack = 115, - .baseDefense = 250, - .baseSpeed = 130, - .baseSpAttack = 125, - .baseSpDefense = 250, - .expYield = 563, - }, -#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_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - -#define URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO \ - .types = {TYPE_FIGHTING, TYPE_DARK}, \ - URSHIFU_MISC_INFO(SingleStrike) - - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = - { - URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = - { - URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif - -#define URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO \ - .types = {TYPE_FIGHTING, TYPE_WATER}, \ - URSHIFU_MISC_INFO(RapidStrike) - - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = - { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, - }, - -#if P_GIGANTAMAX_FORMS - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = - { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, - .gigantamax = TRUE, - }, -#endif -#endif //P_FAMILY_KUBFU - -#if P_FAMILY_ZARUDE -#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, \ - } - - [SPECIES_ZARUDE] = ZARUDE_SPECIES_INFO, - [SPECIES_ZARUDE_DADA] = ZARUDE_SPECIES_INFO, -#endif //P_FAMILY_ZARUDE - -#if P_FAMILY_REGIELEKI - [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, - }, -#endif //P_FAMILY_REGIELEKI - -#if P_FAMILY_REGIDRAGO - [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, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 35, - .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, - }, -#endif //P_FAMILY_REGIDRAGO - -#if P_FAMILY_GLASTRIER - [SPECIES_GLASTRIER] = - { - .baseHP = 100, - .baseAttack = 145, - .baseDefense = 130, - .baseSpeed = 30, - .baseSpAttack = 65, - .baseSpDefense = 110, - .types = { TYPE_ICE, TYPE_ICE}, - .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_CHILLING_NEIGH, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_GLASTRIER - -#if P_FAMILY_SPECTRIER - [SPECIES_SPECTRIER] = - { - .baseHP = 100, - .baseAttack = 65, - .baseDefense = 60, - .baseSpeed = 130, - .baseSpAttack = 145, - .baseSpDefense = 80, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 3, - .expYield = 290, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_GRIM_NEIGH, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_SPECTRIER - -#if P_FAMILY_CALYREX - [SPECIES_CALYREX] = - { - .baseHP = 100, - .baseAttack = 80, - .baseDefense = 80, - .baseSpeed = 80, - .baseSpAttack = 80, - .baseSpDefense = 80, - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_CALYREX_ICE_RIDER] = - { - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_CALYREX_SHADOW_RIDER] = - { - .baseHP = 100, - .baseAttack = 85, - .baseDefense = 80, - .baseSpeed = 150, - .baseSpAttack = 165, - .baseSpDefense = 100, - .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, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY - - [SPECIES_ENAMORUS_INCARNATE] = - { - ENAMORUS_MISC_INFO, - .baseHP = 74, - .baseAttack = 115, - .baseDefense = 70, - .baseSpeed = 106, - .baseSpAttack = 135, - .baseSpDefense = 80, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_CONTRARY}, - }, - - [SPECIES_ENAMORUS_THERIAN] = - { - ENAMORUS_MISC_INFO, - .baseHP = 74, - .baseAttack = 115, - .baseDefense = 110, - .baseSpeed = 46, - .baseSpAttack = 135, - .baseSpDefense = 100, - .abilities = {ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_NONE}, - }, -#endif //P_FAMILY_ENAMORUS - -#if P_FAMILY_SPRIGATITO - [SPECIES_SPRIGATITO] = - { - .baseHP = 40, - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_FLORAGATO] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_MEOWSCARADA] = - { - .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_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SPRIGATITO - -#if P_FAMILY_FUECOCO - [SPECIES_FUECOCO] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_CROCALOR] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_SKELEDIRGE] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_FUECOCO - -#if P_FAMILY_QUAXLY - [SPECIES_QUAXLY] = - { - .baseHP = 55, - .baseAttack = 65, - .baseDefense = 45, - .baseSpeed = 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_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_QUAXWELL] = - { - .baseHP = 70, - .baseAttack = 85, - .baseDefense = 65, - .baseSpeed = 65, - .baseSpAttack = 65, - .baseSpDefense = 60, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 45, - .expYield = 144, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, - - [SPECIES_QUAQUAVAL] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_QUAXLY - -#if P_FAMILY_LECHONK - [SPECIES_LECHONK] = - { - .baseHP = 54, - .baseAttack = 45, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 35, - .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 255, - .expYield = 51, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - -#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 - - [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}, - }, - - [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}, - }, -#endif //P_FAMILY_LECHONK - -#if P_FAMILY_TAROUNTULA - [SPECIES_TAROUNTULA] = - { - .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 = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_SPIDOPS] = - { - .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 = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#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 = 42, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = 20, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_LOKIX] = - { - .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 = 0, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_NYMBLE - -#if P_FAMILY_PAWMI - [SPECIES_PAWMI] = - { - .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 = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_PAWMO] = - { - .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 = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_PAWMOT] = - { - .baseHP = 70, - .baseAttack = 115, - .baseDefense = 70, - .baseSpeed = 105, - .baseSpAttack = 70, - .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, - .catchRate = 45, - .expYield = 245, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#endif //P_FAMILY_PAWMI - -#if P_FAMILY_TANDEMAUS - [SPECIES_TANDEMAUS] = - { - .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 = 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, - }, - -#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, \ - } - - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = MAUSHOLD_SPECIES_INFO, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = MAUSHOLD_SPECIES_INFO, -#endif //P_FAMILY_TANDEMAUS - -#if P_FAMILY_FIDOUGH - [SPECIES_FIDOUGH] = - { - .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, - }, - - [SPECIES_DACHSBUN] = - { - .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, - }, -#endif //P_FAMILY_FIDOUGH - -#if P_FAMILY_SMOLIV - [SPECIES_SMOLIV] = - { - .baseHP = 41, - .baseAttack = 35, - .baseDefense = 45, - .baseSpeed = 30, - .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_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_DOLLIV] = - { - .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, - }, - - [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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SEED_SOWER, ABILITY_NONE, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#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 - - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = - { - SQUAWKABILLY_MISC_INFO, - .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS}, - .bodyColor = BODY_COLOR_GREEN, - }, - - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = - { - SQUAWKABILLY_MISC_INFO, - .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS}, - .bodyColor = BODY_COLOR_BLUE, - }, - - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = - { - SQUAWKABILLY_MISC_INFO, - .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_YELLOW, - }, - - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = - { - SQUAWKABILLY_MISC_INFO, - .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_WHITE, - }, -#endif //P_FAMILY_SQUAWKABILLY - -#if P_FAMILY_NACLI - [SPECIES_NACLI] = - { - .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 = 20, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, - - [SPECIES_NACLSTACK] = - { - .baseHP = 60, - .baseAttack = 60, - .baseDefense = 100, - .baseSpeed = 35, - .baseSpAttack = 35, - .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK }, - .catchRate = 120, - .expYield = 124, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, - - [SPECIES_GARGANACL] = - { - .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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_NACLI - -#if P_FAMILY_CHARCADET - [SPECIES_CHARCADET] = - { - .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, - }, - - [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, - }, - - [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, - }, -#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 = 54, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_STATIC, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_BELLIBOLT] = - { - .baseHP = 109, - .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_WATER_1}, - .abilities = {ABILITY_ELECTROMORPHOSIS, ABILITY_STATIC, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#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, - }, - - [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, - }, -#endif //P_FAMILY_WATTREL - -#if P_FAMILY_MASCHIFF - [SPECIES_MASCHIFF] = - { - .baseHP = 60, - .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_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_STAKEOUT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MABOSSTIFF] = - { - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 90, - .baseSpeed = 85, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_DARK }, - .catchRate = 75, - .expYield = 177, - .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_INTIMIDATE, ABILITY_GUARD_DOG, ABILITY_STAKEOUT}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_MASCHIFF - -#if P_FAMILY_SHROODLE - [SPECIES_SHROODLE] = - { - .baseHP = 40, - .baseAttack = 65, - .baseDefense = 35, - .baseSpeed = 75, - .baseSpAttack = 40, - .baseSpDefense = 35, - .types = { TYPE_POISON, TYPE_NORMAL }, - .catchRate = 190, - .expYield = 58, - .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_UNBURDEN, ABILITY_PICKPOCKET, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_GRAFAIAI] = - { - .baseHP = 63, - .baseAttack = 95, - .baseDefense = 65, - .baseSpeed = 110, - .baseSpAttack = 80, - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_UNBURDEN, ABILITY_POISON_TOUCH, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_SHROODLE - -#if P_FAMILY_BRAMBLIN - [SPECIES_BRAMBLIN] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_BRAMBLEGHAST] = - { - .baseHP = 55, - .baseAttack = 115, - .baseDefense = 70, - .baseSpeed = 90, - .baseSpAttack = 80, - .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_GHOST }, - .catchRate = 45, - .expYield = 168, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#endif //P_FAMILY_BRAMBLIN - -#if P_FAMILY_TOEDSCOOL - [SPECIES_TOEDSCOOL] = - { - .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 = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_MYCELIUM_MIGHT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_TOEDSCRUEL] = - { - .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_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_MYCELIUM_MIGHT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_TOEDSCOOL - -#if P_FAMILY_KLAWF - [SPECIES_KLAWF] = - { - .baseHP = 70, - .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_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_ANGER_SHELL, ABILITY_SHELL_ARMOR, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, -#endif //P_FAMILY_KLAWF - -#if P_FAMILY_CAPSAKID - [SPECIES_CAPSAKID] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_KLUTZ}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_SCOVILLAIN] = - { - .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_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_MOODY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CAPSAKID - -#if P_FAMILY_RELLOR - [SPECIES_RELLOR] = - { - .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 = 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, - }, - - [SPECIES_RABSCA] = - { - .baseHP = 75, - .baseAttack = 50, - .baseDefense = 85, - .baseSpeed = 45, - .baseSpAttack = 115, - .baseSpDefense = 100, - .types = { TYPE_BUG, TYPE_PSYCHIC }, - .catchRate = 45, - .expYield = 165, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .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, - }, -#endif //P_FAMILY_RELLOR - -#if P_FAMILY_FLITTLE - [SPECIES_FLITTLE] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_ANTICIPATION, ABILITY_FRISK, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_ESPATHRA] = - { - .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_OPPORTUNIST, ABILITY_FRISK, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, -#endif //P_FAMILY_FLITTLE - -#if P_FAMILY_TINKATINK - [SPECIES_TINKATINK] = - { - .baseHP = 50, - .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, - }, - - [SPECIES_TINKATUFF] = - { - .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 = 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, - }, - - [SPECIES_TINKATON] = - { - .baseHP = 85, - .baseAttack = 75, - .baseDefense = 77, - .baseSpeed = 94, - .baseSpAttack = 70, - .baseSpDefense = 105, - .types = { TYPE_FAIRY, TYPE_STEEL }, - .catchRate = 45, - .expYield = 253, - .evYield_SpDefense = 3, - .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, - }, -#endif //P_FAMILY_TINKATINK - -#if P_FAMILY_WIGLETT - [SPECIES_WIGLETT] = - { - .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, - }, - - [SPECIES_WUGTRIO] = - { - .baseHP = 35, - .baseAttack = 100, - .baseDefense = 50, - .baseSpeed = 120, - .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, - }, -#endif //P_FAMILY_WIGLETT - -#if P_FAMILY_BOMBIRDIER - [SPECIES_BOMBIRDIER] = - { - .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_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_KEEN_EYE, ABILITY_ROCKY_PAYLOAD}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_BOMBIRDIER - -#if P_FAMILY_FINIZEN - [SPECIES_FINIZEN] = - { - .baseHP = 70, - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_WATER_VEIL, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - -#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 - - [SPECIES_PALAFIN_ZERO] = - { - PALAFIN_MISC_INFO, - .baseHP = 100, - .baseAttack = 70, - .baseDefense = 72, - .baseSpeed = 100, - .baseSpAttack = 53, - .baseSpDefense = 62, - .expYield = 160, - }, - - [SPECIES_PALAFIN_HERO] = - { - PALAFIN_MISC_INFO, - .baseHP = 100, - .baseAttack = 160, - .baseDefense = 97, - .baseSpeed = 100, - .baseSpAttack = 106, - .baseSpDefense = 87, - .expYield = 228, - }, -#endif //P_FAMILY_FINIZEN - -#if P_FAMILY_VAROOM - [SPECIES_VAROOM] = - { - .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 = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_SLOW_START}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_REVAVROOM] = - { - .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_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_FILTER}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, -#endif //P_FAMILY_VAROOM - -#if P_FAMILY_CYCLIZAR - [SPECIES_CYCLIZAR] = - { - .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 = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, -#endif //P_FAMILY_CYCLIZAR - -#if P_FAMILY_ORTHWORM - [SPECIES_ORTHWORM] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_EARTH_EATER, ABILITY_NONE, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#endif //P_FAMILY_ORTHWORM - -#if P_FAMILY_GLIMMET - [SPECIES_GLIMMET] = - { - .baseHP = 48, - .baseAttack = 35, - .baseDefense = 42, - .baseSpeed = 60, - .baseSpAttack = 105, - .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, - }, - - [SPECIES_GLIMMORA] = - { - .baseHP = 83, - .baseAttack = 55, - .baseDefense = 90, - .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_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_GLIMMET - -#if P_FAMILY_GREAVARD - [SPECIES_GREAVARD] = - { - .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_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_NONE, ABILITY_FLUFFY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_HOUNDSTONE] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_RUSH, ABILITY_NONE, ABILITY_FLUFFY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, -#endif //P_FAMILY_GREAVARD - -#if P_FAMILY_FLAMIGO - [SPECIES_FLAMIGO] = - { - .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_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_SCRAPPY, ABILITY_TANGLED_FEET, ABILITY_COSTAR}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, -#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_THICK_FAT, ABILITY_SNOW_CLOAK, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_CETITAN] = - { - .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, - }, -#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, + .evYield_Defense = 1, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#endif //P_FAMILY_VELUZA - -#if P_FAMILY_DONDOZO - [SPECIES_DONDOZO] = - { - .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, - }, -#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 - - [SPECIES_TATSUGIRI_CURLY] = - { - TATSUGIRI_MISC_INFO, - .bodyColor = BODY_COLOR_PINK, - }, - - [SPECIES_TATSUGIRI_DROOPY] = - { - TATSUGIRI_MISC_INFO, - .bodyColor = BODY_COLOR_RED, - }, - - [SPECIES_TATSUGIRI_STRETCHY] = - { - TATSUGIRI_MISC_INFO, - .bodyColor = BODY_COLOR_YELLOW, - }, -#endif //P_FAMILY_TATSUGIRI - -#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, - .flags = SPECIES_FLAG_PARADOX, - }, -#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, - .flags = SPECIES_FLAG_PARADOX, - }, -#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, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_BRUTE_BONNET - -#if P_FAMILY_FLUTTER_MANE - [SPECIES_FLUTTER_MANE] = - { - .baseHP = 55, - .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, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_FLUTTER_MANE - -#if P_FAMILY_SLITHER_WING - [SPECIES_SLITHER_WING] = - { - .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, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_SLITHER_WING - -#if P_FAMILY_SANDY_SHOCKS - [SPECIES_SANDY_SHOCKS] = - { - .baseHP = 85, - .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, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_SANDY_SHOCKS - -#if P_FAMILY_IRON_TREADS - [SPECIES_IRON_TREADS] = - { - .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 = 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, - .flags = SPECIES_FLAG_PARADOX, - }, -#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, - .flags = SPECIES_FLAG_PARADOX, - }, -#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, - .flags = SPECIES_FLAG_PARADOX, - }, -#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, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_IRON_JUGULIS - -#if P_FAMILY_IRON_MOTH - [SPECIES_IRON_MOTH] = - { - .baseHP = 80, - .baseAttack = 70, - .baseDefense = 60, - .baseSpeed = 110, - .baseSpAttack = 140, - .baseSpDefense = 110, - .types = { TYPE_FIRE, TYPE_POISON }, - .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_YELLOW, - .noFlip = FALSE, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_IRON_MOTH - -#if P_FAMILY_IRON_THORNS - [SPECIES_IRON_THORNS] = - { - .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, - .flags = SPECIES_FLAG_PARADOX, - }, -#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 = 40, - .friendship = STANDARD_FRIENDSHIP, - .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_ARCTIBAX] = - { - .baseHP = 90, - .baseAttack = 95, - .baseDefense = 66, - .baseSpeed = 62, - .baseSpAttack = 45, - .baseSpDefense = 65, - .types = { TYPE_DRAGON, TYPE_ICE }, - .catchRate = 25, - .expYield = 148, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, - .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_BAXCALIBUR] = - { - .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 = 40, - .friendship = STANDARD_FRIENDSHIP, - .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, - }, -#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 - - [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, - }, - - [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, - }, - - [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, - }, -#endif //P_FAMILY_GIMMIGHOUL - -#if P_FAMILY_WO_CHIEN - [SPECIES_WO_CHIEN] = - { - .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 = 50, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TABLETS_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_WO_CHIEN - -#if P_FAMILY_CHIEN_PAO - [SPECIES_CHIEN_PAO] = - { - .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 = 50, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SWORD_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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 = 50, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VESSEL_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_TING_LU - -#if P_FAMILY_CHI_YU - [SPECIES_CHI_YU] = - { - .baseHP = 55, - .baseAttack = 80, - .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_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEADS_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_CHI_YU - -#if P_FAMILY_ROARING_MOON - [SPECIES_ROARING_MOON] = - { - .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, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_ROARING_MOON - -#if P_FAMILY_IRON_VALIANT - [SPECIES_IRON_VALIANT] = - { - .baseHP = 74, - .baseAttack = 130, - .baseDefense = 90, - .baseSpeed = 116, - .baseSpAttack = 120, - .baseSpDefense = 60, - .types = { TYPE_FAIRY, TYPE_FIGHTING }, - .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_QUARK_DRIVE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_IRON_VALIANT - -#if P_FAMILY_KORAIDON - [SPECIES_KORAIDON] = - { - .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 = 50, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_ORICHALCUM_PULSE, ABILITY_NONE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_KORAIDON - -#if P_FAMILY_MIRAIDON - [SPECIES_MIRAIDON] = - { - .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, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_MIRAIDON - -#if P_FAMILY_WALKING_WAKE - [SPECIES_WALKING_WAKE] = - { - .baseHP = 99, - .baseAttack = 83, - .baseDefense = 91, - .baseSpeed = 109, - .baseSpAttack = 125, - .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, - .flags = SPECIES_FLAG_PARADOX, - }, -#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 = 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, - .flags = SPECIES_FLAG_PARADOX, - }, -#endif //P_FAMILY_IRON_LEAVES - -#if P_FAMILY_POLTCHAGEIST -#define POLTCHAGEIST_SPECIES_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, \ - } - - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = POLTCHAGEIST_SPECIES_INFO, - [SPECIES_POLTCHAGEIST_ARTISAN] = POLTCHAGEIST_SPECIES_INFO, - -#define SINISTCHA_SPECIES_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, \ - } - - [SPECIES_SINISTCHA_UNREMARKABLE] = SINISTCHA_SPECIES_INFO, - [SPECIES_SINISTCHA_MASTERPIECE] = SINISTCHA_SPECIES_INFO, -#endif //P_FAMILY_POLTCHAGEIST - -#if P_FAMILY_OKIDOGI - [SPECIES_OKIDOGI] = - { - .baseHP = 88, - .baseAttack = 128, - .baseDefense = 115, - .baseSpeed = 80, - .baseSpAttack = 58, - .baseSpDefense = 86, - .types = { TYPE_POISON, TYPE_FIGHTING }, - .catchRate = 3, - .expYield = 278, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_GUARD_DOG}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_NONE, ABILITY_CURSED_BODY, ABILITY_DAMP }, .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .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, 64, 64), + //FRONT_PIC_FEMALE(CircledQuestionMark, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_None, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 0, + BACK_PIC(CircledQuestionMark, 64, 64), + //BACK_PIC_FEMALE(CircledQuestionMark, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_NONE, + PALETTES(CircledQuestionMark), + //PALETTE_FEMALE(CircledQuestionMark), + ICON(QuestionMark, 0), + //ICON_FEMALE(QuestionMark, 1), + //.footprint = gMonFootprint_None, + LEARNSETS(None), + .evolutions = EVOLUTION({EVO_LEVEL, 100, SPECIES_NONE}, + {EVO_ITEM, ITEM_MOOMOO_MILK, SPECIES_NONE}), + //.formSpeciesIdTable = sNoneFormSpeciesIdTable, + //.formChangeTable = sNoneFormChangeTable, + .allPerfectIVs = TRUE, }, -#endif //P_FAMILY_OKIDOGI - -#if P_FAMILY_MUNKIDORI - [SPECIES_MUNKIDORI] = - { - .baseHP = 88, - .baseAttack = 75, - .baseDefense = 66, - .baseSpeed = 106, - .baseSpAttack = 130, - .baseSpDefense = 90, - .types = { TYPE_POISON, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 278, - .evYield_SpAttack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif //P_FAMILY_MUNKIDORI - -#if P_FAMILY_FEZANDIPITI - [SPECIES_FEZANDIPITI] = - { - .baseHP = 88, - .baseAttack = 91, - .baseDefense = 82, - .baseSpeed = 99, - .baseSpAttack = 70, - .baseSpDefense = 125, - .types = { TYPE_POISON, TYPE_FAIRY }, - .catchRate = 3, - .expYield = 278, - .evYield_SpDefense = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#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, \ - .flags = SPECIES_FLAG_LEGENDARY, \ - } - - [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/species_info/gen_1.h b/src/data/pokemon/species_info/gen_1.h new file mode 100644 index 0000000000..b502422c0b --- /dev/null +++ b/src/data/pokemon/species_info/gen_1.h @@ -0,0 +1,12233 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen1[] = +{ +#endif + +#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, + .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, + PALETTES(Bulbasaur), + ICON(Bulbasaur, 4), + .footprint = gMonFootprint_Bulbasaur, + LEARNSETS(Bulbasaur), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_IVYSAUR}), + }, + + [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, + .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, + PALETTES(Ivysaur), + ICON(Ivysaur, 4), + .footprint = gMonFootprint_Ivysaur, + LEARNSETS(Ivysaur), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_VENUSAUR}), + }, + +#define VENUSAUR_MISC_INFO \ + .types = { TYPE_GRASS, TYPE_POISON }, \ + .catchRate = 45, \ + .evYield_SpAttack = 2, \ + .evYield_SpDefense = 1, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, \ + .bodyColor = BODY_COLOR_GREEN, \ + .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, + PALETTES(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, + PALETTES(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, + PALETTES(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, + .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, + PALETTES(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, + .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, + PALETTES(Charmeleon), + ICON(Charmeleon, 0), + .footprint = gMonFootprint_Charmeleon, + LEARNSETS(Charmeleon), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHARIZARD}), + }, + +#define CHARIZARD_MISC_INFO \ + .catchRate = 45, \ + .evYield_SpAttack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON }, \ + .speciesName = _("Charizard"), \ + .natDexNum = NATIONAL_DEX_CHARIZARD, \ + .categoryName = _("Flame"), \ + .footprint = gMonFootprint_Charizard, \ + LEARNSETS(Charizard), \ + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, \ + .formChangeTable = sCharizardFormChangeTable + + [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, + PALETTES(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, + PALETTES(CharizardMegaX), + ICON(CharizardMegaX, 0), + .isMegaEvolution = TRUE, + }, + + [SPECIES_CHARIZARD_MEGA_Y] = + { + CHARIZARD_MISC_INFO, + .baseHP = 78, + .baseAttack = 104, + .baseDefense = 78, + .baseSpeed = 100, + .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, + PALETTES(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_FLYING }, + .expYield = 240, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER }, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_CHARIZARD, + .height = 280, + .weight = 0, + .description = COMPOUND_STRING( + "The flame inside its body burns\n" + "hotter than 3,600 degrees Fahrenheit.\n" + "When Charizard roars, that\n" + "temperature climbs even higher."), + .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, + PALETTES(CharizardGigantamax), + ICON(CharizardGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE + [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, + .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, + PALETTES(Squirtle), + ICON(Squirtle, 0), + .footprint = gMonFootprint_Squirtle, + LEARNSETS(Squirtle), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_WARTORTLE}), + }, + + [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, + .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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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( + "It's not very good at precision\n" + "shooting. When attacking, it just fires\n" + "its 31 cannons over and over and\n" + "over."), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(BlastoiseGigantamax, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_BlastoiseGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(BlastoiseGigantamax, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, + .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, + PALETTES(Caterpie), + ICON(Caterpie, 1), + .footprint = gMonFootprint_Caterpie, + LEARNSETS(Caterpie), + .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_METAPOD}), + }, + + [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, + .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, + PALETTES(Metapod), + ICON(Metapod, 1), + .footprint = gMonFootprint_Metapod, + LEARNSETS(Metapod), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BUTTERFREE}), + }, + +#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, \ + .speciesName = _("Butterfree"), \ + .cryId = CRY_BUTTERFREE, \ + .natDexNum = NATIONAL_DEX_BUTTERFREE, \ + .categoryName = _("Butterfly"), \ + .footprint = gMonFootprint_Butterfree, \ + LEARNSETS(Butterfree), \ + .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, \ + .formChangeTable = sButterfreeFormChangeTable + + [SPECIES_BUTTERFREE] = + { + 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_V_SLIDE_WOBBLE, + .enemyMonElevation = 12, + BACK_PIC(Butterfree, 64, 56), + BACK_PIC_FEMALE(Butterfree, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(Butterfree), + ICON(Butterfree, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_BUTTERFREE_GIGANTAMAX] = + { + BUTTERFREE_MISC_INFO, + .height = 170, + .weight = 0, + .description = COMPOUND_STRING( + "Once it has opponents trapped in a\n" + "tornado that could blow away a 10-\n" + "ton truck, it finishes them off with\n" + "its poisonous scales."), + .pokemonScale = 312, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ButterfreeGigantamax, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_ButterfreeGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 7, + BACK_PIC(ButterfreeGigantamax, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 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, + .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, + PALETTES(Weedle), + ICON(Weedle, 2), + .footprint = gMonFootprint_Weedle, + LEARNSETS(Weedle), + .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_KAKUNA}), + }, + + [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, + .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, + PALETTES(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, \ + .speciesName = _("Beedrill"), \ + .natDexNum = NATIONAL_DEX_BEEDRILL, \ + .categoryName = _("Poison Bee"), \ + .footprint = gMonFootprint_Beedrill, \ + LEARNSETS(Beedrill), \ + .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, \ + .formChangeTable = sBeedrillFormChangeTable + + [SPECIES_BEEDRILL] = + { + 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, + PALETTES(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, + PALETTES(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 = 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, + .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, + PALETTES(Pidgey), + ICON(Pidgey, 0), + .footprint = gMonFootprint_Pidgey, + LEARNSETS(Pidgey), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PIDGEOTTO}), + }, + + [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, + .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, + PALETTES(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, \ + .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_GROW_VIBRATE, + .enemyMonElevation = 5, + BACK_PIC(Pidgeot, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(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, + PALETTES(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 } + +#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, + PALETTES(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, + PALETTES(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, + PALETTES(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, + PALETTES(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 = 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, + .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, + PALETTES(Spearow), + ICON(Spearow, 0), + .footprint = gMonFootprint_Spearow, + LEARNSETS(Spearow), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_FEAROW}), + }, + + [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, + .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, + PALETTES(Fearow), + ICON(Fearow, 0), + .footprint = gMonFootprint_Fearow, + LEARNSETS(Fearow), + }, +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS + [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, + .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, + PALETTES(Ekans), + ICON(Ekans, 2), + .footprint = gMonFootprint_Ekans, + LEARNSETS(Ekans), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARBOK}), + }, + + [SPECIES_ARBOK] = + { + .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 = 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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .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, + 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, + PALETTES(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 = 13, + .frontAnimFrames = sAnims_PichuSpikyEared, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PichuSpikyEared, 48, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 + +#define PIKACHU_REGULAR_SIZE_INFO \ + .height = 4, \ + .weight = 60, \ + .pokemonScale = 479, \ + .pokemonOffset = 19, \ + .trainerScale = 256, \ + .trainerOffset = 0 + + [SPECIES_PIKACHU] = + { + PIKACHU_MISC_INFO, + PIKACHU_REGULAR_SIZE_INFO, + .genderRatio = PERCENT_FEMALE(50), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .description = gPikachuPokedexText + + [SPECIES_PIKACHU_COSPLAY] = + { + PIKACHU_COSPLAY_MISC_INFO, + 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, + PALETTES(PikachuCosplay), + ICON(PikachuCosplay, 2), + }, + + [SPECIES_PIKACHU_ROCK_STAR] = + { + PIKACHU_COSPLAY_MISC_INFO, + 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, + PALETTES(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, + PALETTES(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, + PALETTES(PikachuPopStar), + ICON(PikachuPopStar, 0), + }, + + [SPECIES_PIKACHU_PH_D] = + { + PIKACHU_COSPLAY_MISC_INFO, + 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, + PALETTES(PikachuPhD), + ICON(PikachuPhD, 1), + }, + + [SPECIES_PIKACHU_LIBRE] = + { + PIKACHU_COSPLAY_MISC_INFO, + 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, + PALETTES(PikachuLibre), + ICON(PikachuLibre, 0), + }, + +#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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED } + + [SPECIES_PIKACHU_ORIGINAL_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 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, + PALETTES(PikachuOriginalCap), + ICON(PikachuOriginalCap, 0), + }, + + [SPECIES_PIKACHU_HOENN_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .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, + PALETTES(PikachuHoennCap), + ICON(PikachuHoennCap, 0), + }, + + [SPECIES_PIKACHU_SINNOH_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .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, + PALETTES(PikachuSinnohCap), + ICON(PikachuSinnohCap, 0), + }, + + [SPECIES_PIKACHU_UNOVA_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .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, + PALETTES(PikachuUnovaCap), + ICON(PikachuUnovaCap, 0), + }, + + [SPECIES_PIKACHU_KALOS_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .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, + PALETTES(PikachuKalosCap), + ICON(PikachuKalosCap, 0), + }, + + [SPECIES_PIKACHU_ALOLA_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .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, + PALETTES(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, + PALETTES(PikachuPartnerCap), + ICON(PikachuPartnerCap, 0), + }, + + [SPECIES_PIKACHU_WORLD_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .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, + PALETTES(PikachuWorldCap), + ICON(PikachuWorldCap, 0), + }, + +#endif //P_CAP_PIKACHU_FORMS + +#if P_GIGANTAMAX_FORMS + [SPECIES_PIKACHU_GIGANTAMAX] = + { + PIKACHU_MISC_INFO, + .genderRatio = PERCENT_FEMALE(50), + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .height = 210, + .weight = 0, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .description = COMPOUND_STRING( + "When it smashes its opponents with\n" + "its bolt-shaped tail, it delivers a\n" + "surge of electricity equivalent to a\n" + "lightning strike."), + FRONT_PIC(PikachuGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_PikachuGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuGigantamax, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 }, \ + .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, + PALETTES(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, + PALETTES(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 } + +#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, + PALETTES(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, + PALETTES(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, + .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, + PALETTES(SandshrewAlolan), + ICON(SandshrewAlolan, 0), + LEARNSETS(SandshrewAlolan), + .isAlolanForm = TRUE, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}), + }, + + [SPECIES_SANDSLASH_ALOLAN] = + { + 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, + PALETTES(SandslashAlolan), + ICON(SandslashAlolan, 0), + LEARNSETS(SandslashAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN + [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, + .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, + PALETTES(NidoranF), + ICON(NidoranF, 0), + .footprint = gMonFootprint_NidoranF, + LEARNSETS(NidoranF), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINA}), + }, + + [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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Nidorina), + ICON(Nidorina, 0), + .footprint = gMonFootprint_Nidorina, + LEARNSETS(Nidorina), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}), + }, + + [SPECIES_NIDOQUEEN] = + { + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Nidoqueen), + ICON(Nidoqueen, 2), + .footprint = gMonFootprint_Nidoqueen, + LEARNSETS(Nidoqueen), + }, + + [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, + .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, + PALETTES(NidoranM), + ICON(NidoranM, 2), + .footprint = gMonFootprint_NidoranM, + LEARNSETS(NidoranM), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINO}), + }, + + [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, + .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, + PALETTES(Nidorino), + ICON(Nidorino, 2), + .footprint = gMonFootprint_Nidorino, + LEARNSETS(Nidorino), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}), + }, + + [SPECIES_NIDOKING] = + { + .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_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_PURPLE, + .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 = 3, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(Cleffa), + ICON(Cleffa, 0), + .footprint = gMonFootprint_Cleffa, + LEARNSETS(Cleffa), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}), + }, +#endif //P_GEN_2_CROSS_EVOS + + [SPECIES_CLEFAIRY] = + { + .baseHP = 70, + .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 = 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, + PALETTES(Clefairy), + ICON(Clefairy, 0), + .footprint = gMonFootprint_Clefairy, + LEARNSETS(Clefairy), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}), + }, + + [SPECIES_CLEFABLE] = + { + .baseHP = 95, + .baseAttack = 70, + .baseDefense = 73, + .baseSpeed = 60, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 95 : 85, + .baseSpDefense = 90, + .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, + PALETTES(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 } + +#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, + PALETTES(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, + .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, + PALETTES(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, + PALETTES(VulpixAlolan), + ICON(VulpixAlolan, 2), + LEARNSETS(VulpixAlolan), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}), + .isAlolanForm = TRUE, + }, + + [SPECIES_NINETALES_ALOLAN] = + { + NINETALES_MISC_INFO, + .baseHP = 73, + .baseAttack = 67, + .baseDefense = 75, + .baseSpeed = 109, + .baseSpAttack = 81, + .baseSpDefense = 100, + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(Igglybuff), + ICON(Igglybuff, 1), + .footprint = gMonFootprint_Igglybuff, + LEARNSETS(Igglybuff), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}), + }, +#endif //P_GEN_2_CROSS_EVOS + + [SPECIES_JIGGLYPUFF] = + { + .baseHP = 115, + .baseAttack = 45, + .baseDefense = 20, + .baseSpeed = 20, + .baseSpAttack = 45, + .baseSpDefense = 25, + .types = JIGGLYPUFF_FAMILY_TYPES, + .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, + .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, + PALETTES(Jigglypuff), + ICON(Jigglypuff, 0), + .footprint = gMonFootprint_Jigglypuff, + LEARNSETS(Jigglypuff), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}), + }, + + [SPECIES_WIGGLYTUFF] = + { + .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, + .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, + .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, + PALETTES(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, + .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, + PALETTES(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, + .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, + PALETTES(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 = 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 = 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, + .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, + PALETTES(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 = 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, + .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, + PALETTES(Oddish), + ICON(Oddish, 4), + .footprint = gMonFootprint_Oddish, + LEARNSETS(Oddish), + .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_GLOOM}), + }, + + [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, + .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, + PALETTES(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_VILEPLUME] = + { + .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_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EFFECT_SPORE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Vileplume), + ICON(Vileplume, 0), + .footprint = gMonFootprint_Vileplume, + LEARNSETS(Vileplume), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_BELLOSSOM] = + { + .baseHP = 75, + .baseAttack = 80, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 95 : 85, + .baseSpeed = 50, + .baseSpAttack = 90, + .baseSpDefense = 100, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .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_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HEALER }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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 = 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, + .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, + PALETTES(Paras), + ICON(Paras, 0), + .footprint = gMonFootprint_Paras, + LEARNSETS(Paras), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_PARASECT}), + }, + + [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, + .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, + PALETTES(Parasect), + ICON(Parasect, 0), + .footprint = gMonFootprint_Parasect, + LEARNSETS(Parasect), + }, +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT + [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, + .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, + PALETTES(Venonat), + ICON(Venonat, 2), + .footprint = gMonFootprint_Venonat, + LEARNSETS(Venonat), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_VENOMOTH}), + }, + + [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, + .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, + PALETTES(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, \ + .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, + PALETTES(Diglett), + ICON(Diglett, 2), + LEARNSETS(Diglett), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO}), + }, + + [SPECIES_DUGTRIO] = + { + 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 }, + .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, + PALETTES(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, + PALETTES(DiglettAlolan), + ICON(DiglettAlolan, 2), + LEARNSETS(DiglettAlolan), + .isAlolanForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO_ALOLAN}), + }, + + [SPECIES_DUGTRIO_ALOLAN] = + { + 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, + PALETTES(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 }, \ + .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 }, \ + .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, + PALETTES(Meowth), + ICON(Meowth, 1), + LEARNSETS(Meowth), + .formChangeTable = sMeowthFormChangeTable, + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERSIAN}), + }, + + [SPECIES_PERSIAN] = + { + PERSIAN_MISC_INFO, + .baseHP = 65, + .baseAttack = 70, + .baseDefense = 60, + .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, + PALETTES(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, + PALETTES(MeowthAlolan), + ICON(MeowthAlolan, 2), + LEARNSETS(MeowthAlolan), + .isAlolanForm = TRUE, + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PERSIAN_ALOLAN}), + }, + + [SPECIES_PERSIAN_ALOLAN] = + { + 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, + PALETTES(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 = 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, + PALETTES(MeowthGalarian), + ICON(MeowthGalarian, 0), + LEARNSETS(MeowthGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERRSERKER}), + }, + + [SPECIES_PERRSERKER] = + { + .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 = 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, + .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, + PALETTES(Perrserker), + ICON(Perrserker, 2), + .footprint = gMonFootprint_Perrserker, + LEARNSETS(Perrserker), + }, +#endif //P_GALARIAN_FORMS + +#if P_GIGANTAMAX_FORMS + [SPECIES_MEOWTH_GIGANTAMAX] = + { + 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( + "The pattern that has appeared on\n" + "its giant coin is thought to be the\n" + "key to unlocking the secrets of the\n" + "Dynamax phenomenon."), + .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, + PALETTES(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_WATER_1, EGG_GROUP_FIELD }, + .abilities = { ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Psyduck), + ICON(Psyduck, 1), + .footprint = gMonFootprint_Psyduck, + LEARNSETS(Psyduck), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_GOLDUCK}), + }, + + [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, + .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, + PALETTES(Golduck), + ICON(Golduck, 0), + .footprint = gMonFootprint_Golduck, + LEARNSETS(Golduck), + }, +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY + [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, + .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, + PALETTES(Mankey), + ICON(Mankey, 1), + .footprint = gMonFootprint_Mankey, + LEARNSETS(Mankey), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PRIMEAPE}), + }, + + [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, + .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, + PALETTES(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 = 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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_INNER_FOCUS, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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 + +#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, + PALETTES(Growlithe), + ICON(Growlithe, 3), + LEARNSETS(Growlithe), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}), + }, + + [SPECIES_ARCANINE] = + { + 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, + PALETTES(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 = 11, + .frontAnimFrames = sAnims_GrowlitheHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GrowlitheHisuian, 56, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 0, + .frontAnimFrames = sAnims_ArcanineHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ArcanineHisuian, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_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, + PALETTES(Poliwag), + ICON(Poliwag, 0), + .footprint = gMonFootprint_Poliwag, + LEARNSETS(Poliwag), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_POLIWHIRL}), + }, + + [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, + .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, + PALETTES(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, + PALETTES(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_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, + PALETTES(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 = 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, + .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, + PALETTES(Abra), + ICON(Abra, 2), + .footprint = gMonFootprint_Abra, + LEARNSETS(Abra), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_KADABRA}), + }, + + [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, + .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, + PALETTES(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, \ + .speciesName = _("Alakazam"), \ + .natDexNum = NATIONAL_DEX_ALAKAZAM, \ + .categoryName = _("Psi"), \ + .footprint = gMonFootprint_Alakazam, \ + LEARNSETS(Alakazam), \ + .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, \ + .formChangeTable = sAlakazamFormChangeTable + + [SPECIES_ALAKAZAM] = + { + 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, + PALETTES(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, + PALETTES(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 = 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, + .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, + PALETTES(Machop), + ICON(Machop, 0), + .footprint = gMonFootprint_Machop, + LEARNSETS(Machop), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_MACHOKE}), + }, + + [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, + .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, + PALETTES(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, \ + .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, + PALETTES(Machamp), + ICON(Machamp, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_MACHAMP_GIGANTAMAX] = + { + MACHAMP_MISC_INFO, + .height = 250, + .weight = 0, + .description = COMPOUND_STRING( + "One of these Pokémon once used\n" + "its immeasurable strength to lift a\n" + "large ship that was in trouble. It\n" + "then carried the ship to port."), + .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, + PALETTES(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, + .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, + PALETTES(Bellsprout), + ICON(Bellsprout, 1), + .footprint = gMonFootprint_Bellsprout, + LEARNSETS(Bellsprout), + .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_WEEPINBELL}), + }, + + [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, + .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, + PALETTES(Weepinbell), + ICON(Weepinbell, 1), + .footprint = gMonFootprint_Weepinbell, + LEARNSETS(Weepinbell), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}), + }, + + [SPECIES_VICTREEBEL] = + { + .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 = 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, + .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, + PALETTES(Victreebel), + ICON(Victreebel, 1), + .footprint = gMonFootprint_Victreebel, + LEARNSETS(Victreebel), + }, +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL + [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, + .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, + PALETTES(Tentacool), + ICON(Tentacool, 0), + .footprint = gMonFootprint_Tentacool, + LEARNSETS(Tentacool), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TENTACRUEL}), + }, + + [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, + .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_SLIDE_WOBBLE, + BACK_PIC(Tentacruel, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTES(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 + +#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, + PALETTES(Geodude), + ICON(Geodude, 1), + LEARNSETS(Geodude), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER}), + }, + + [SPECIES_GRAVELER] = + { + 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, + PALETTES(Graveler), + ICON(Graveler, 1), + LEARNSETS(Graveler), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM}), + }, + + [SPECIES_GOLEM] = + { + 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, + PALETTES(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, + PALETTES(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, + PALETTES(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, + PALETTES(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 } + +#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, + PALETTES(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, + PALETTES(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, + PALETTES(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, + PALETTES(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, \ + .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, \ + .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, + PALETTES(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 }, + .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, + PALETTES(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, + PALETTES(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 }, + .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, + PALETTES(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, + PALETTES(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 }, + .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, + PALETTES(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, + PALETTES(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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Magnemite), + ICON(Magnemite, 0), + .footprint = gMonFootprint_Magnemite, + LEARNSETS(Magnemite), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGNETON}), + }, + + [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, + .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, + PALETTES(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 = 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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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, \ + .speciesName = _("Farfetch'd"), \ + .cryId = CRY_FARFETCHD, \ + .natDexNum = NATIONAL_DEX_FARFETCHD, \ + .categoryName = _("Wild Duck"), \ + .footprint = gMonFootprint_Farfetchd, \ + .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable + + [SPECIES_FARFETCHD] = + { + 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, + PALETTES(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, + PALETTES(FarfetchdGalarian), + ICON(FarfetchdGalarian, 1), + LEARNSETS(FarfetchdGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_CRITICAL_HITS, 3, SPECIES_SIRFETCHD}), + }, + + [SPECIES_SIRFETCHD] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD }, + .abilities = { ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Sirfetchd), + ICON(Sirfetchd, 1), + .footprint = gMonFootprint_Sirfetchd, + LEARNSETS(Sirfetchd), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO + [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, + .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, + PALETTES(Doduo), + ICON(Doduo, 2), + .footprint = gMonFootprint_Doduo, + LEARNSETS(Doduo), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_DODRIO}), + }, + + [SPECIES_DODRIO] = + { + .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_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Dodrio), + ICON(Dodrio, 2), + .footprint = gMonFootprint_Dodrio, + LEARNSETS(Dodrio), + }, +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL + [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, + .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_SLIDE_SLOW, + BACK_PIC(Seel, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTES(Seel), + ICON(Seel, 0), + .footprint = gMonFootprint_Seel, + LEARNSETS(Seel), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_DEWGONG}), + }, + + [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, + .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, + PALETTES(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, \ + .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, + PALETTES(Grimer), + ICON(Grimer, 2), + LEARNSETS(Grimer), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK}), + }, + + [SPECIES_MUK] = + { + KANTONIAN_GRIMER_FAMILY_INFO, + MUK_MISC_INFO, + .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_DEEP_V_SQUISH_AND_BOUNCE, + .frontAnimDelay = 45, + BACK_PIC(Muk, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTES(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, + PALETTES(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, + PALETTES(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 = 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, + .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, + PALETTES(Shellder), + ICON(Shellder, 2), + .footprint = gMonFootprint_Shellder, + LEARNSETS(Shellder), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}), + }, + + [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, + .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_V_SHAKE_TWICE, + BACK_PIC(Cloyster, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(Cloyster), + ICON(Cloyster, 2), + .footprint = gMonFootprint_Cloyster, + LEARNSETS(Cloyster), + }, +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY + [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, + .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_SHRINK_GROW, + .enemyMonElevation = 13, + BACK_PIC(Gastly, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTES(Gastly), + ICON(Gastly, 2), + .footprint = gMonFootprint_Gastly, + LEARNSETS(Gastly), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_HAUNTER}), + }, + + [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, + .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 = 14, + BACK_PIC(Haunter, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTES(Haunter), + ICON(Haunter, 2), + .footprint = gMonFootprint_Haunter, + LEARNSETS(Haunter), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GENGAR}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GENGAR}), + }, + +#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, \ + .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, + PALETTES(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, + PALETTES(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( + "Rumor has it that its gigantic\n" + "mouth leads not into its body, filled\n" + "with cursed energy, but instead\n" + "directly to the afterlife."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 302, + .trainerOffset = 2, + FRONT_PIC(GengarGigantamax, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_GengarGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GengarGigantamax, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, + .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, + PALETTES(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, \ + .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 = 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, + PALETTES(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, + .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, + PALETTES(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, + .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, + .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, + PALETTES(Drowzee), + ICON(Drowzee, 2), + .footprint = gMonFootprint_Drowzee, + LEARNSETS(Drowzee), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_HYPNO}), + }, + + [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, + .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_GROW_VIBRATE, + .frontAnimDelay = 40, + BACK_PIC(Hypno, 64, 56), + BACK_PIC_FEMALE(Hypno, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTES(Hypno), + ICON(Hypno, 2), + .footprint = gMonFootprint_Hypno, + LEARNSETS(Hypno), + }, +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY + [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, + .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_SLOW, + BACK_PIC(Krabby, 56, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTES(Krabby), + ICON(Krabby, 0), + .footprint = gMonFootprint_Krabby, + LEARNSETS(Krabby), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_KINGLER}), + }, + +#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] = + { + 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_V_SHAKE_TWICE, + .frontAnimDelay = 4, + BACK_PIC(Kingler, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTES(Kingler), + ICON(Kingler, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_KINGLER_GIGANTAMAX] = + { + KINGLER_MISC_INFO, + .height = 190, + .weight = 0, + .description = COMPOUND_STRING( + "The flow of Gigantamax energy has\n" + "spurred this Pokémon's left pincer\n" + "to grow to an enormous size. That\n" + "claw can pulverize anything."), + .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, + PALETTES(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 + +#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 = 15, + .frontAnimFrames = sAnims_Voltorb, + .frontAnimId = ANIM_SWING_CONCAVE, + BACK_PIC(Voltorb, 48, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTES(Voltorb), + ICON(Voltorb, 0), + LEARNSETS(Voltorb), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTRODE}), + }, + + [SPECIES_ELECTRODE] = + { + 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 = 11, + .frontAnimFrames = sAnims_Electrode, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, + BACK_PIC(Electrode, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTES(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 = 17, + .frontAnimFrames = sAnims_VoltorbHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(VoltorbHisuian, 48, 32), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 9, + .frontAnimFrames = sAnims_ElectrodeHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ElectrodeHisuian, 64, 40), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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, \ + .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_EXEGGUTOR] = + { + 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, + PALETTES(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 = 1, + .frontAnimFrames = sAnims_ExeggutorAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ExeggutorAlolan, 64, 56), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .abilities = { ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR }, + .bodyColor = BODY_COLOR_BROWN, + .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_SQUISH_AND_BOUNCE, + .frontAnimDelay = 30, + BACK_PIC(Cubone, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTES(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 }, \ + .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, + PALETTES(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, + PALETTES(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, + .baseAttack = 35, + .baseDefense = 35, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 75, + .expYield = 42, + .evYield_Attack = 1, + .genderRatio = MON_MALE, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_GUTS, ABILITY_STEADFAST, ABILITY_VITAL_SPIRIT }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(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, + .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 = 5, + .frontAnimFrames = sAnims_Hitmonlee, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Hitmonlee, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTES(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, + .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 = 4, + .frontAnimFrames = sAnims_Hitmonchan, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Hitmonchan, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(Hitmonchan), + ICON(Hitmonchan, 2), + .footprint = gMonFootprint_Hitmonchan, + LEARNSETS(Hitmonchan), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_HITMONTOP] = + { + .baseHP = 50, + .baseAttack = 95, + .baseDefense = 95, + .baseSpeed = 70, + .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_INTIMIDATE, ABILITY_TECHNICIAN, ABILITY_STEADFAST }, + .bodyColor = BODY_COLOR_BROWN, + .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_SWING_CONCAVE, + BACK_PIC(Hitmontop, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTES(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 = 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, + .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_STRETCH, + BACK_PIC(Lickitung, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTES(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 = 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_MONSTER, EGG_GROUP_MONSTER }, + .abilities = { ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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 = 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, + .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, + PALETTES(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, + #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, + .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 = 3, + BACK_PIC(Weezing, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_GROW, + PALETTES(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, + PALETTES(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, + .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, + PALETTES(Rhyhorn), + ICON(Rhyhorn, 1), + .footprint = gMonFootprint_Rhyhorn, + LEARNSETS(Rhyhorn), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_RHYDON}), + }, + + [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, + .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 = 3, + .frontAnimFrames = sAnims_Rhydon, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Rhydon, 64, 56), + BACK_PIC_FEMALE(Rhydon, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTES(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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_FRIEND_GUARD }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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 = 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, + .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, + PALETTES(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, + .baseAttack = 10, + .baseDefense = 10, + .baseSpeed = 55, + .baseSpAttack = 75, + .baseSpDefense = 135, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 30, + .expYield = 608, + .evYield_HP = 3, + .itemRare = ITEM_LUCKY_EGG, + .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, + .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, + PALETTES(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, + .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_H_JUMPS_V_STRETCH, + BACK_PIC(Tangela, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTES(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, + .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, + PALETTES(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, \ + .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_KANGASKHAN] = + { + 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, + PALETTES(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, + .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, + PALETTES(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, + .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, + .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, + PALETTES(Horsea), + ICON(Horsea, 0), + .footprint = gMonFootprint_Horsea, + LEARNSETS(Horsea), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEADRA}), + }, + + [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, + .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, + PALETTES(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, + .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, + PALETTES(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, + .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, + PALETTES(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, + .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, + .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, + PALETTES(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 = 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, + PALETTES(Staryu), + ICON(Staryu, 2), + .footprint = gMonFootprint_Staryu, + LEARNSETS(Staryu), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}), + }, + + [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, + .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, + PALETTES(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 + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + #endif + .catchRate = 145, + .expYield = 62, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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 },\ + .speciesName = _("Mr. Mime"), \ + .cryId = CRY_MR_MIME, \ + .natDexNum = NATIONAL_DEX_MR_MIME, \ + .footprint = gMonFootprint_MrMime, \ + .formSpeciesIdTable = sMrMimeFormSpeciesIdTable + + [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, + PALETTES(MrMime), + ICON(MrMime, 0), + LEARNSETS(MrMime), + }, + +#if P_GALARIAN_FORMS + [SPECIES_MR_MIME_GALARIAN] = + { + MR_MIME_MISC_INFO, + .baseHP = 50, + .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, + PALETTES(MrMimeGalarian), + ICON(MrMimeGalarian, 0), + LEARNSETS(MrMimeGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_MR_RIME}), + }, + + [SPECIES_MR_RIME] = + { + .baseHP = 80, + .baseAttack = 85, + .baseDefense = 75, + .baseSpeed = 70, + .baseSpAttack = 110, + .baseSpDefense = 100, + .types = { TYPE_ICE, TYPE_PSYCHIC }, + .catchRate = 45, + .expYield = 182, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .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, + .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, + PALETTES(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 = 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, + .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, + PALETTES(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, \ + .speciesName = _("Scizor"), \ + .natDexNum = NATIONAL_DEX_SCIZOR, \ + .categoryName = _("Pincer"), \ + .footprint = gMonFootprint_Scizor, \ + LEARNSETS(Scizor), \ + .formSpeciesIdTable = sScizorFormSpeciesIdTable,\ + .formChangeTable = sScizorFormChangeTable + + [SPECIES_SCIZOR] = + { + 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, + PALETTES(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, + PALETTES(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, + .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 = 0, + .frontAnimFrames = sAnims_Kleavor, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kleavor, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Smoochum), + ICON(Smoochum, 1), + .footprint = gMonFootprint_Smoochum, + LEARNSETS(Smoochum), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_JYNX}), + }, +#endif //P_GEN_2_CROSS_EVOS + + [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, + .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, + PALETTES(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 = 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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(Elekid), + ICON(Elekid, 1), + .footprint = gMonFootprint_Elekid, + LEARNSETS(Elekid), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTABUZZ}), + }, +#endif //P_GEN_2_CROSS_EVOS + + [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, + .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, + PALETTES(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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(Magby), + ICON(Magby, 0), + .footprint = gMonFootprint_Magby, + LEARNSETS(Magby), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGMAR}), + }, +#endif //P_GEN_2_CROSS_EVOS + + [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, + .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, + PALETTES(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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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 }, \ + .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, + PALETTES(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, + PALETTES(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, + PALETTES(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, + PALETTES(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_SLOW, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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, \ + .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_GYARADOS] = + { + 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, + PALETTES(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 = 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, + PALETTES(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, \ + .speciesName = _("Lapras"), \ + .cryId = CRY_LAPRAS, \ + .natDexNum = NATIONAL_DEX_LAPRAS, \ + .categoryName = _("Transport"), \ + .footprint = gMonFootprint_Lapras, \ + LEARNSETS(Lapras), \ + .formSpeciesIdTable = sLaprasFormSpeciesIdTable, \ + .formChangeTable = sLaprasFormChangeTable + + [SPECIES_LAPRAS] = + { + 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, + PALETTES(Lapras), + ICON(Lapras, 2), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_LAPRAS_GIGANTAMAX] = + { + LAPRAS_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + "Over 5,000 people can ride on its\n" + "shell at once. And it's a very\n" + "comfortable ride, without the slightest\n" + "shaking or swaying."), + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_DITTO, EGG_GROUP_DITTO }, + .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_IMPOSTER }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(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, \ + .speciesName = _("Eevee"), \ + .cryId = CRY_EEVEE, \ + .natDexNum = NATIONAL_DEX_EEVEE, \ + .categoryName = _("Evolution"), \ + .footprint = gMonFootprint_Eevee, \ + LEARNSETS(Eevee), \ + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, \ + .formChangeTable = sEeveeFormChangeTable + + [SPECIES_EEVEE] = + { + 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, + PALETTES(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( + "Having gotten even friendlier and\n" + "more innocent, Eevee tries to play\n" + "with anyone around, only to end up\n" + "crushing them with its immense body."), + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(EeveeGigantamax, 64, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_EeveeGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(EeveeGigantamax, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(EeveeGigantamax), + ICON(EeveeGigantamax, 2), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS + + [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, + .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, + PALETTES(Vaporeon), + ICON(Vaporeon, 0), + .footprint = gMonFootprint_Vaporeon, + LEARNSETS(Vaporeon), + }, + + [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, + .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, + PALETTES(Jolteon), + ICON(Jolteon, 2), + .footprint = gMonFootprint_Jolteon, + LEARNSETS(Jolteon), + }, + + [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, + .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, + PALETTES(Flareon), + ICON(Flareon, 3), + .footprint = gMonFootprint_Flareon, + LEARNSETS(Flareon), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_ESPEON] = + { + .baseHP = 65, + .baseAttack = 65, + .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, + .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, + PALETTES(Espeon), + ICON(Espeon, 2), + .footprint = gMonFootprint_Espeon, + LEARNSETS(Espeon), + }, + + [SPECIES_UMBREON] = + { + .baseHP = 95, + .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, + .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, + PALETTES(Umbreon), + ICON(Umbreon, 0), + .footprint = gMonFootprint_Umbreon, + LEARNSETS(Umbreon), + }, +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS + [SPECIES_LEAFEON] = + { + .baseHP = 65, + .baseAttack = 110, + .baseDefense = 130, + .baseSpeed = 95, + .baseSpAttack = 60, + .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_LEAF_GUARD, ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Leafeon), + ICON(Leafeon, 1), + .footprint = gMonFootprint_Leafeon, + LEARNSETS(Leafeon), + }, + + [SPECIES_GLACEON] = + { + .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, + .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, + PALETTES(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 = 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_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, + PALETTES(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, + .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, + PALETTES(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 = 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, + .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, + PALETTES(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 = 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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_ADAPTABILITY, ABILITY_DOWNLOAD, ABILITY_ANALYTIC }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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 = 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, + .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, + PALETTES(Omanyte), + ICON(Omanyte, 0), + .footprint = gMonFootprint_Omanyte, + LEARNSETS(Omanyte), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_OMASTAR}), + }, + + [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, + .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, + PALETTES(Omastar), + ICON(Omastar, 0), + .footprint = gMonFootprint_Omastar, + LEARNSETS(Omastar), + }, +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO + [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, + .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, + PALETTES(Kabuto), + ICON(Kabuto, 2), + .footprint = gMonFootprint_Kabuto, + LEARNSETS(Kabuto), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KABUTOPS}), + }, + + [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, + .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, + PALETTES(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, \ + .speciesName = _("Aerodactyl"), \ + .natDexNum = NATIONAL_DEX_AERODACTYL, \ + .categoryName = _("Fossil"), \ + .footprint = gMonFootprint_Aerodactyl, \ + LEARNSETS(Aerodactyl), \ + .formSpeciesIdTable = sAerodactylFormSpeciesIdTable,\ + .formChangeTable = sAerodactylFormChangeTable + + [SPECIES_AERODACTYL] = + { + 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, + PALETTES(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, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PICKUP, ABILITY_THICK_FAT, ABILITY_GLUTTONY }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Munchlax), + ICON(Munchlax, 3), + .footprint = gMonFootprint_Munchlax, + LEARNSETS(Munchlax), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SNORLAX}), + }, +#endif //P_GEN_4_CROSS_EVOS + +#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, \ + .speciesName = _("Snorlax"), \ + .cryId = CRY_SNORLAX, \ + .natDexNum = NATIONAL_DEX_SNORLAX, \ + .categoryName = _("Sleeping"), \ + .footprint = gMonFootprint_Snorlax, \ + LEARNSETS(Snorlax), \ + .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, \ + .formChangeTable = sSnorlaxFormChangeTable + + [SPECIES_SNORLAX] = + { + 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, + PALETTES(Snorlax), + ICON(Snorlax, 3), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_SNORLAX_GIGANTAMAX] = + { + SNORLAX_MISC_INFO, + .height = 350, + .weight = 0, + .description = COMPOUND_STRING( + "Gigantamax energy has affected\n" + "stray seeds and even pebbles that\n" + "got stuck to Snorlax, making them grow\n" + "to a huge size."), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .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_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, + PALETTES(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, + .categoryName = _("Cruel"), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .bodyColor = BODY_COLOR_YELLOW, \ + .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, + PALETTES(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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .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, + PALETTES(Moltres), + ICON(Moltres, 0), + LEARNSETS(Moltres), + }, + +#if P_GALARIAN_FORMS + [SPECIES_MOLTRES_GALARIAN] = + { + 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, + .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, + PALETTES(MoltresGalarian), + ICON(MoltresGalarian, 0), + LEARNSETS(MoltresGalarian), + .isGalarianForm = TRUE, + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI + [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, + .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, + PALETTES(Dratini), + ICON(Dratini, 0), + .footprint = gMonFootprint_Dratini, + LEARNSETS(Dratini), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_DRAGONAIR}), + }, + + [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, + .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, + PALETTES(Dragonair), + ICON(Dragonair, 0), + .footprint = gMonFootprint_Dragonair, + LEARNSETS(Dragonair), + .evolutions = EVOLUTION({EVO_LEVEL, 55, SPECIES_DRAGONITE}), + }, + + [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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .bodyColor = BODY_COLOR_PURPLE, \ + .speciesName = _("Mewtwo"), \ + .natDexNum = NATIONAL_DEX_MEWTWO, \ + .categoryName = _("Genetic"), \ + .footprint = gMonFootprint_Mewtwo, \ + LEARNSETS(Mewtwo), \ + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, \ + .formChangeTable = sMewtwoFormChangeTable, \ + .isLegendary = TRUE + + [SPECIES_MEWTWO] = + { + 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, + PALETTES(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, + PALETTES(MewtwoMegaX), + ICON(MewtwoMegaX, 2), + }, + + [SPECIES_MEWTWO_MEGA_Y] = + { + 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, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Mew), + ICON(Mew, 0), + .footprint = gMonFootprint_Mew, + LEARNSETS(Mew), + }, +#endif //P_FAMILY_MEW + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_2.h b/src/data/pokemon/species_info/gen_2.h new file mode 100644 index 0000000000..9ac992ea1f --- /dev/null +++ b/src/data/pokemon/species_info/gen_2.h @@ -0,0 +1,5734 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen2[] = +{ +#endif + +#if P_FAMILY_CHIKORITA + [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, + .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, + PALETTES(Chikorita), + ICON(Chikorita, 1), + .footprint = gMonFootprint_Chikorita, + LEARNSETS(Chikorita), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BAYLEEF}), + }, + + [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, + .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, + PALETTES(Bayleef), + ICON(Bayleef, 1), + .footprint = gMonFootprint_Bayleef, + LEARNSETS(Bayleef), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MEGANIUM}), + }, + + [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, + .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, + PALETTES(Meganium), + ICON(Meganium, 1), + .footprint = gMonFootprint_Meganium, + LEARNSETS(Meganium), + }, +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL + [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, + .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, + PALETTES(Cyndaquil), + ICON(Cyndaquil, 3), + .footprint = gMonFootprint_Cyndaquil, + LEARNSETS(Cyndaquil), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_QUILAVA}), + }, + + [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, + .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, + PALETTES(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, \ + .speciesName = _("Typhlosion"), \ + .cryId = CRY_TYPHLOSION, \ + .natDexNum = NATIONAL_DEX_TYPHLOSION, \ + .footprint = gMonFootprint_Typhlosion, \ + .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable + + [SPECIES_TYPHLOSION] = + { + 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, + PALETTES(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, + PALETTES(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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Totodile), + ICON(Totodile, 0), + .footprint = gMonFootprint_Totodile, + LEARNSETS(Totodile), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CROCONAW}), + }, + + [SPECIES_CROCONAW] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Croconaw), + ICON(Croconaw, 0), + .footprint = gMonFootprint_Croconaw, + LEARNSETS(Croconaw), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_FERALIGATR}), + }, + + [SPECIES_FERALIGATR] = + { + .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, + .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, + PALETTES(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 = 43, + .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_FRISK }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Sentret), + ICON(Sentret, 2), + .footprint = gMonFootprint_Sentret, + LEARNSETS(Sentret), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FURRET}), + }, + + [SPECIES_FURRET] = + { + .baseHP = 85, + .baseAttack = 76, + .baseDefense = 64, + .baseSpeed = 90, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 90, + .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_KEEN_EYE, ABILITY_FRISK }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Furret), + ICON(Furret, 2), + .footprint = gMonFootprint_Furret, + LEARNSETS(Furret), + }, +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT + [SPECIES_HOOTHOOT] = + { + .baseHP = 60, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 50, + .baseSpAttack = 36, + .baseSpDefense = 56, + .types = { TYPE_NORMAL, TYPE_FLYING }, + .catchRate = 255, + .expYield = 52, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Hoothoot), + ICON(Hoothoot, 2), + .footprint = gMonFootprint_Hoothoot, + LEARNSETS(Hoothoot), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_NOCTOWL}), + }, + + [SPECIES_NOCTOWL] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Noctowl), + ICON(Noctowl, 2), + .footprint = gMonFootprint_Noctowl, + LEARNSETS(Noctowl), + }, +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA + [SPECIES_LEDYBA] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Ledyba), + ICON(Ledyba, 0), + .footprint = gMonFootprint_Ledyba, + LEARNSETS(Ledyba), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_LEDIAN}), + }, + + [SPECIES_LEDIAN] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_IRON_FIST }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Ledian), + ICON(Ledian, 0), + .footprint = gMonFootprint_Ledian, + LEARNSETS(Ledian), + }, +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK + [SPECIES_SPINARAK] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Spinarak), + ICON(Spinarak, 1), + .footprint = gMonFootprint_Spinarak, + LEARNSETS(Spinarak), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARIADOS}), + }, + + [SPECIES_ARIADOS] = + { + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 40, + .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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Ariados), + ICON(Ariados, 0), + .footprint = gMonFootprint_Ariados, + LEARNSETS(Ariados), + }, +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU + [SPECIES_CHINCHOU] = + { + .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, + .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, + PALETTES(Chinchou), + ICON(Chinchou, 2), + .footprint = gMonFootprint_Chinchou, + LEARNSETS(Chinchou), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_LANTURN}), + }, + + [SPECIES_LANTURN] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Togepi), + ICON(Togepi, 0), + .footprint = gMonFootprint_Togepi, + LEARNSETS(Togepi), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}), + }, + + [SPECIES_TOGETIC] = + { + .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, + .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, + PALETTES(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 + .types = { TYPE_NORMAL, TYPE_FLYING }, + #endif + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Natu), + ICON(Natu, 1), + .footprint = gMonFootprint_Natu, + LEARNSETS(Natu), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_XATU}), + }, + + [SPECIES_XATU] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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, + .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, + PALETTES(Mareep), + ICON(Mareep, 0), + .footprint = gMonFootprint_Mareep, + LEARNSETS(Mareep), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FLAAFFY}), + }, + + [SPECIES_FLAAFFY] = + { + .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 }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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, + .baseAttack = 20, + .baseDefense = 40, + .baseSpeed = 20, + .baseSpAttack = 20, + .baseSpDefense = 40, + #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, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Azurill), + ICON(Azurill, 0), + .footprint = gMonFootprint_Azurill, + LEARNSETS(Azurill), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_MARILL}), + }, +#endif //P_GEN_3_CROSS_EVOS + + [SPECIES_MARILL] = + { + .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, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .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, + .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, + PALETTES(Marill), + ICON(Marill, 0), + .footprint = gMonFootprint_Marill, + LEARNSETS(Marill), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_AZUMARILL}), + }, + + [SPECIES_AZUMARILL] = + { + .baseHP = 100, + .baseAttack = 50, + .baseDefense = 80, + .baseSpeed = 50, + .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 = 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, + .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, + PALETTES(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 = 80, + .baseDefense = 95, + .baseSpeed = 10, + .baseSpAttack = 10, + .baseSpDefense = 45, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 255, + .expYield = 58, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Bonsly), + ICON(Bonsly, 1), + .footprint = gMonFootprint_Bonsly, + LEARNSETS(Bonsly), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_MIMIC, SPECIES_SUDOWOODO}), + }, +#endif //P_GEN_4_CROSS_EVOS + + [SPECIES_SUDOWOODO] = + { + .baseHP = 70, + .baseAttack = 100, + .baseDefense = 115, + .baseSpeed = 30, + .baseSpAttack = 30, + .baseSpDefense = 65, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 65, + .expYield = 144, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .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, + .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, + PALETTES(Sudowoodo), + ICON(Sudowoodo, 1), + .footprint = gMonFootprint_Sudowoodo, + LEARNSETS(Sudowoodo), + }, +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP + [SPECIES_HOPPIP] = + { + .baseHP = 35, + .baseAttack = 35, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 35, + .baseSpDefense = 55, + .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, + .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, + PALETTES(Hoppip), + ICON(Hoppip, 1), + .footprint = gMonFootprint_Hoppip, + LEARNSETS(Hoppip), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_SKIPLOOM}), + }, + + [SPECIES_SKIPLOOM] = + { + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 80, + .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_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Skiploom), + ICON(Skiploom, 1), + .footprint = gMonFootprint_Skiploom, + LEARNSETS(Skiploom), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_JUMPLUFF}), + }, + + [SPECIES_JUMPLUFF] = + { + .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, + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_SKILL_LINK }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(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 = 75, + .baseAttack = 100, + .baseDefense = 66, + .baseSpeed = 115, + .baseSpAttack = 60, + .baseSpDefense = 66, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 169, + .evYield_Speed = 2, + .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, + .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, + PALETTES(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 = 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_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Sunkern), + ICON(Sunkern, 1), + .footprint = gMonFootprint_Sunkern, + LEARNSETS(Sunkern), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}), + }, + + [SPECIES_SUNFLORA] = + { + .baseHP = 75, + .baseAttack = 75, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 105, + .baseSpDefense = 85, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 120, + .expYield = 149, + .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_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Sunflora), + ICON(Sunflora, 1), + .footprint = gMonFootprint_Sunflora, + LEARNSETS(Sunflora), + }, +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA + [SPECIES_YANMA] = + { + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 95, + .baseSpAttack = 75, + .baseSpDefense = 45, + .types = { TYPE_BUG, TYPE_FLYING }, + .catchRate = 75, + .expYield = 78, + .evYield_Speed = 1, + .itemRare = ITEM_WIDE_LENS, + .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, + .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, + PALETTES(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 = 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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SPEED_BOOST, ABILITY_TINTED_LENS, ABILITY_FRISK }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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 }, \ + .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, + PALETTES(Wooper), + ICON(Wooper, 0), + LEARNSETS(Wooper), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_QUAGSIRE}), + }, + + [SPECIES_QUAGSIRE] = + { + .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, + .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, + PALETTES(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 = 16, + .frontAnimFrames = sAnims_WooperPaldean, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(WooperPaldean, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTES(WooperPaldean), + //ICON(WooperPaldean, 0), + LEARNSETS(WooperPaldean), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CLODSIRE}), + }, + + [SPECIES_CLODSIRE] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .abilities = { ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Clodsire), + ICON(Clodsire, 2), + //.footprint = gMonFootprint_Clodsire, + LEARNSETS(Clodsire), + }, +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW + [SPECIES_MURKROW] = + { + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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 = 100, + .baseAttack = 125, + .baseDefense = 52, + .baseSpeed = 71, + .baseSpAttack = 105, + .baseSpDefense = 52, + .types = { TYPE_DARK, TYPE_FLYING }, + .catchRate = 30, + .expYield = 177, + .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_MOXIE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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 = 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 = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .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, \ + .frontAnimId = ANIM_ZIGZAG_FAST, \ + .enemyMonElevation = 8, \ + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ + PALETTES(Unown), \ + ICON(Unown ##letter, 0), \ + .footprint = gMonFootprint_Unown, \ + LEARNSETS(Unown), \ + .formSpeciesIdTable = sUnownFormSpeciesIdTable + + [SPECIES_UNOWN] = + { + UNOWN_MISC_INFO(A), + 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_UNOWN_C] = + { + 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), + 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_UNOWN_L] = + { + UNOWN_MISC_INFO(L), + .noFlip = TRUE, + FRONT_PIC(UnownL, 24, 32), + BACK_PIC(UnownL, 32, 48), + .backPicYOffset = 10, + }, + + [SPECIES_UNOWN_M] = + { + UNOWN_MISC_INFO(M), + FRONT_PIC(UnownM, 32, 32), + BACK_PIC(UnownM, 48, 40), + .backPicYOffset = 13, + }, + + [SPECIES_UNOWN_N] = + { + UNOWN_MISC_INFO(N), + .noFlip = TRUE, + FRONT_PIC(UnownN, 32, 24), + BACK_PIC(UnownN, 48, 40), + .backPicYOffset = 13, + }, + + [SPECIES_UNOWN_O] = + { + UNOWN_MISC_INFO(O), + FRONT_PIC(UnownO, 32, 32), + BACK_PIC(UnownO, 48, 48), + .backPicYOffset = 8, + }, + + [SPECIES_UNOWN_P] = + { + UNOWN_MISC_INFO(P), + .noFlip = TRUE, + FRONT_PIC(UnownP, 24, 32), + BACK_PIC(UnownP, 32, 48), + .backPicYOffset = 10, + }, + + [SPECIES_UNOWN_Q] = + { + UNOWN_MISC_INFO(Q), + .noFlip = TRUE, + FRONT_PIC(UnownQ, 32, 24), + BACK_PIC(UnownQ, 40, 40), + .backPicYOffset = 15, + }, + + [SPECIES_UNOWN_R] = + { + UNOWN_MISC_INFO(R), + .noFlip = TRUE, + FRONT_PIC(UnownR, 24, 32), + BACK_PIC(UnownR, 32, 40), + .backPicYOffset = 12, + }, + + [SPECIES_UNOWN_S] = + { + 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), + FRONT_PIC(UnownT, 24, 32), + BACK_PIC(UnownT, 32, 40), + .backPicYOffset = 13, + }, + + [SPECIES_UNOWN_U] = + { + UNOWN_MISC_INFO(U), + FRONT_PIC(UnownU, 32, 32), + BACK_PIC(UnownU, 48, 40), + .backPicYOffset = 13, + }, + + [SPECIES_UNOWN_V] = + { + 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), + FRONT_PIC(UnownW, 32, 32), + BACK_PIC(UnownW, 40, 40), + .backPicYOffset = 13, + }, + + [SPECIES_UNOWN_X] = + { + UNOWN_MISC_INFO(X), + FRONT_PIC(UnownX, 24, 24), + BACK_PIC(UnownX, 40, 40), + .backPicYOffset = 15, + }, + + [SPECIES_UNOWN_Y] = + { + UNOWN_MISC_INFO(Y), + 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_UNOWN_EMARK] = + { + UNOWN_MISC_INFO(ExclamationMark), + FRONT_PIC(UnownExclamationMark, 24, 40), + BACK_PIC(UnownExclamationMark, 24, 56), + .backPicYOffset = 6, + }, + + [SPECIES_UNOWN_QMARK] = + { + UNOWN_MISC_INFO(QuestionMark), + .noFlip = TRUE, + FRONT_PIC(UnownQuestionMark, 24, 40), + BACK_PIC(UnownQuestionMark, 32, 56), + .backPicYOffset = 6, + }, +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS + [SPECIES_WYNAUT] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Wynaut), + ICON(Wynaut, 0), + .footprint = gMonFootprint_Wynaut, + LEARNSETS(Wynaut), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_WOBBUFFET}), + }, +#endif //P_GEN_3_CROSS_EVOS + + [SPECIES_WOBBUFFET] = + { + .baseHP = 190, + .baseAttack = 33, + .baseDefense = 58, + .baseSpeed = 33, + .baseSpAttack = 33, + .baseSpDefense = 58, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 45, + .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, + .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, + PALETTES(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, + .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, + .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, + PALETTES(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] = + { + .baseHP = 120, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 60, + .baseSpAttack = 110, + .baseSpDefense = 70, + .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .catchRate = 45, + .expYield = 260, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .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, + .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, + PALETTES(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 = 65, + .baseDefense = 90, + .baseSpeed = 15, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 190, + .expYield = 58, + .evYield_Defense = 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_GRAY, + .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, + PALETTES(Pineco), + ICON(Pineco, 0), + .footprint = gMonFootprint_Pineco, + LEARNSETS(Pineco), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_FORRETRESS}), + }, + + [SPECIES_FORRETRESS] = + { + .baseHP = 75, + .baseAttack = 90, + .baseDefense = 140, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_BUG, TYPE_STEEL }, + .catchRate = 75, + .expYield = 163, + .evYield_Defense = 2, + .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, + .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, + PALETTES(Forretress), + ICON(Forretress, 2), + .footprint = gMonFootprint_Forretress, + LEARNSETS(Forretress), + }, +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE + [SPECIES_DUNSPARCE] = + { + .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, + .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, + PALETTES(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, \ + .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, \ + PALETTES(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( + "A recent study uncovered that the\n" + "number of segments a\n" + "Dudunsparce's body has is determined by the\n" + "Pokémon's genes."), + }, +#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 = 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, + .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, + PALETTES(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 = 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 = 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, + .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, + PALETTES(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 = 60, + .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, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(75), + .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, + .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, + PALETTES(Snubbull), + ICON(Snubbull, 0), + .footprint = gMonFootprint_Snubbull, + LEARNSETS(Snubbull), + .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_GRANBULL}), + }, + + [SPECIES_GRANBULL] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(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 }, \ + .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_QWILFISH] = + { + 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, + PALETTES(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 = 16, + .frontAnimFrames = sAnims_QwilfishHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 9, + BACK_PIC(QwilfishHisuian, 56, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(QwilfishHisuian), + ICON(QwilfishHisuian, 0), + LEARNSETS(QwilfishHisuian), + .isHisuianForm = TRUE, + .evolutions = EVOLUTION({EVO_MOVE, MOVE_BARB_BARRAGE, SPECIES_OVERQWIL}), + }, + + [SPECIES_OVERQWIL] = + { + .baseHP = 85, + .baseAttack = 115, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = { TYPE_DARK, TYPE_POISON }, + .catchRate = 45, + .expYield = 179, + .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_BLACK, + .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 = 2, + .frontAnimFrames = sAnims_Overqwil, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Overqwil, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Overqwil), + ICON(Overqwil, 2), + //.footprint = gMonFootprint_Overqwil, + LEARNSETS(Overqwil), + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE + [SPECIES_SHUCKLE] = + { + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_STURDY, ABILITY_GLUTTONY, ABILITY_CONTRARY }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(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, \ + .speciesName = _("Heracross"), \ + .natDexNum = NATIONAL_DEX_HERACROSS, \ + .categoryName = _("Single Horn"), \ + .footprint = gMonFootprint_Heracross, \ + LEARNSETS(Heracross), \ + .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, \ + .formChangeTable = sHeracrossFormChangeTable + + [SPECIES_HERACROSS] = + { + HERACROSS_MISC_INFO, + .baseHP = 80, + .baseAttack = 125, + .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, + PALETTES(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, + PALETTES(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_SNEASEL] = + { + 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, + PALETTES(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 = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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_FIGHTING, TYPE_POISON }, + .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 = 8, + .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, + PALETTES(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_SNEASLER] = + { + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_PRESSURE, ABILITY_UNBURDEN, ABILITY_POISON_TOUCH }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 1, + .frontAnimFrames = sAnims_Sneasler, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sneasler, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 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), + .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, + .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, + PALETTES(Teddiursa), + ICON(Teddiursa, 0), + .footprint = gMonFootprint_Teddiursa, + LEARNSETS(Teddiursa), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_URSARING}), + }, + + [SPECIES_URSARING] = + { + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 75, + .baseSpeed = 55, + .baseSpAttack = 75, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 60, + .expYield = 175, + .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_GUTS, ABILITY_QUICK_FEET, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(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, \ + .speciesName = _("Ursaluna"), \ + .cryId = CRY_URSALUNA, \ + .natDexNum = NATIONAL_DEX_URSALUNA, \ + .categoryName = _("Peat"), \ + .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable + + [SPECIES_URSALUNA] = + { + URSALUNA_MISC_INFO, + .baseHP = 130, + .baseAttack = 140, + .baseDefense = 105, + .baseSpeed = 50, + .baseSpAttack = 45, + .baseSpDefense = 80, + .catchRate = 20, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .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 = 2, + .frontAnimFrames = sAnims_Ursaluna, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Ursaluna, 64, 40), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Ursaluna), + ICON(Ursaluna, 2), + //.footprint = gMonFootprint_Ursaluna, + LEARNSETS(Ursaluna), + }, + + [SPECIES_URSALUNA_BLOODMOON] = + { + URSALUNA_MISC_INFO, + .baseHP = 113, + .baseAttack = 70, + .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( + "It crossed the sea and drifted\n" + "ashore in a new land. Surviving in this\n" + "place led it to take on a unique\n" + "appearance and gain special powers."), + .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, + PALETTES(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 = 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 = 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, + .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, + PALETTES(Slugma), + ICON(Slugma, 0), + .footprint = gMonFootprint_Slugma, + LEARNSETS(Slugma), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MAGCARGO}), + }, + + [SPECIES_MAGCARGO] = + { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 60 : 50, + .baseAttack = 50, + .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 = 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, + .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, + PALETTES(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, + .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, + PALETTES(Swinub), + ICON(Swinub, 2), + .footprint = gMonFootprint_Swinub, + LEARNSETS(Swinub), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_PILOSWINE}), + }, + + [SPECIES_PILOSWINE] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_ICE, TYPE_GROUND }, + .catchRate = 75, + .expYield = 158, + .evYield_HP = 1, + .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, + .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, + PALETTES(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 = 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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(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 }, \ + .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, + PALETTES(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, + PALETTES(CorsolaGalarian), + ICON(CorsolaGalarian, 0), + LEARNSETS(CorsolaGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CURSOLA}), + }, + + [SPECIES_CURSOLA] = + { + .baseHP = 60, + .baseAttack = 95, + .baseDefense = 50, + .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, + .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, + PALETTES(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_SpAttack = 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_HUSTLE, ABILITY_SNIPER, ABILITY_MOODY }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Remoraid), + ICON(Remoraid, 0), + .footprint = gMonFootprint_Remoraid, + LEARNSETS(Remoraid), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_OCTILLERY}), + }, + + [SPECIES_OCTILLERY] = + { + .baseHP = 75, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 45, + .baseSpAttack = 105, + .baseSpDefense = 75, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 75, + .expYield = 168, + .evYield_Attack = 1, + .evYield_SpAttack = 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, + .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, + PALETTES(Octillery), + ICON(Octillery, 0), + .footprint = gMonFootprint_Octillery, + LEARNSETS(Octillery), + }, +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD + [SPECIES_DELIBIRD] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE, ABILITY_INSOMNIA }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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_MANTINE] = + { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 85 : 65, + .baseAttack = 40, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 80, + .baseSpDefense = 140, + .types = { TYPE_WATER, TYPE_FLYING }, + .catchRate = 25, + .expYield = 170, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .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 }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Mantine), + ICON(Mantine, 2), + .footprint = gMonFootprint_Mantine, + LEARNSETS(Mantine), + }, +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY + [SPECIES_SKARMORY] = + { + .baseHP = 65, + .baseAttack = 80, + .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 = 25, + .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, + .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, + PALETTES(Skarmory), + ICON(Skarmory, 0), + .footprint = gMonFootprint_Skarmory, + LEARNSETS(Skarmory), + }, +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR + [SPECIES_HOUNDOUR] = + { + .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 = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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, \ + .speciesName = _("Houndoom"), \ + .natDexNum = NATIONAL_DEX_HOUNDOOM, \ + .categoryName = _("Dark"), \ + .footprint = gMonFootprint_Houndoom, \ + LEARNSETS(Houndoom), \ + .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, \ + .formChangeTable = sHoundoomFormChangeTable + + [SPECIES_HOUNDOOM] = + { + 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, + PALETTES(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, + PALETTES(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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Phanpy), + ICON(Phanpy, 0), + .footprint = gMonFootprint_Phanpy, + LEARNSETS(Phanpy), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DONPHAN}), + }, + + [SPECIES_DONPHAN] = + { + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 120, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_GROUND, TYPE_GROUND }, + .catchRate = 60, + .expYield = 175, + .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, + .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, + PALETTES(Donphan), + ICON(Donphan, 0), + .footprint = gMonFootprint_Donphan, + LEARNSETS(Donphan), + }, +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER + [SPECIES_STANTLER] = + { + .baseHP = 73, + .baseAttack = 95, + .baseDefense = 62, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 65, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 163, + .evYield_Attack = 1, + .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, + .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, + PALETTES(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 = 103, + .baseAttack = 105, + .baseDefense = 72, + .baseSpeed = 65, + .baseSpAttack = 105, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .catchRate = 45, + .expYield = 263, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .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_GRAY, + .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, + PALETTES(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 = 55, + .baseAttack = 20, + .baseDefense = 35, + .baseSpeed = 75, + .baseSpAttack = 20, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 88, + .evYield_Speed = 1, + .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, + .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, + PALETTES(Smeargle), + ICON(Smeargle, 1), + .footprint = gMonFootprint_Smeargle, + LEARNSETS(Smeargle), + }, +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK + [SPECIES_MILTANK] = + { + .baseHP = 95, + .baseAttack = 80, + .baseDefense = 105, + .baseSpeed = 100, + .baseSpAttack = 40, + .baseSpDefense = 70, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 172, + .evYield_Defense = 2, + .itemCommon = ITEM_MOOMOO_MILK, + .itemRare = ITEM_MOOMOO_MILK, + .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 }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Miltank), + ICON(Miltank, 0), + .footprint = gMonFootprint_Miltank, + LEARNSETS(Miltank), + }, +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU + [SPECIES_RAIKOU] = + { + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 75, + .baseSpeed = 115, + .baseSpAttack = 115, + .baseSpDefense = 100, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 3, + .expYield = 261, + .evYield_Speed = 2, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + #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, + .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, + PALETTES(Raikou), + ICON(Raikou, 2), + .footprint = gMonFootprint_Raikou, + LEARNSETS(Raikou), + }, +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI + [SPECIES_ENTEI] = + { + .baseHP = 115, + .baseAttack = 115, + .baseDefense = 85, + .baseSpeed = 100, + .baseSpAttack = 90, + .baseSpDefense = 75, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 3, + .expYield = 261, + .evYield_HP = 1, + .evYield_Attack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + #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, + .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, + PALETTES(Entei), + ICON(Entei, 2), + .footprint = gMonFootprint_Entei, + LEARNSETS(Entei), + }, +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE + [SPECIES_SUICUNE] = + { + .baseHP = 100, + .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, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + #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, + .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, + PALETTES(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, + .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, + PALETTES(Larvitar), + ICON(Larvitar, 1), + .footprint = gMonFootprint_Larvitar, + LEARNSETS(Larvitar), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_PUPITAR}), + }, + + [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, + .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 = 11, + .frontAnimFrames = sAnims_Pupitar, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Pupitar, 48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTES(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, \ + .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 = 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, + PALETTES(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, + PALETTES(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 = 306, + .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_MULTISCALE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Lugia), + ICON(Lugia, 0), + .footprint = gMonFootprint_Lugia, + LEARNSETS(Lugia), + }, +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH + [SPECIES_HO_OH] = + { + .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, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(HoOh), + ICON(HoOh, 1), + .footprint = gMonFootprint_HoOh, + LEARNSETS(HoOh), + }, +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI + [SPECIES_CELEBI] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_PSYCHIC, TYPE_GRASS }, + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_NATURAL_CURE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Celebi), + ICON(Celebi, 1), + .footprint = gMonFootprint_Celebi, + LEARNSETS(Celebi), + }, +#endif //P_FAMILY_CELEBI + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_3.h b/src/data/pokemon/species_info/gen_3.h new file mode 100644 index 0000000000..5864449505 --- /dev/null +++ b/src/data/pokemon/species_info/gen_3.h @@ -0,0 +1,8257 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen3[] = +{ +#endif + +#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, + .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, + PALETTES(Treecko), + ICON(Treecko, 1), + .footprint = gMonFootprint_Treecko, + LEARNSETS(Treecko), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_GROVYLE}), + }, + + [SPECIES_GROVYLE] = + { + .baseHP = 50, + .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, + .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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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_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, + .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, + PALETTES(Torchic), + ICON(Torchic, 0), + .footprint = gMonFootprint_Torchic, + LEARNSETS(Torchic), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_COMBUSKEN}), + }, + + [SPECIES_COMBUSKEN] = + { + .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), + .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, + .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, + PALETTES(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, \ + .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_BLAZIKEN] = + { + 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, + PALETTES(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, + PALETTES(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 = 62, + .evYield_Attack = 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_DAMP }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Mudkip), + ICON(Mudkip, 0), + .footprint = gMonFootprint_Mudkip, + LEARNSETS(Mudkip), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_MARSHTOMP}), + }, + + [SPECIES_MARSHTOMP] = + { + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_WATER, TYPE_GROUND }, + .catchRate = 45, + .expYield = 142, + .evYield_Attack = 2, + .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_DAMP }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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, + .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, + PALETTES(Poochyena), + ICON(Poochyena, 2), + .footprint = gMonFootprint_Poochyena, + LEARNSETS(Poochyena), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_MIGHTYENA}), + }, + + [SPECIES_MIGHTYENA] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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 }, \ + .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, \ + .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, + .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, + PALETTES(Zigzagoon), + ICON(Zigzagoon, 2), + LEARNSETS(Zigzagoon), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE}), + }, + + [SPECIES_LINOONE] = + { + 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, + PALETTES(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, + PALETTES(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, + PALETTES(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 = 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, + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Wurmple), + ICON(Wurmple, 0), + .footprint = gMonFootprint_Wurmple, + LEARNSETS(Wurmple), + .evolutions = EVOLUTION({EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON}, + {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}), + }, + + [SPECIES_SILCOON] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Silcoon), + ICON(Silcoon, 2), + .footprint = gMonFootprint_Silcoon, + LEARNSETS(Silcoon), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BEAUTIFLY}), + }, + + [SPECIES_BEAUTIFLY] = + { + .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 = 178, + .evYield_SpAttack = 3, + .itemRare = ITEM_SHED_SHELL, + .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_RIVALRY }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Beautifly), + ICON(Beautifly, 0), + .footprint = gMonFootprint_Beautifly, + LEARNSETS(Beautifly), + }, + + [SPECIES_CASCOON] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Cascoon), + ICON(Cascoon, 2), + .footprint = gMonFootprint_Cascoon, + LEARNSETS(Cascoon), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_DUSTOX}), + }, + + [SPECIES_DUSTOX] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 90, + .types = { TYPE_BUG, TYPE_POISON }, + .catchRate = 45, + .expYield = 173, + .evYield_SpDefense = 3, + .itemRare = ITEM_SHED_SHELL, + .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_COMPOUND_EYES }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Dustox), + ICON(Dustox, 5), + .footprint = gMonFootprint_Dustox, + LEARNSETS(Dustox), + }, +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD + [SPECIES_LOTAD] = + { + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 30, + .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, + .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, + .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, + PALETTES(Lotad), + ICON(Lotad, 4), + .footprint = gMonFootprint_Lotad, + LEARNSETS(Lotad), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_LOMBRE}), + }, + + [SPECIES_LOMBRE] = + { + .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, + .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, + PALETTES(Lombre), + ICON(Lombre, 1), + .footprint = gMonFootprint_Lombre, + LEARNSETS(Lombre), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}), + }, + + [SPECIES_LUDICOLO] = + { + .baseHP = 80, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 90, + .baseSpDefense = 100, + .types = { TYPE_WATER, TYPE_GRASS }, + .catchRate = 45, + .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, + .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, + PALETTES(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_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Seedot), + ICON(Seedot, 2), + .footprint = gMonFootprint_Seedot, + LEARNSETS(Seedot), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_NUZLEAF}), + }, + + [SPECIES_NUZLEAF] = + { + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 60, + .baseSpDefense = 40, + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Nuzleaf), + ICON(Nuzleaf, 1), + .footprint = gMonFootprint_Nuzleaf, + LEARNSETS(Nuzleaf), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}), + }, + + [SPECIES_SHIFTRY] = + { + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 60, + .baseSpeed = 80, + .baseSpAttack = 90, + .baseSpDefense = 60, + .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_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, + .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, + PALETTES(Shiftry), + ICON(Shiftry, 5), + .footprint = gMonFootprint_Shiftry, + LEARNSETS(Shiftry), + }, +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW + [SPECIES_TAILLOW] = + { + .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, + .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, + PALETTES(Taillow), + ICON(Taillow, 2), + .footprint = gMonFootprint_Taillow, + LEARNSETS(Taillow), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_SWELLOW}), + }, + + [SPECIES_SWELLOW] = + { + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 60, + .baseSpeed = 125, + .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 75 : 50, + .baseSpDefense = 50, + .types = { TYPE_NORMAL, TYPE_FLYING }, + .catchRate = 45, + .expYield = 159, + .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_GUTS, ABILITY_NONE, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Swellow), + ICON(Swellow, 2), + .footprint = gMonFootprint_Swellow, + LEARNSETS(Swellow), + }, +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL + [SPECIES_WINGULL] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING }, + .abilities = { ABILITY_KEEN_EYE, ABILITY_HYDRATION, ABILITY_RAIN_DISH }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Wingull), + ICON(Wingull, 0), + .footprint = gMonFootprint_Wingull, + LEARNSETS(Wingull), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PELIPPER}), + }, + + [SPECIES_PELIPPER] = + { + .baseHP = 60, + .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 = 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, + .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, + PALETTES(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_RALTS] = + { + .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 = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, + .abilities = { ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Ralts), + ICON(Ralts, 1), + .footprint = gMonFootprint_Ralts, + LEARNSETS(Ralts), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_KIRLIA}), + }, + + [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, + .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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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 = 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, + .friendship = STANDARD_FRIENDSHIP, + .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, + .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, + PALETTES(Surskit), + ICON(Surskit, 0), + .footprint = gMonFootprint_Surskit, + LEARNSETS(Surskit), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_MASQUERAIN}), + }, + + [SPECIES_MASQUERAIN] = + { + .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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Masquerain), + ICON(Masquerain, 0), + .footprint = gMonFootprint_Masquerain, + LEARNSETS(Masquerain), + }, +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH + [SPECIES_SHROOMISH] = + { + .baseHP = 60, + .baseAttack = 40, + .baseDefense = 60, + .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_FLUCTUATING, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_QUICK_FEET }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Shroomish), + ICON(Shroomish, 1), + .footprint = gMonFootprint_Shroomish, + LEARNSETS(Shroomish), + .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_BRELOOM}), + }, + + [SPECIES_BRELOOM] = + { + .baseHP = 60, + .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_FLUCTUATING, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Breloom), + ICON(Breloom, 1), + .footprint = gMonFootprint_Breloom, + LEARNSETS(Breloom), + }, +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH + [SPECIES_SLAKOTH] = + { + .baseHP = 60, + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_TRUANT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Slakoth), + ICON(Slakoth, 2), + .footprint = gMonFootprint_Slakoth, + LEARNSETS(Slakoth), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_VIGOROTH}), + }, + + [SPECIES_VIGOROTH] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_VITAL_SPIRIT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Vigoroth), + ICON(Vigoroth, 2), + .footprint = gMonFootprint_Vigoroth, + LEARNSETS(Vigoroth), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SLAKING}), + }, + + [SPECIES_SLAKING] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_TRUANT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Slaking), + ICON(Slaking, 2), + .footprint = gMonFootprint_Slaking, + LEARNSETS(Slaking), + }, +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA + [SPECIES_NINCADA] = + { + .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, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_RUN_AWAY }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Nincada), + ICON(Nincada, 1), + .footprint = gMonFootprint_Nincada, + LEARNSETS(Nincada), + .evolutions = EVOLUTION({EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK}, + {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}), + }, + + [SPECIES_NINJASK] = + { + .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 = 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, + .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, + PALETTES(Ninjask), + ICON(Ninjask, 1), + .footprint = gMonFootprint_Ninjask, + LEARNSETS(Ninjask), + }, + + [SPECIES_SHEDINJA] = + { + .baseHP = 1, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 40, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_BUG, TYPE_GHOST }, + .catchRate = 45, + .expYield = 83, + .evYield_HP = 2, + .genderRatio = MON_GENDERLESS, + .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, + .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, + PALETTES(Shedinja), + ICON(Shedinja, 1), + .footprint = gMonFootprint_Shedinja, + LEARNSETS(Shedinja), + }, +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR + [SPECIES_WHISMUR] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Whismur), + ICON(Whismur, 1), + .footprint = gMonFootprint_Whismur, + LEARNSETS(Whismur), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LOUDRED}), + }, + + [SPECIES_LOUDRED] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Loudred), + ICON(Loudred, 2), + .footprint = gMonFootprint_Loudred, + LEARNSETS(Loudred), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_EXPLOUD}), + }, + + [SPECIES_EXPLOUD] = + { + .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 = 221, + .evYield_HP = 3, + .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, + .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, + PALETTES(Exploud), + ICON(Exploud, 2), + .footprint = gMonFootprint_Exploud, + LEARNSETS(Exploud), + }, +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA + [SPECIES_MAKUHITA] = + { + .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), + .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, + .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, + PALETTES(Makuhita), + ICON(Makuhita, 1), + .footprint = gMonFootprint_Makuhita, + LEARNSETS(Makuhita), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_HARIYAMA}), + }, + + [SPECIES_HARIYAMA] = + { + .baseHP = 144, + .baseAttack = 120, + .baseDefense = 60, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 60, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 200, + .expYield = 166, + .evYield_HP = 2, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(25), + .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, + .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, + PALETTES(Hariyama), + ICON(Hariyama, 2), + .footprint = gMonFootprint_Hariyama, + LEARNSETS(Hariyama), + }, +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS + [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, + .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, + PALETTES(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 = 60, + .baseAttack = 55, + .baseDefense = 145, + .baseSpeed = 40, + .baseSpAttack = 75, + .baseSpDefense = 150, + .types = { TYPE_ROCK, TYPE_STEEL }, + .catchRate = 60, + .expYield = 184, + .evYield_Defense = 1, + .evYield_SpDefense = 2, + .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, + .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, + PALETTES(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, + .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, + PALETTES(Skitty), + ICON(Skitty, 0), + .footprint = gMonFootprint_Skitty, + LEARNSETS(Skitty), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}), + }, + + [SPECIES_DELCATTY] = + { + .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_FIELD, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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, \ + .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, + PALETTES(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, + PALETTES(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, + .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, + PALETTES(Aron), + ICON(Aron, 2), + .footprint = gMonFootprint_Aron, + LEARNSETS(Aron), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_LAIRON}), + }, + + [SPECIES_LAIRON] = + { + .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 = 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, + .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, + PALETTES(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, \ + .speciesName = _("Aggron"), \ + .natDexNum = NATIONAL_DEX_AGGRON, \ + .categoryName = _("Iron Armor"), \ + .footprint = gMonFootprint_Aggron, \ + LEARNSETS(Aggron), \ + .formSpeciesIdTable = sAggronFormSpeciesIdTable, \ + .formChangeTable = sAggronFormChangeTable + + [SPECIES_AGGRON] = + { + 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, + PALETTES(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, + PALETTES(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(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, + .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, + PALETTES(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, \ + .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_MEDICHAM] = + { + 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, + PALETTES(Medicham), + ICON(Medicham, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_MEDICHAM_MEGA] = + { + 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, + PALETTES(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 = 40, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 120, + .expYield = 59, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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, \ + .speciesName = _("Manectric"), \ + .natDexNum = NATIONAL_DEX_MANECTRIC, \ + .categoryName = _("Discharge"), \ + .footprint = gMonFootprint_Manectric, \ + LEARNSETS(Manectric), \ + .formSpeciesIdTable = sManectricFormSpeciesIdTable, \ + .formChangeTable = sManectricFormChangeTable + + [SPECIES_MANECTRIC] = + { + 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, + PALETTES(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, + PALETTES(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_FAIRY, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_PLUS, ABILITY_NONE, ABILITY_LIGHTNING_ROD }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Plusle), + ICON(Plusle, 0), + .footprint = gMonFootprint_Plusle, + LEARNSETS(Plusle), + }, +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN + [SPECIES_MINUN] = + { + .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_FAIRY, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_MINUS, ABILITY_NONE, ABILITY_VOLT_ABSORB }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(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, + .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, + PALETTES(Volbeat), + ICON(Volbeat, 0), + .footprint = gMonFootprint_Volbeat, + LEARNSETS(Volbeat), + }, + + [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, + .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, + PALETTES(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 = 40, + .baseAttack = 30, + .baseDefense = 35, + .baseSpeed = 55, + .baseSpAttack = 50, + .baseSpDefense = 70, + .types = { TYPE_GRASS, TYPE_POISON }, + .catchRate = 255, + .expYield = 56, + .evYield_SpAttack = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Budew), + ICON(Budew, 1), + .footprint = gMonFootprint_Budew, + LEARNSETS(Budew), + .evolutions = EVOLUTION({EVO_FRIENDSHIP_DAY, 0, SPECIES_ROSELIA}), + }, +#endif //P_GEN_4_CROSS_EVOS + + [SPECIES_ROSELIA] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS }, + .abilities = { ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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 = 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_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, + PALETTES(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 = 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 = 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, + .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, + PALETTES(Gulpin), + ICON(Gulpin, 1), + .footprint = gMonFootprint_Gulpin, + LEARNSETS(Gulpin), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_SWALOT}), + }, + + [SPECIES_SWALOT] = + { + .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, + .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, + .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, + PALETTES(Swalot), + ICON(Swalot, 2), + .footprint = gMonFootprint_Swalot, + LEARNSETS(Swalot), + }, +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA + [SPECIES_CARVANHA] = + { + .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, + .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, + .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, + PALETTES(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, \ + .speciesName = _("Sharpedo"), \ + .natDexNum = NATIONAL_DEX_SHARPEDO, \ + .categoryName = _("Brutal"), \ + .footprint = gMonFootprint_Sharpedo, \ + LEARNSETS(Sharpedo), \ + .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, \ + .formChangeTable = sSharpedoFormChangeTable + + [SPECIES_SHARPEDO] = + { + 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, + PALETTES(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, + PALETTES(SharpedoMega), + ICON(SharpedoMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER + [SPECIES_WAILMER] = + { + .baseHP = 130, + .baseAttack = 70, + .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_FLUCTUATING, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Wailmer), + ICON(Wailmer, 2), + .footprint = gMonFootprint_Wailmer, + LEARNSETS(Wailmer), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_WAILORD}), + }, + + [SPECIES_WAILORD] = + { + .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, + .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, + PALETTES(Wailord), + ICON(Wailord, 0), + .footprint = gMonFootprint_Wailord, + LEARNSETS(Wailord), + }, +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL + [SPECIES_NUMEL] = + { + .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, + .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, + PALETTES(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, \ + .speciesName = _("Camerupt"), \ + .natDexNum = NATIONAL_DEX_CAMERUPT, \ + .categoryName = _("Eruption"), \ + .footprint = gMonFootprint_Camerupt, \ + LEARNSETS(Camerupt), \ + .formSpeciesIdTable = sCameruptFormSpeciesIdTable, \ + .formChangeTable = sCameruptFormChangeTable + + [SPECIES_CAMERUPT] = + { + 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, + PALETTES(Camerupt), + ICON(Camerupt, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_CAMERUPT_MEGA] = + { + 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, + PALETTES(CameruptMega), + ICON(CameruptMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL + [SPECIES_TORKOAL] = + { + .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, + .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, + PALETTES(Torkoal), + ICON(Torkoal, 2), + .footprint = gMonFootprint_Torkoal, + LEARNSETS(Torkoal), + }, +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK + [SPECIES_SPOINK] = + { + .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, + .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, + PALETTES(Spoink), + ICON(Spoink, 0), + .footprint = gMonFootprint_Spoink, + LEARNSETS(Spoink), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GRUMPIG}), + }, + + [SPECIES_GRUMPIG] = + { + .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, + .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, + PALETTES(Grumpig), + ICON(Grumpig, 2), + .footprint = gMonFootprint_Grumpig, + LEARNSETS(Grumpig), + }, +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA + [SPECIES_SPINDA] = + { + .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, + .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 = 8, + .frontAnimFrames = sAnims_Spinda, + .frontAnimId = ANIM_CIRCLE_INTO_BG, + BACK_PIC(Spinda, 56, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTES(Spinda), + ICON(Spinda, 1), + .footprint = gMonFootprint_Spinda, + LEARNSETS(Spinda), + }, +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH + [SPECIES_TRAPINCH] = + { + .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, + .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, + PALETTES(Trapinch), + ICON(Trapinch, 0), + .footprint = gMonFootprint_Trapinch, + LEARNSETS(Trapinch), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VIBRAVA}), + }, + + [SPECIES_VIBRAVA] = + { + .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, + .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, + PALETTES(Vibrava), + ICON(Vibrava, 1), + .footprint = gMonFootprint_Vibrava, + LEARNSETS(Vibrava), + .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_FLYGON}), + }, + + [SPECIES_FLYGON] = + { + .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, + .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, + PALETTES(Flygon), + ICON(Flygon, 1), + .footprint = gMonFootprint_Flygon, + LEARNSETS(Flygon), + }, +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA + [SPECIES_CACNEA] = + { + .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, + .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, + PALETTES(Cacnea), + ICON(Cacnea, 1), + .footprint = gMonFootprint_Cacnea, + LEARNSETS(Cacnea), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_CACTURNE}), + }, + + [SPECIES_CACTURNE] = + { + .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, + .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, + PALETTES(Cacturne), + ICON(Cacturne, 1), + .footprint = gMonFootprint_Cacturne, + LEARNSETS(Cacturne), + }, +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU + [SPECIES_SWABLU] = + { + .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, + .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 = 14, + .frontAnimFrames = sAnims_Swablu, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Swablu, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(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, \ + .speciesName = _("Altaria"), \ + .natDexNum = NATIONAL_DEX_ALTARIA, \ + .categoryName = _("Humming"), \ + .footprint = gMonFootprint_Altaria, \ + LEARNSETS(Altaria), \ + .formSpeciesIdTable = sAltariaFormSpeciesIdTable, \ + .formChangeTable = sAltariaFormChangeTable + + [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, + BACK_PIC(Altaria, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(Altaria), + ICON(Altaria, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_ALTARIA_MEGA] = + { + 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, + PALETTES(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_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, + .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, + PALETTES(Zangoose), + ICON(Zangoose, 0), + .footprint = gMonFootprint_Zangoose, + LEARNSETS(Zangoose), + }, +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER + [SPECIES_SEVIPER] = + { + .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, + .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, + .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, + PALETTES(Seviper), + ICON(Seviper, 2), + .footprint = gMonFootprint_Seviper, + LEARNSETS(Seviper), + }, +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE + [SPECIES_LUNATONE] = + { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 90 : 70, + .baseAttack = 55, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 85, + .types = { TYPE_ROCK, TYPE_PSYCHIC }, + .catchRate = 45, + .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, + .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, + PALETTES(Lunatone), + ICON(Lunatone, 1), + .footprint = gMonFootprint_Lunatone, + LEARNSETS(Lunatone), + }, +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK + [SPECIES_SOLROCK] = + { + .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, + .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, + PALETTES(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_WATER_2, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 15, + .frontAnimFrames = sAnims_Barboach, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + .enemyMonElevation = 7, + BACK_PIC(Barboach, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTES(Barboach), + ICON(Barboach, 0), + .footprint = gMonFootprint_Barboach, + LEARNSETS(Barboach), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_WHISCASH}), + }, + + [SPECIES_WHISCASH] = + { + .baseHP = 110, + .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_WATER_2, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Whiscash), + ICON(Whiscash, 0), + .footprint = gMonFootprint_Whiscash, + LEARNSETS(Whiscash), + }, +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH + [SPECIES_CORPHISH] = + { + .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 = 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, + .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, + PALETTES(Corphish), + ICON(Corphish, 0), + .footprint = gMonFootprint_Corphish, + LEARNSETS(Corphish), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_CRAWDAUNT}), + }, + + [SPECIES_CRAWDAUNT] = + { + .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, + .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, + PALETTES(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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .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 = 14, + .frontAnimFrames = sAnims_Baltoy, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Baltoy, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTES(Baltoy), + ICON(Baltoy, 2), + .footprint = gMonFootprint_Baltoy, + LEARNSETS(Baltoy), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CLAYDOL}), + }, + + [SPECIES_CLAYDOL] = + { + .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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Claydol), + ICON(Claydol, 0), + .footprint = gMonFootprint_Claydol, + LEARNSETS(Claydol), + }, +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP + [SPECIES_LILEEP] = + { + .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, + .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, + PALETTES(Lileep), + ICON(Lileep, 2), + .footprint = gMonFootprint_Lileep, + LEARNSETS(Lileep), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_CRADILY}), + }, + + [SPECIES_CRADILY] = + { + .baseHP = 86, + .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_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3 }, + .abilities = { ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Cradily), + ICON(Cradily, 1), + .footprint = gMonFootprint_Cradily, + LEARNSETS(Cradily), + }, +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH + [SPECIES_ANORITH] = + { + .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, + .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, + .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, + PALETTES(Anorith), + ICON(Anorith, 0), + .footprint = gMonFootprint_Anorith, + LEARNSETS(Anorith), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ARMALDO}), + }, + + [SPECIES_ARMALDO] = + { + .baseHP = 75, + .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, + .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, + PALETTES(Armaldo), + ICON(Armaldo, 2), + .footprint = gMonFootprint_Armaldo, + LEARNSETS(Armaldo), + }, +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS + [SPECIES_FEEBAS] = + { + .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_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_OBLIVIOUS, ABILITY_ADAPTABILITY }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(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_MILOTIC] = + { + .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_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_MARVEL_SCALE, ABILITY_COMPETITIVE, ABILITY_CUTE_CHARM }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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 }, \ + .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, + PALETTES(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, + PALETTES(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, + PALETTES(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, + PALETTES(CastformSnowy), + ICON(CastformSnowy, 0), + }, +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON + [SPECIES_KECLEON] = + { + .baseHP = 60, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 120, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 200, + .expYield = 154, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_COLOR_CHANGE, ABILITY_NONE, ABILITY_PROTEAN }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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, + .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, + PALETTES(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, \ + .speciesName = _("Banette"), \ + .natDexNum = NATIONAL_DEX_BANETTE, \ + .categoryName = _("Marionette"), \ + .footprint = gMonFootprint_Banette, \ + LEARNSETS(Banette), \ + .formSpeciesIdTable = sBanetteFormSpeciesIdTable, \ + .formChangeTable = sBanetteFormChangeTable + + [SPECIES_BANETTE] = + { + BANETTE_MISC_INFO, + .baseHP = 64, + .baseAttack = 115, + .baseDefense = 65, + .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, + BACK_PIC(Banette, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTES(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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_FRISK }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Duskull), + ICON(Duskull, 0), + .footprint = gMonFootprint_Duskull, + LEARNSETS(Duskull), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_DUSCLOPS}), + }, + + [SPECIES_DUSCLOPS] = + { + .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 = 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, + .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, + PALETTES(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, + .baseAttack = 100, + .baseDefense = 135, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 135, + .types = { TYPE_GHOST, TYPE_GHOST }, + .catchRate = 45, + .expYield = 236, + .evYield_Defense = 1, + .evYield_SpDefense = 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_PRESSURE, ABILITY_NONE, ABILITY_FRISK }, + .bodyColor = BODY_COLOR_BLACK, + .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 = 4, + .frontAnimFrames = sAnims_Dusknoir, + .frontAnimId = ANIM_H_SLIDE, + .enemyMonElevation = 6, + BACK_PIC(Dusknoir, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTES(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 = 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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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 = 45, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 50, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 120, + .expYield = 57, + .evYield_SpAttack = 1, + .itemRare = ITEM_CLEANSE_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 15, + .frontAnimFrames = sAnims_Chingling, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Chingling, 48, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTES(Chingling), + ICON(Chingling, 1), + .footprint = gMonFootprint_Chingling, + LEARNSETS(Chingling), + .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_CHIMECHO}), + }, +#endif //P_GEN_4_CROSS_EVOS + + [SPECIES_CHIMECHO] = + { + .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, + .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, + .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, + PALETTES(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_ABSOL] = + { + 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, + PALETTES(Absol), + ICON(Absol, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_ABSOL_MEGA] = + { + 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, + PALETTES(AbsolMega), + ICON(AbsolMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT + [SPECIES_SNORUNT] = + { + .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 = 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, + .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, + PALETTES(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, \ + .speciesName = _("Glalie"), \ + .natDexNum = NATIONAL_DEX_GLALIE, \ + .categoryName = _("Face"), \ + .footprint = gMonFootprint_Glalie, \ + LEARNSETS(Glalie), \ + .formSpeciesIdTable = sGlalieFormSpeciesIdTable, \ + .formChangeTable = sGlalieFormChangeTable + + [SPECIES_GLALIE] = + { + GLALIE_MISC_INFO, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 80, + .baseSpAttack = 80, + .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, + PALETTES(Glalie), + ICON(Glalie, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_GLALIE_MEGA] = + { + 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, + PALETTES(GlalieMega), + ICON(GlalieMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GEN_4_CROSS_EVOS + [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, + .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, + .enemyMonElevation = 7, + BACK_PIC(Froslass, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(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 = 70, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 55, + .baseSpDefense = 50, + .types = { TYPE_ICE, TYPE_WATER }, + .catchRate = 255, + .expYield = 58, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .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, + .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, + PALETTES(Spheal), + ICON(Spheal, 2), + .footprint = gMonFootprint_Spheal, + LEARNSETS(Spheal), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEALEO}), + }, + + [SPECIES_SEALEO] = + { + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD }, + .abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Sealeo), + ICON(Sealeo, 2), + .footprint = gMonFootprint_Sealeo, + LEARNSETS(Sealeo), + .evolutions = EVOLUTION({EVO_LEVEL, 44, SPECIES_WALREIN}), + }, + + [SPECIES_WALREIN] = + { + .baseHP = 110, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 65, + .baseSpAttack = 95, + .baseSpDefense = 90, + .types = { TYPE_ICE, TYPE_WATER }, + .catchRate = 45, + .expYield = 239, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .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, + .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, + PALETTES(Walrein), + ICON(Walrein, 0), + .footprint = gMonFootprint_Walrein, + LEARNSETS(Walrein), + }, +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL + [SPECIES_CLAMPERL] = + { + .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, + .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, + PALETTES(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}), + }, + + [SPECIES_HUNTAIL] = + { + .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, + .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, + PALETTES(Huntail), + ICON(Huntail, 0), + .footprint = gMonFootprint_Huntail, + LEARNSETS(Huntail), + }, + + [SPECIES_GOREBYSS] = + { + .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_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Gorebyss), + ICON(Gorebyss, 0), + .footprint = gMonFootprint_Gorebyss, + LEARNSETS(Gorebyss), + }, +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH + [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 }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 8, + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION }, + .bodyColor = BODY_COLOR_PINK, + .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 = 14, + .frontAnimFrames = sAnims_Luvdisc, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Luvdisc, 40, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SPRING_REPEATED, + PALETTES(Luvdisc), + ICON(Luvdisc, 0), + .footprint = gMonFootprint_Luvdisc, + LEARNSETS(Luvdisc), + }, +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON + [SPECIES_BAGON] = + { + .baseHP = 45, + .baseAttack = 75, + .baseDefense = 60, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 30, + .types = { TYPE_DRAGON, TYPE_DRAGON }, + .catchRate = 45, + .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, + .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, + PALETTES(Bagon), + ICON(Bagon, 0), + .footprint = gMonFootprint_Bagon, + LEARNSETS(Bagon), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SHELGON}), + }, + + [SPECIES_SHELGON] = + { + .baseHP = 65, + .baseAttack = 95, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 50, + .types = { TYPE_DRAGON, TYPE_DRAGON }, + .catchRate = 45, + .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, + .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, + PALETTES(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, \ + .speciesName = _("Salamence"), \ + .natDexNum = NATIONAL_DEX_SALAMENCE, \ + .categoryName = _("Dragon"), \ + .footprint = gMonFootprint_Salamence, \ + LEARNSETS(Salamence), \ + .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, \ + .formChangeTable = sSalamenceFormChangeTable + + [SPECIES_SALAMENCE] = + { + 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, + PALETTES(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, + PALETTES(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, + .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, + PALETTES(Beldum), + ICON(Beldum, 0), + .footprint = gMonFootprint_Beldum, + LEARNSETS(Beldum), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_METANG}), + }, + + [SPECIES_METANG] = + { + .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, + .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, + PALETTES(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, \ + .speciesName = _("Metagross"), \ + .natDexNum = NATIONAL_DEX_METAGROSS, \ + .categoryName = _("Iron Leg"), \ + .footprint = gMonFootprint_Metagross, \ + LEARNSETS(Metagross), \ + .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, \ + .formChangeTable = sMetagrossFormChangeTable + + [SPECIES_METAGROSS] = + { + 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, + PALETTES(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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_ICE_BODY }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Regice), + ICON(Regice, 0), + .footprint = gMonFootprint_Regice, + LEARNSETS(Regice), + }, +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL + [SPECIES_REGISTEEL] = + { + .baseHP = 80, + .baseAttack = 75, + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .speciesName = _("Latias"), \ + .natDexNum = NATIONAL_DEX_LATIAS, \ + .categoryName = _("Eon"), \ + .footprint = gMonFootprint_Latias, \ + LEARNSETS(Latias), \ + .formSpeciesIdTable = sLatiasFormSpeciesIdTable, \ + .formChangeTable = sLatiasFormChangeTable, \ + .isLegendary = TRUE + + [SPECIES_LATIAS] = + { + 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, + PALETTES(Latias), + ICON(Latias, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_LATIAS_MEGA] = + { + LATIAS_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .isLegendary = TRUE, \ + .speciesName = _("Latios"), \ + .natDexNum = NATIONAL_DEX_LATIOS, \ + .categoryName = _("Eon"), \ + .footprint = gMonFootprint_Latios, \ + LEARNSETS(Latios), \ + .formSpeciesIdTable = sLatiosFormSpeciesIdTable, \ + .formChangeTable = sLatiosFormChangeTable + + [SPECIES_LATIOS] = + { + 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, + PALETTES(Latios), + ICON(Latios, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_LATIOS_MEGA] = + { + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .bodyColor = BODY_COLOR_BLUE, \ + .isLegendary = TRUE, \ + .speciesName = _("Kyogre"), \ + .natDexNum = NATIONAL_DEX_KYOGRE, \ + .categoryName = _("Sea Basin"), \ + .footprint = gMonFootprint_Kyogre, \ + LEARNSETS(Kyogre), \ + .formSpeciesIdTable = sKyogreFormSpeciesIdTable, \ + .formChangeTable = sKyogreFormChangeTable + + [SPECIES_KYOGRE] = + { + 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, + PALETTES(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, + PALETTES(KyogrePrimal), + ICON(KyogrePrimal, 0), + .isPrimalReversion = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .bodyColor = BODY_COLOR_RED, \ + .isLegendary = TRUE, \ + .speciesName = _("Groudon"), \ + .cryId = CRY_GROUDON, \ + .natDexNum = NATIONAL_DEX_GROUDON, \ + .categoryName = _("Continent"), \ + .footprint = gMonFootprint_Groudon, \ + LEARNSETS(Groudon), \ + .formSpeciesIdTable = sGroudonFormSpeciesIdTable, \ + .formChangeTable = sGroudonFormChangeTable + + [SPECIES_GROUDON] = + { + 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, + PALETTES(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, + PALETTES(GroudonPrimal), + ICON(GroudonPrimal, 0), + .isPrimalReversion = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .bodyColor = BODY_COLOR_GREEN, \ + .speciesName = _("Rayquaza"), \ + .cryId = CRY_RAYQUAZA, \ + .natDexNum = NATIONAL_DEX_RAYQUAZA, \ + .categoryName = _("Sky High"), \ + .footprint = gMonFootprint_Rayquaza, \ + LEARNSETS(Rayquaza), \ + .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, \ + .formChangeTable = sRayquazaFormChangeTable, \ + .isLegendary = TRUE + + [SPECIES_RAYQUAZA] = + { + RAYQUAZA_MISC_INFO, + .baseHP = 105, + .baseAttack = 150, + .baseDefense = 90, + .baseSpeed = 95, + .baseSpAttack = 150, + .baseSpDefense = 90, + .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, + PALETTES(Rayquaza), + ICON(Rayquaza, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_RAYQUAZA_MEGA] = + { + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SERENE_GRACE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED },\ + .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_DEOXYS_NORMAL] = + { + DEOXYS_MISC_INFO, + .baseHP = 50, + .baseAttack = 150, + .baseDefense = 50, + .baseSpeed = 150, + .baseSpAttack = 150, + .baseSpDefense = 50, + .evYield_Attack = 1, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + 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, + PALETTES(DeoxysNormal), + ICON(DeoxysNormal, 0), + LEARNSETS(DeoxysNormal), + .formChangeTable = sDeoxysNormalFormChangeTable, + }, + + [SPECIES_DEOXYS_ATTACK] = + { + DEOXYS_MISC_INFO, + .baseHP = 50, + .baseAttack = 180, + .baseDefense = 20, + .baseSpeed = 150, + .baseSpAttack = 180, + .baseSpDefense = 20, + .evYield_Attack = 2, + .evYield_SpAttack = 1, + 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, + PALETTES(DeoxysAttack), + ICON(DeoxysAttack, 0), + LEARNSETS(DeoxysAttack), + .formChangeTable = sDeoxysAttackFormChangeTable, + }, + + [SPECIES_DEOXYS_DEFENSE] = + { + DEOXYS_MISC_INFO, + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 160, + .baseSpeed = 90, + .baseSpAttack = 70, + .baseSpDefense = 160, + .evYield_Defense = 2, + .evYield_SpDefense = 1, + 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, + PALETTES(DeoxysDefense), + ICON(DeoxysDefense, 0), + LEARNSETS(DeoxysDefense), + .formChangeTable = sDeoxysDefenseFormChangeTable, + }, + + [SPECIES_DEOXYS_SPEED] = + { + DEOXYS_MISC_INFO, + .baseHP = 50, + .baseAttack = 95, + .baseDefense = 90, + .baseSpeed = 180, + .baseSpAttack = 95, + .baseSpDefense = 90, + .evYield_Speed = 3, + .noFlip = TRUE, + 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, + PALETTES(DeoxysSpeed), + ICON(DeoxysSpeed, 0), + LEARNSETS(DeoxysSpeed), + .formChangeTable = sDeoxysSpeedFormChangeTable, + }, +#endif //P_FAMILY_DEOXYS + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_4.h b/src/data/pokemon/species_info/gen_4.h new file mode 100644 index 0000000000..fd2f008cd5 --- /dev/null +++ b/src/data/pokemon/species_info/gen_4.h @@ -0,0 +1,4542 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen4[] = +{ +#endif + +#if P_FAMILY_TURTWIG + [SPECIES_TURTWIG] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Turtwig), + ICON(Turtwig, 1), + .footprint = gMonFootprint_Turtwig, + LEARNSETS(Turtwig), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_GROTLE}), + }, + + [SPECIES_GROTLE] = + { + .baseHP = 75, + .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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Grotle), + ICON(Grotle, 1), + .footprint = gMonFootprint_Grotle, + LEARNSETS(Grotle), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_TORTERRA}), + }, + + [SPECIES_TORTERRA] = + { + .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_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, + PALETTES(Torterra), + ICON(Torterra, 1), + .footprint = gMonFootprint_Torterra, + LEARNSETS(Torterra), + }, +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR + [SPECIES_CHIMCHAR] = + { + .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_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, + PALETTES(Chimchar), + ICON(Chimchar, 1), + .footprint = gMonFootprint_Chimchar, + LEARNSETS(Chimchar), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_MONFERNO}), + }, + + [SPECIES_MONFERNO] = + { + .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_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, + PALETTES(Monferno), + ICON(Monferno, 0), + .footprint = gMonFootprint_Monferno, + LEARNSETS(Monferno), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_INFERNAPE}), + }, + + [SPECIES_INFERNAPE] = + { + .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_FIELD, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Infernape), + ICON(Infernape, 0), + .footprint = gMonFootprint_Infernape, + LEARNSETS(Infernape), + }, +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP + [SPECIES_PIPLUP] = + { + .baseHP = 53, + .baseAttack = 51, + .baseDefense = 53, + .baseSpeed = 40, + .baseSpAttack = 61, + .baseSpDefense = 56, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 63, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .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, + .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, + PALETTES(Piplup), + ICON(Piplup, 0), + .footprint = gMonFootprint_Piplup, + LEARNSETS(Piplup), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_PRINPLUP}), + }, + + [SPECIES_PRINPLUP] = + { + .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_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, + .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, + PALETTES(Prinplup), + ICON(Prinplup, 0), + .footprint = gMonFootprint_Prinplup, + LEARNSETS(Prinplup), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMPOLEON}), + }, + + [SPECIES_EMPOLEON] = + { + .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_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, + .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, + PALETTES(Empoleon), + ICON(Empoleon, 0), + .footprint = gMonFootprint_Empoleon, + LEARNSETS(Empoleon), + }, +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY + [SPECIES_STARLY] = + { + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 30, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_NORMAL, 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_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RECKLESS }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Starly), + ICON(Starly, 0), + .footprint = gMonFootprint_Starly, + LEARNSETS(Starly), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_STARAVIA}), + }, + + [SPECIES_STARAVIA] = + { + .baseHP = 55, + .baseAttack = 75, + .baseDefense = 50, + .baseSpeed = 80, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_NORMAL, TYPE_FLYING }, + .catchRate = 120, + .expYield = 119, + .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_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Staravia), + ICON(Staravia, 0), + .footprint = gMonFootprint_Staravia, + LEARNSETS(Staravia), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_STARAPTOR}), + }, + + [SPECIES_STARAPTOR] = + { + .baseHP = 85, + .baseAttack = 120, + .baseDefense = 70, + .baseSpeed = 100, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 60 : 50, + .types = { TYPE_NORMAL, TYPE_FLYING }, + .catchRate = 45, + .expYield = 218, + .evYield_Attack = 3, + .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, + .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, + BACK_PIC(Staraptor, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTES(Staraptor), + ICON(Staraptor, 0), + .footprint = gMonFootprint_Staraptor, + LEARNSETS(Staraptor), + }, +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF + [SPECIES_BIDOOF] = + { + .baseHP = 59, + .baseAttack = 45, + .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_WATER_1, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Bidoof), + ICON(Bidoof, 2), + .footprint = gMonFootprint_Bidoof, + LEARNSETS(Bidoof), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_BIBAREL}), + }, + + [SPECIES_BIBAREL] = + { + .baseHP = 79, + .baseAttack = 85, + .baseDefense = 60, + .baseSpeed = 71, + .baseSpAttack = 55, + .baseSpDefense = 60, + .types = { TYPE_NORMAL, TYPE_WATER }, + .catchRate = 127, + .expYield = 144, + .evYield_Attack = 2, + .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 }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Bibarel), + ICON(Bibarel, 2), + .footprint = gMonFootprint_Bibarel, + LEARNSETS(Bibarel), + }, +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT + [SPECIES_KRICKETOT] = + { + .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_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_RUN_AWAY }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Kricketot), + ICON(Kricketot, 2), + .footprint = gMonFootprint_Kricketot, + LEARNSETS(Kricketot), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_KRICKETUNE}), + }, + + [SPECIES_KRICKETUNE] = + { + .baseHP = 77, + .baseAttack = 85, + .baseDefense = 51, + .baseSpeed = 65, + .baseSpAttack = 55, + .baseSpDefense = 51, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 45, + .expYield = 134, + .evYield_Attack = 2, + .itemRare = ITEM_METRONOME, + .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, + .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, + PALETTES(Kricketune), + ICON(Kricketune, 2), + .footprint = gMonFootprint_Kricketune, + LEARNSETS(Kricketune), + }, +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX + [SPECIES_SHINX] = + { + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Shinx), + ICON(Shinx, 0), + .footprint = gMonFootprint_Shinx, + LEARNSETS(Shinx), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_LUXIO}), + }, + + [SPECIES_LUXIO] = + { + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 49, + .baseSpeed = 60, + .baseSpAttack = 60, + .baseSpDefense = 49, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 120, + .expYield = 127, + .evYield_Attack = 2, + .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, + .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, + PALETTES(Luxio), + ICON(Luxio, 0), + .footprint = gMonFootprint_Luxio, + LEARNSETS(Luxio), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_LUXRAY}), + }, + + [SPECIES_LUXRAY] = + { + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 79, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 79, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 45, + .expYield = 235, + .evYield_Attack = 3, + .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, + .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, + PALETTES(Luxray), + ICON(Luxray, 0), + .footprint = gMonFootprint_Luxray, + LEARNSETS(Luxray), + }, +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS + [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, + .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, + .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, + PALETTES(Cranidos), + ICON(Cranidos, 0), + .footprint = gMonFootprint_Cranidos, + LEARNSETS(Cranidos), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_RAMPARDOS}), + }, + + [SPECIES_RAMPARDOS] = + { + .baseHP = 97, + .baseAttack = 165, + .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, + .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, + PALETTES(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, + .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, + PALETTES(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, + .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, + PALETTES(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 }, \ + .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, \ + .enemyMonElevation = 10, \ + .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, + PALETTES(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, + PALETTES(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, + PALETTES(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 }, \ + .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, \ + .enemyMonElevation = 8, \ + .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), + PALETTES(WormadamPlantCloak), + ICON(WormadamPlantCloak, 1), + LEARNSETS(WormadamPlantCloak), + }, + + [SPECIES_WORMADAM_SANDY_CLOAK] = + { + 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), + PALETTES(WormadamSandyCloak), + ICON(WormadamSandyCloak, 1), + LEARNSETS(WormadamSandyCloak), + }, + + [SPECIES_WORMADAM_TRASH_CLOAK] = + { + 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), + PALETTES(WormadamTrashCloak), + ICON(WormadamTrashCloak, 0), + LEARNSETS(WormadamTrashCloak), + }, + + [SPECIES_MOTHIM] = + { + .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, + .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, + .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, + PALETTES(Mothim), + ICON(Mothim, 0), + .footprint = gMonFootprint_Mothim, + LEARNSETS(Mothim), + }, +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE + [SPECIES_COMBEE] = + { + .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), + .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, + .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 = 15, + BACK_PIC(Combee, 64, 48), + .backPicYOffset = 22, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(Combee), + PALETTE_FEMALE(Combee), + ICON(Combee, 0), + .footprint = gMonFootprint_Combee, + LEARNSETS(Combee), + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 21, SPECIES_VESPIQUEN}), + }, + + [SPECIES_VESPIQUEN] = + { + .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 = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Vespiquen), + ICON(Vespiquen, 0), + .footprint = gMonFootprint_Vespiquen, + LEARNSETS(Vespiquen), + }, +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU + [SPECIES_PACHIRISU] = + { + .baseHP = 60, + .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 = 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, + .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, + PALETTES(Pachirisu), + ICON(Pachirisu, 0), + .footprint = gMonFootprint_Pachirisu, + LEARNSETS(Pachirisu), + }, +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL + [SPECIES_BUIZEL] = + { + .baseHP = 55, + .baseAttack = 65, + .baseDefense = 35, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 30, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 190, + .expYield = 66, + .evYield_Speed = 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, + .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, + PALETTES(Buizel), + ICON(Buizel, 0), + .footprint = gMonFootprint_Buizel, + LEARNSETS(Buizel), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_FLOATZEL}), + }, + + [SPECIES_FLOATZEL] = + { + .baseHP = 85, + .baseAttack = 105, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 85, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 75, + .expYield = 173, + .evYield_Speed = 2, + .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, + .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, + PALETTES(Floatzel), + ICON(Floatzel, 0), + .footprint = gMonFootprint_Floatzel, + LEARNSETS(Floatzel), + }, +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI + [SPECIES_CHERUBI] = + { + .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, + .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, + .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, + PALETTES(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 }, \ + .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, + PALETTES(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, + PALETTES(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 }, \ + .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), + PALETTES(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), + PALETTES(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 }, \ + .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), + PALETTES(GastrodonWestSea), + ICON(GastrodonWestSea, 0), + }, + + [SPECIES_GASTRODON_EAST_SEA] = + { + 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), + PALETTES(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_FLUCTUATING, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Drifloon), + ICON(Drifloon, 2), + .footprint = gMonFootprint_Drifloon, + LEARNSETS(Drifloon), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_DRIFBLIM}), + }, + + [SPECIES_DRIFBLIM] = + { + .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 = 30, + .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, + .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, + PALETTES(Drifblim), + ICON(Drifblim, 2), + .footprint = gMonFootprint_Drifblim, + LEARNSETS(Drifblim), + }, +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY + [SPECIES_BUNEARY] = + { + .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 = 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, + .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, + PALETTES(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, \ + .speciesName = _("Lopunny"), \ + .natDexNum = NATIONAL_DEX_LOPUNNY, \ + .categoryName = _("Rabbit"), \ + .footprint = gMonFootprint_Lopunny, \ + LEARNSETS(Lopunny), \ + .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, \ + .formChangeTable = sLopunnyFormChangeTable + + [SPECIES_LOPUNNY] = + { + 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, + PALETTES(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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_LIMBER, ABILITY_OWN_TEMPO, ABILITY_KEEN_EYE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Purugly), + ICON(Purugly, 0), + .footprint = gMonFootprint_Purugly, + LEARNSETS(Purugly), + }, +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY + [SPECIES_STUNKY] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Stunky), + ICON(Stunky, 2), + .footprint = gMonFootprint_Stunky, + LEARNSETS(Stunky), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SKUNTANK}), + }, + + [SPECIES_SKUNTANK] = + { + .baseHP = 103, + .baseAttack = 93, + .baseDefense = 67, + .baseSpeed = 84, + .baseSpAttack = 71, + .baseSpDefense = 61, + .types = { TYPE_POISON, TYPE_DARK }, + .catchRate = 60, + .expYield = 168, + .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_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Skuntank), + ICON(Skuntank, 2), + .footprint = gMonFootprint_Skuntank, + LEARNSETS(Skuntank), + }, +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR + [SPECIES_BRONZOR] = + { + .baseHP = 57, + .baseAttack = 24, + .baseDefense = 86, + .baseSpeed = 23, + .baseSpAttack = 24, + .baseSpDefense = 86, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .catchRate = 255, + .expYield = 60, + .evYield_Defense = 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_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GREEN, + .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, + .enemyMonElevation = 9, + BACK_PIC(Bronzor, 40, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(Bronzor), + ICON(Bronzor, 0), + .footprint = gMonFootprint_Bronzor, + LEARNSETS(Bronzor), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_BRONZONG}), + }, + + [SPECIES_BRONZONG] = + { + .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, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 7, + BACK_PIC(Bronzong, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTES(Bronzong), + ICON(Bronzong, 0), + .footprint = gMonFootprint_Bronzong, + LEARNSETS(Bronzong), + }, +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT + [SPECIES_CHATOT] = + { + .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, + .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, + PALETTES(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_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INFILTRATOR }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Spiritomb), + ICON(Spiritomb, 5), + .footprint = gMonFootprint_Spiritomb, + LEARNSETS(Spiritomb), + }, +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE + [SPECIES_GIBLE] = + { + .baseHP = 58, + .baseAttack = 70, + .baseDefense = 45, + .baseSpeed = 42, + .baseSpAttack = 40, + .baseSpDefense = 45, + .types = { TYPE_DRAGON, TYPE_GROUND }, + .catchRate = 45, + .expYield = 60, + .evYield_Attack = 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 }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Gible), + ICON(Gible, 0), + .footprint = gMonFootprint_Gible, + LEARNSETS(Gible), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GABITE}), + }, + + [SPECIES_GABITE] = + { + .baseHP = 68, + .baseAttack = 90, + .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 = 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, + .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, + PALETTES(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, \ + .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_GARCHOMP] = + { + 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, + PALETTES(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, + PALETTES(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_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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, \ + .speciesName = _("Lucario"), \ + .natDexNum = NATIONAL_DEX_LUCARIO, \ + .categoryName = _("Aura"), \ + .footprint = gMonFootprint_Lucario, \ + LEARNSETS(Lucario), \ + .formSpeciesIdTable = sLucarioFormSpeciesIdTable, \ + .formChangeTable = sLucarioFormChangeTable + + [SPECIES_LUCARIO] = + { + 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, + PALETTES(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, + PALETTES(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, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Hippopotas), + PALETTE_FEMALE(Hippopotas), + 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_HIPPOWDON] = + { + .baseHP = 108, + .baseAttack = 112, + .baseDefense = 118, + .baseSpeed = 47, + .baseSpAttack = 68, + .baseSpDefense = 72, + .types = { TYPE_GROUND, TYPE_GROUND }, + .catchRate = 60, + .expYield = 184, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Hippowdon), + PALETTE_FEMALE(Hippowdon), + 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 = 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, + .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 }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Skorupi), + ICON(Skorupi, 0), + .footprint = gMonFootprint_Skorupi, + LEARNSETS(Skorupi), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_DRAPION}), + }, + + [SPECIES_DRAPION] = + { + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 110, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 75, + .types = { TYPE_POISON, TYPE_DARK }, + .catchRate = 45, + .expYield = 175, + .evYield_Defense = 2, + .itemRare = ITEM_POISON_BARB, + .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 }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Drapion), + ICON(Drapion, 2), + .footprint = gMonFootprint_Drapion, + LEARNSETS(Drapion), + }, +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK + [SPECIES_CROAGUNK] = + { + .baseHP = 48, + .baseAttack = 61, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 61, + .baseSpDefense = 40, + .types = { TYPE_POISON, TYPE_FIGHTING }, + .catchRate = 140, + .expYield = 60, + .evYield_Attack = 1, + .itemRare = ITEM_BLACK_SLUDGE, + .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, + .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, + PALETTES(Croagunk), + ICON(Croagunk, 0), + .footprint = gMonFootprint_Croagunk, + LEARNSETS(Croagunk), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_TOXICROAK}), + }, + + [SPECIES_TOXICROAK] = + { + .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, + .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, + .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, + PALETTES(Toxicroak), + ICON(Toxicroak, 0), + .footprint = gMonFootprint_Toxicroak, + LEARNSETS(Toxicroak), + }, +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE + [SPECIES_CARNIVINE] = + { + .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, + .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, + .enemyMonElevation = 8, + BACK_PIC(Carnivine, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTES(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, + .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, + .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, + PALETTES(Finneon), + ICON(Finneon, 0), + .footprint = gMonFootprint_Finneon, + LEARNSETS(Finneon), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_LUMINEON}), + }, + + [SPECIES_LUMINEON] = + { + .baseHP = 69, + .baseAttack = 69, + .baseDefense = 76, + .baseSpeed = 91, + .baseSpAttack = 69, + .baseSpDefense = 86, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 75, + .expYield = 161, + .evYield_Speed = 2, + .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, + .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, + PALETTES(Lumineon), + ICON(Lumineon, 0), + .footprint = gMonFootprint_Lumineon, + LEARNSETS(Lumineon), + }, +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER + [SPECIES_SNOVER] = + { + .baseHP = 60, + .baseAttack = 62, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 62, + .baseSpDefense = 60, + .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_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS }, + .abilities = { ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(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, \ + .speciesName = _("Abomasnow"), \ + .natDexNum = NATIONAL_DEX_ABOMASNOW, \ + .categoryName = _("Frost Tree"), \ + .footprint = gMonFootprint_Abomasnow, \ + LEARNSETS(Abomasnow), \ + .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, \ + .formChangeTable = sAbomasnowFormChangeTable + + [SPECIES_ABOMASNOW] = + { + 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, + PALETTES(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, + PALETTES(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_ROTOM] = + { + ROTOM_MISC_INFO, + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 77, + .baseSpeed = 91, + .baseSpAttack = 95, + .baseSpDefense = 77, + .types = { TYPE_ELECTRIC, TYPE_GHOST }, + .expYield = 154, + .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, + PALETTES(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 }, + 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, + PALETTES(RotomHeat), + ICON(RotomHeat, 0), + }, + + [SPECIES_ROTOM_WASH] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_WATER }, + .noFlip = TRUE, + 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, + PALETTES(RotomWash), + ICON(RotomWash, 0), + }, + + [SPECIES_ROTOM_FROST] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_ICE }, + 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, + PALETTES(RotomFrost), + ICON(RotomFrost, 5), + }, + + [SPECIES_ROTOM_FAN] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_FLYING }, + 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, + PALETTES(RotomFan), + ICON(RotomFan, 0), + }, + + [SPECIES_ROTOM_MOW] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_GRASS }, + 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 = 3, + .frontAnimFrames = sAnims_RotomMow, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + .enemyMonElevation = 6, + BACK_PIC(RotomMow, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTES(RotomMow), + ICON(RotomMow, 0), + }, +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE + [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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Mesprit), + ICON(Mesprit, 0), + .footprint = gMonFootprint_Mesprit, + LEARNSETS(Mesprit), + }, +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF + [SPECIES_AZELF] = + { + .baseHP = 75, + .baseAttack = 125, + .baseDefense = 70, + .baseSpeed = 115, + .baseSpAttack = 125, + .baseSpDefense = 70, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 3, + .expYield = 261, + .evYield_Attack = 2, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 140, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .speciesName = _("Dialga"), \ + .cryId = CRY_DIALGA, \ + .natDexNum = NATIONAL_DEX_DIALGA, \ + .categoryName = _("Temporal"), \ + .footprint = gMonFootprint_Dialga, \ + LEARNSETS(Dialga), \ + .formSpeciesIdTable = sDialgaFormSpeciesIdTable, \ + .formChangeTable = sDialgaFormChangeTable, \ + .isLegendary = TRUE + + [SPECIES_DIALGA] = + { + 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, + PALETTES(Dialga), + ICON(Dialga, 2), + }, + + [SPECIES_DIALGA_ORIGIN] = + { + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .speciesName = _("Palkia"), \ + .cryId = CRY_PALKIA, \ + .natDexNum = NATIONAL_DEX_PALKIA, \ + .categoryName = _("Spatial"), \ + .footprint = gMonFootprint_Palkia, \ + LEARNSETS(Palkia), \ + .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, \ + .formChangeTable = sPalkiaFormChangeTable, \ + .isLegendary = TRUE + + [SPECIES_PALKIA] = + { + 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, + PALETTES(Palkia), + ICON(Palkia, 2), + }, + + [SPECIES_PALKIA_ORIGIN] = + { + 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, + PALETTES(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 = 10, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Heatran), + ICON(Heatran, 0), + .footprint = gMonFootprint_Heatran, + LEARNSETS(Heatran), + }, +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS + [SPECIES_REGIGIGAS] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SLOW_START, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .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, + PALETTES(GiratinaAltered), + ICON(GiratinaAltered, 0), + }, + + [SPECIES_GIRATINA_ORIGIN] = + { + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Cresselia), + ICON(Cresselia, 0), + .footprint = gMonFootprint_Cresselia, + LEARNSETS(Cresselia), + }, +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY + [SPECIES_PHIONE] = + { + .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_WATER_1, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_HYDRATION, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 12, + .frontAnimFrames = sAnims_Phione, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(Phione, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(Phione), + ICON(Phione, 0), + .footprint = gMonFootprint_Phione, + LEARNSETS(Phione), + }, + + [SPECIES_MANAPHY] = + { + .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_WATER_1, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_HYDRATION, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 13, + .frontAnimFrames = sAnims_Manaphy, + .frontAnimId = ANIM_SWING_CONVEX, + .enemyMonElevation = 10, + BACK_PIC(Manaphy, 64, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(Manaphy), + ICON(Manaphy, 0), + .footprint = gMonFootprint_Manaphy, + LEARNSETS(Manaphy), + }, +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI + [SPECIES_DARKRAI] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BAD_DREAMS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_GREEN, \ + .speciesName = _("Shaymin"), \ + .natDexNum = NATIONAL_DEX_SHAYMIN, \ + .categoryName = _("Gratitude"), \ + .footprint = gMonFootprint_Shaymin, \ + .formSpeciesIdTable = sShayminFormSpeciesIdTable, \ + .formChangeTable = sShayminFormChangeTable, \ + .isMythical = TRUE + + [SPECIES_SHAYMIN_LAND] = + { + 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 }, + .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, + PALETTES(ShayminLand), + ICON(ShayminLand, 1), + LEARNSETS(ShayminLand), + }, + + [SPECIES_SHAYMIN_SKY] = + { + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_MULTITYPE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .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, \ + PALETTES(Arceus ##typeName), \ + ICON(Arceus, 1), \ + .footprint = gMonFootprint_Arceus, \ + LEARNSETS(Arceus), \ + .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ + .formChangeTable = sArceusFormChangeTable, \ + .isMythical = TRUE, \ + } + + [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 + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_5.h b/src/data/pokemon/species_info/gen_5.h new file mode 100644 index 0000000000..7553f1c17a --- /dev/null +++ b/src/data/pokemon/species_info/gen_5.h @@ -0,0 +1,8808 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen5[] = +{ +#endif + +#if P_FAMILY_VICTINI + [SPECIES_VICTINI] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_VICTORY_STAR, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Snivy), + ICON(Snivy, 1), + .footprint = gMonFootprint_Snivy, + LEARNSETS(Snivy), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_SERVINE}), + }, + + [SPECIES_SERVINE] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Servine), + ICON(Servine, 1), + .footprint = gMonFootprint_Servine, + LEARNSETS(Servine), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SERPERIOR}), + }, + + [SPECIES_SERPERIOR] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Serperior), + ICON(Serperior, 1), + .footprint = gMonFootprint_Serperior, + LEARNSETS(Serperior), + }, +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG + [SPECIES_TEPIG] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Tepig), + ICON(Tepig, 0), + .footprint = gMonFootprint_Tepig, + LEARNSETS(Tepig), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_PIGNITE}), + }, + + [SPECIES_PIGNITE] = + { + .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, + .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, + PALETTES(Pignite), + ICON(Pignite, 0), + .footprint = gMonFootprint_Pignite, + LEARNSETS(Pignite), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMBOAR}), + }, + + [SPECIES_EMBOAR] = + { + .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, + .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, + PALETTES(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 = 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 }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Oshawott), + ICON(Oshawott, 0), + .footprint = gMonFootprint_Oshawott, + LEARNSETS(Oshawott), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DEWOTT}), + }, + + [SPECIES_DEWOTT] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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, \ + .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_SAMUROTT] = + { + 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, + PALETTES(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( + "Hard of heart and deft of blade,\n" + "this rare form of Samurott is a\n" + "product of the Pokémon's evolution in the\n" + "region of Hisui."), + 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, + PALETTES(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 = 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, + .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, + PALETTES(Patrat), + ICON(Patrat, 2), + .footprint = gMonFootprint_Patrat, + LEARNSETS(Patrat), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_WATCHOG}), + }, + + [SPECIES_WATCHOG] = + { + .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, + .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, + PALETTES(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, + .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, + PALETTES(Lillipup), + ICON(Lillipup, 2), + .footprint = gMonFootprint_Lillipup, + LEARNSETS(Lillipup), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_HERDIER}), + }, + + [SPECIES_HERDIER] = + { + .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, + .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, + PALETTES(Herdier), + ICON(Herdier, 2), + .footprint = gMonFootprint_Herdier, + LEARNSETS(Herdier), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_STOUTLAND}), + }, + + [SPECIES_STOUTLAND] = + { + .baseHP = 85, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 110 : 100, + .baseDefense = 90, + .baseSpeed = 80, + .baseSpAttack = 45, + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Stoutland), + ICON(Stoutland, 2), + .footprint = gMonFootprint_Stoutland, + LEARNSETS(Stoutland), + }, +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN + [SPECIES_PURRLOIN] = + { + .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, + .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, + PALETTES(Purrloin), + ICON(Purrloin, 0), + .footprint = gMonFootprint_Purrloin, + LEARNSETS(Purrloin), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LIEPARD}), + }, + + [SPECIES_LIEPARD] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Liepard), + ICON(Liepard, 0), + .footprint = gMonFootprint_Liepard, + LEARNSETS(Liepard), + }, +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE + [SPECIES_PANSAGE] = + { + .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, + .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, + PALETTES(Pansage), + ICON(Pansage, 1), + .footprint = gMonFootprint_Pansage, + LEARNSETS(Pansage), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SIMISAGE}), + }, + + [SPECIES_SIMISAGE] = + { + .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, + .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, + PALETTES(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_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, + PALETTES(Pansear), + ICON(Pansear, 2), + .footprint = gMonFootprint_Pansear, + LEARNSETS(Pansear), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SIMISEAR}), + }, + + [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, + .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, + PALETTES(Simisear), + ICON(Simisear, 2), + .footprint = gMonFootprint_Simisear, + LEARNSETS(Simisear), + }, +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR + [SPECIES_PANPOUR] = + { + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Panpour), + ICON(Panpour, 2), + .footprint = gMonFootprint_Panpour, + LEARNSETS(Panpour), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_SIMIPOUR}), + }, + + [SPECIES_SIMIPOUR] = + { + .baseHP = 75, + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Simipour), + ICON(Simipour, 2), + .footprint = gMonFootprint_Simipour, + LEARNSETS(Simipour), + }, +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA + [SPECIES_MUNNA] = + { + .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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PINK, + .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 = 16, + .frontAnimFrames = sAnims_Munna, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 7, + BACK_PIC(Munna, 48, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTES(Munna), + ICON(Munna, 0), + .footprint = gMonFootprint_Munna, + LEARNSETS(Munna), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_MUSHARNA}), + }, + + [SPECIES_MUSHARNA] = + { + .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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Musharna), + ICON(Musharna, 0), + .footprint = gMonFootprint_Musharna, + LEARNSETS(Musharna), + }, +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE + [SPECIES_PIDOVE] = + { + .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, + .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, + .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, + PALETTES(Pidove), + ICON(Pidove, 0), + .footprint = gMonFootprint_Pidove, + LEARNSETS(Pidove), + .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_TRANQUILL}), + }, + + [SPECIES_TRANQUILL] = + { + .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, + .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, + .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, + PALETTES(Tranquill), + ICON(Tranquill, 0), + .footprint = gMonFootprint_Tranquill, + LEARNSETS(Tranquill), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_UNFEZANT}), + }, + + [SPECIES_UNFEZANT] = + { + .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 = 220, + .evYield_Attack = 3, + .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_SUPER_LUCK, ABILITY_RIVALRY }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Unfezant), + PALETTE_FEMALE(Unfezant), + ICON(Unfezant, 1), + ICON_FEMALE(Unfezant, 1), + .footprint = gMonFootprint_Unfezant, + LEARNSETS(Unfezant), + }, +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE + [SPECIES_BLITZLE] = + { + .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_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Blitzle), + ICON(Blitzle, 2), + .footprint = gMonFootprint_Blitzle, + LEARNSETS(Blitzle), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_ZEBSTRIKA}), + }, + + [SPECIES_ZEBSTRIKA] = + { + .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_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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, + .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, + PALETTES(Roggenrola), + ICON(Roggenrola, 2), + .footprint = gMonFootprint_Roggenrola, + LEARNSETS(Roggenrola), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLDORE}), + }, + + [SPECIES_BOLDORE] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Boldore), + ICON(Boldore, 0), + .footprint = gMonFootprint_Boldore, + LEARNSETS(Boldore), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GIGALITH}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GIGALITH}), + }, + + [SPECIES_GIGALITH] = + { + .baseHP = 85, + .baseAttack = 135, + .baseDefense = 130, + .baseSpeed = 25, + .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, + .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, + PALETTES(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_FIELD, EGG_GROUP_FLYING }, + .abilities = { ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Woobat), + ICON(Woobat, 0), + .footprint = gMonFootprint_Woobat, + LEARNSETS(Woobat), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SWOOBAT}), + }, + + [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, + .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, + .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 = 10, + BACK_PIC(Swoobat, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTES(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, + PALETTES(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_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, + PALETTES(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 }, \ + .speciesName = _("Audino"), \ + .natDexNum = NATIONAL_DEX_AUDINO, \ + .categoryName = _("Hearing"), \ + .footprint = gMonFootprint_Audino, \ + LEARNSETS(Audino), \ + .formSpeciesIdTable = sAudinoFormSpeciesIdTable, \ + .formChangeTable = sAudinoFormChangeTable + +#if P_FAMILY_AUDINO + [SPECIES_AUDINO] = + { + 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, + PALETTES(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, + PALETTES(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_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 12, + .frontAnimFrames = sAnims_Timburr, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Timburr, 64, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTES(Timburr), + ICON(Timburr, 1), + .footprint = gMonFootprint_Timburr, + LEARNSETS(Timburr), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GURDURR}), + }, + + [SPECIES_GURDURR] = + { + .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, + .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, + .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, + PALETTES(Gurdurr), + ICON(Gurdurr, 1), + .footprint = gMonFootprint_Gurdurr, + LEARNSETS(Gurdurr), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_CONKELDURR}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_CONKELDURR}), + }, + + [SPECIES_CONKELDURR] = + { + .baseHP = 105, + .baseAttack = 140, + .baseDefense = 95, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 227, + .evYield_Attack = 3, + .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_SHEER_FORCE, ABILITY_IRON_FIST }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Conkeldurr), + ICON(Conkeldurr, 1), + .footprint = gMonFootprint_Conkeldurr, + LEARNSETS(Conkeldurr), + }, +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE + [SPECIES_TYMPOLE] = + { + .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 = 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 }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Tympole), + ICON(Tympole, 2), + .footprint = gMonFootprint_Tympole, + LEARNSETS(Tympole), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PALPITOAD}), + }, + + [SPECIES_PALPITOAD] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Palpitoad), + ICON(Palpitoad, 2), + .footprint = gMonFootprint_Palpitoad, + LEARNSETS(Palpitoad), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SEISMITOAD}), + }, + + [SPECIES_SEISMITOAD] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_SWIFT_SWIM, ABILITY_POISON_TOUCH, ABILITY_WATER_ABSORB }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Seismitoad), + ICON(Seismitoad, 0), + .footprint = gMonFootprint_Seismitoad, + LEARNSETS(Seismitoad), + }, +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH + [SPECIES_THROH] = + { + .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 = 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, + .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, + PALETTES(Throh), + ICON(Throh, 0), + .footprint = gMonFootprint_Throh, + LEARNSETS(Throh), + }, +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK + [SPECIES_SAWK] = + { + .baseHP = 75, + .baseAttack = 125, + .baseDefense = 75, + .baseSpeed = 85, + .baseSpAttack = 30, + .baseSpDefense = 75, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 163, + .evYield_Attack = 2, + .itemRare = ITEM_BLACK_BELT, + .genderRatio = MON_MALE, + .eggCycles = 20, + .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 }, + .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, + PALETTES(Sawk), + ICON(Sawk, 0), + .footprint = gMonFootprint_Sawk, + LEARNSETS(Sawk), + }, +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE + [SPECIES_SEWADDLE] = + { + .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, + .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, + PALETTES(Sewaddle), + ICON(Sewaddle, 1), + .footprint = gMonFootprint_Sewaddle, + LEARNSETS(Sewaddle), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_SWADLOON}), + }, + + [SPECIES_SWADLOON] = + { + .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, + .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, + PALETTES(Swadloon), + ICON(Swadloon, 1), + .footprint = gMonFootprint_Swadloon, + LEARNSETS(Swadloon), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_LEAVANNY}), + }, + + [SPECIES_LEAVANNY] = + { + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(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, + .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, + PALETTES(Venipede), + ICON(Venipede, 1), + .footprint = gMonFootprint_Venipede, + LEARNSETS(Venipede), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_WHIRLIPEDE}), + }, + + [SPECIES_WHIRLIPEDE] = + { + .baseHP = 40, + .baseAttack = 55, + .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, + .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, + PALETTES(Whirlipede), + ICON(Whirlipede, 2), + .footprint = gMonFootprint_Whirlipede, + LEARNSETS(Whirlipede), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SCOLIPEDE}), + }, + + [SPECIES_SCOLIPEDE] = + { + .baseHP = 60, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 100 : 90, + .baseDefense = 89, + .baseSpeed = 112, + .baseSpAttack = 55, + .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 = 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, + .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, + PALETTES(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_GRASS, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Cottonee), + ICON(Cottonee, 1), + .footprint = gMonFootprint_Cottonee, + LEARNSETS(Cottonee), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_WHIMSICOTT}), + }, + + [SPECIES_WHIMSICOTT] = + { + .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_GRASS, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Whimsicott), + ICON(Whimsicott, 1), + .footprint = gMonFootprint_Whimsicott, + LEARNSETS(Whimsicott), + }, +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL + [SPECIES_PETILIL] = + { + .baseHP = 45, + .baseAttack = 35, + .baseDefense = 50, + .baseSpeed = 30, + .baseSpAttack = 70, + .baseSpDefense = 50, + .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, + .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, + PALETTES(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, + PALETTES(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 = 0, + .frontAnimFrames = sAnims_LilligantHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(LilligantHisuian, 56, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, \ + .speciesName = _("Basculin"), \ + .cryId = CRY_BASCULIN, \ + .natDexNum = NATIONAL_DEX_BASCULIN, \ + .height = 10, \ + .weight = 180, \ + .pokemonScale = 316, \ + .pokemonOffset = 7, \ + .trainerScale = 257, \ + .trainerOffset = 0, \ + .enemyMonElevation = 6, \ + .footprint = gMonFootprint_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, + PALETTES(BasculinRedStriped), + ICON(BasculinRedStriped, 1), + LEARNSETS(Basculin), + }, + + [SPECIES_BASCULIN_BLUE_STRIPED] = + { + 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, + PALETTES(BasculinBlueStriped), + ICON(BasculinBlueStriped, 0), + LEARNSETS(Basculin), + }, + +#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 = 12, + .frontAnimFrames = sAnims_Basculin, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(BasculinWhiteStriped, 64, 40), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTES(BasculinWhiteStriped), + ICON(BasculinWhiteStriped, 0), + LEARNSETS(BasculinWhiteStriped), + .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, \ + .speciesName = _("Bsculegion"), \ + .cryId = CRY_BASCULEGION, \ + .natDexNum = NATIONAL_DEX_BASCULEGION, \ + .categoryName = _("Big Fish"), \ + .height = 30, \ + .weight = 1100, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontAnimFrames = sAnims_Basculegion, \ + .frontPicYOffset = 0, \ + .enemyMonElevation = 5, \ + .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), + PALETTES(BasculegionMale), + ICON(BasculegionMale, 1), + }, + + [SPECIES_BASCULEGION_FEMALE] = + { + BASCULEGION_MISC_INFO, + .baseHP = 120, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 78, + .baseSpAttack = 100, + .baseSpDefense = 75, + .genderRatio = MON_FEMALE, + .description = COMPOUND_STRING( + "The souls of its comrades cloak its\n" + "body and propel it effortlessly\n" + "through even raging rapids."), + FRONT_PIC(BasculegionFemale, 64, 64), + BACK_PIC(BasculegionFemale, 64, 64), + PALETTES(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 = 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, + .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, + PALETTES(Sandile), + ICON(Sandile, 1), + .footprint = gMonFootprint_Sandile, + LEARNSETS(Sandile), + .evolutions = EVOLUTION({EVO_LEVEL, 29, SPECIES_KROKOROK}), + }, + + [SPECIES_KROKOROK] = + { + .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 = 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, + .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, + PALETTES(Krokorok), + ICON(Krokorok, 1), + .footprint = gMonFootprint_Krokorok, + LEARNSETS(Krokorok), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KROOKODILE}), + }, + + [SPECIES_KROOKODILE] = + { + .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 = 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_RED, + .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, + PALETTES(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 }, \ + .speciesName = _("Darumaka"), \ + .cryId = CRY_DARUMAKA, \ + .natDexNum = NATIONAL_DEX_DARUMAKA, \ + .categoryName = _("Zen Charm"), \ + .footprint = gMonFootprint_Darumaka, \ + .formSpeciesIdTable = sDarumakaFormSpeciesIdTable + + [SPECIES_DARUMAKA] = + { + 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, + PALETTES(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 }, \ + .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_DARMANITAN_STANDARD_MODE] = + { + 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, + PALETTES(DarmanitanStandardMode), + ICON(DarmanitanStandardMode, 0), + }, + + [SPECIES_DARMANITAN_ZEN_MODE] = + { + 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( + "When wounded, it stops moving. It\n" + "goes as still as stone to meditate,\n" + "sharpening its mind and spirit."), + 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, + PALETTES(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( + "The colder they get, the more\n" + "energetic they are. They freeze their\n" + "breath to make snowballs, using them\n" + "as ammo for playful snowball fights."), + .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, + PALETTES(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( + "On days when blizzards blow\n" + "through, it comes down to where people\n" + "live. It stashes food in the snowball on\n" + "its head, taking it home for later."), + 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, + PALETTES(DarmanitanGalarianStandardMode), + ICON(DarmanitanGalarianStandardMode, 0), + }, + + [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = + { + 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( + "Darmanitan takes this form when\n" + "enraged. It won't stop spewing flames\n" + "until its rage has settled, even if\n" + "its body starts to melt."), + 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, + PALETTES(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, + .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, + PALETTES(Maractus), + ICON(Maractus, 1), + .footprint = gMonFootprint_Maractus, + LEARNSETS(Maractus), + }, +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE + [SPECIES_DWEBBLE] = + { + .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, + .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, + PALETTES(Dwebble), + ICON(Dwebble, 0), + .footprint = gMonFootprint_Dwebble, + LEARNSETS(Dwebble), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_CRUSTLE}), + }, + + [SPECIES_CRUSTLE] = + { + .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, + .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, + PALETTES(Crustle), + ICON(Crustle, 2), + .footprint = gMonFootprint_Crustle, + LEARNSETS(Crustle), + }, +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY + [SPECIES_SCRAGGY] = + { + .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, + .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, + PALETTES(Scraggy), + ICON(Scraggy, 2), + .footprint = gMonFootprint_Scraggy, + LEARNSETS(Scraggy), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_SCRAFTY}), + }, + + [SPECIES_SCRAFTY] = + { + .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, + .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, + PALETTES(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_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, + .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, + PALETTES(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, \ + .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_YAMASK] = + { + 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, + PALETTES(Yamask), + ICON(Yamask, 0), + LEARNSETS(Yamask), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COFAGRIGUS}), + }, + + [SPECIES_COFAGRIGUS] = + { + .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, + .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, + PALETTES(Cofagrigus), + ICON(Cofagrigus, 0), + .footprint = gMonFootprint_Cofagrigus, + LEARNSETS(Cofagrigus), + }, + +#if P_GALARIAN_FORMS + [SPECIES_YAMASK_GALARIAN] = + { + 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( + "A clay slab with cursed engravings\n" + "took possession of a Yamask. The\n" + "slab is said to be absorbing the\n" + "Yamask's dark power."), + 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, + PALETTES(YamaskGalarian), + ICON(YamaskGalarian, 2), + LEARNSETS(YamaskGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_SCRIPT_TRIGGER_DMG, 49, SPECIES_RUNERIGUS}), + }, + + [SPECIES_RUNERIGUS] = + { + .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, + .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, + PALETTES(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_WATER, TYPE_ROCK }, + .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_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Tirtouga), + ICON(Tirtouga, 2), + .footprint = gMonFootprint_Tirtouga, + LEARNSETS(Tirtouga), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CARRACOSTA}), + }, + + [SPECIES_CARRACOSTA] = + { + .baseHP = 74, + .baseAttack = 108, + .baseDefense = 133, + .baseSpeed = 32, + .baseSpAttack = 83, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_ROCK }, + .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_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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, + .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, + PALETTES(Archen), + ICON(Archen, 0), + .footprint = gMonFootprint_Archen, + LEARNSETS(Archen), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_ARCHEOPS}), + }, + + [SPECIES_ARCHEOPS] = + { + .baseHP = 75, + .baseAttack = 140, + .baseDefense = 65, + .baseSpeed = 110, + .baseSpAttack = 112, + .baseSpDefense = 65, + .types = { TYPE_ROCK, TYPE_FLYING }, + .catchRate = 45, + .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, + .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 = 11, + BACK_PIC(Archeops, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_AFTERMATH }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Trubbish), + ICON(Trubbish, 1), + .footprint = gMonFootprint_Trubbish, + LEARNSETS(Trubbish), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GARBODOR}), + }, + +#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, + PALETTES(Garbodor), + ICON(Garbodor, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_GARBODOR_GIGANTAMAX] = + { + GARBODOR_MISC_INFO, + .height = 210, + .weight = 0, + .description = COMPOUND_STRING( + "It sprays toxic gas from its mouth\n" + "and fingers. If the gas engulfs you,\n" + "the toxins will seep in all the way\n" + "down to your bones."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(GarbodorGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_GarbodorGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GarbodorGigantamax, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, \ + .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, \ + .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 = 65, + .baseDefense = 40, + .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, + PALETTES(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_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, + PALETTES(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( + "Derives power from resentment,\n" + "which rises as energy atop its head and\n" + "takes on the forms of foes. In this\n" + "way, Zorua vents lingering malice."), + FRONT_PIC(ZoruaHisuian, 48, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_ZoruaHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZoruaHisuian, 56, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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( + "Heedless of its own safety,\n" + "Zoroark attacks its nemeses with a bitter\n" + "energy so intense, it lacerates\n" + "Zoroark's own body."), + FRONT_PIC(ZoroarkHisuian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ZoroarkHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZoroarkHisuian, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Minccino), + ICON(Minccino, 0), + .footprint = gMonFootprint_Minccino, + LEARNSETS(Minccino), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_CINCCINO}), + }, + + [SPECIES_CINCCINO] = + { + .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, + PALETTES(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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Gothita), + ICON(Gothita, 2), + .footprint = gMonFootprint_Gothita, + LEARNSETS(Gothita), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOTHORITA}), + }, + + [SPECIES_GOTHORITA] = + { + .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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Gothorita), + ICON(Gothorita, 2), + .footprint = gMonFootprint_Gothorita, + LEARNSETS(Gothorita), + .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_GOTHITELLE}), + }, + + [SPECIES_GOTHITELLE] = + { + .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, + .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, + PALETTES(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_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, + PALETTES(Solosis), + ICON(Solosis, 1), + .footprint = gMonFootprint_Solosis, + LEARNSETS(Solosis), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_DUOSION}), + }, + + [SPECIES_DUOSION] = + { + .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, + .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, + PALETTES(Duosion), + ICON(Duosion, 1), + .footprint = gMonFootprint_Duosion, + LEARNSETS(Duosion), + .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_REUNICLUS}), + }, + + [SPECIES_REUNICLUS] = + { + .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_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Reuniclus), + ICON(Reuniclus, 1), + .footprint = gMonFootprint_Reuniclus, + LEARNSETS(Reuniclus), + }, +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT + [SPECIES_DUCKLETT] = + { + .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, + .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, + PALETTES(Ducklett), + ICON(Ducklett, 0), + .footprint = gMonFootprint_Ducklett, + LEARNSETS(Ducklett), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_SWANNA}), + }, + + [SPECIES_SWANNA] = + { + .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, + .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, + PALETTES(Swanna), + ICON(Swanna, 2), + .footprint = gMonFootprint_Swanna, + LEARNSETS(Swanna), + }, +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE + [SPECIES_VANILLITE] = + { + .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, + .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, + .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, + PALETTES(Vanillite), + ICON(Vanillite, 0), + .footprint = gMonFootprint_Vanillite, + LEARNSETS(Vanillite), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VANILLISH}), + }, + + [SPECIES_VANILLISH] = + { + .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, + .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, + .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, + PALETTES(Vanillish), + ICON(Vanillish, 2), + .footprint = gMonFootprint_Vanillish, + LEARNSETS(Vanillish), + .evolutions = EVOLUTION({EVO_LEVEL, 47, SPECIES_VANILLUXE}), + }, + + [SPECIES_VANILLUXE] = + { + .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, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_WARNING, ABILITY_WEAK_ARMOR }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(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 }, \ + .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( + "Deerling have different scents\n" + "depending on the season. In early\n" + "spring, these Pokémon give off a\n" + "delicate, sweet, and calming scent."), + PALETTES(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( + "To prevent Deerling from entering\n" + "their fields, many farmers will have\n" + "several Lycanroc stand guard, as\n" + "they are its natural enemy."), + PALETTES(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( + "Deerling have different scents\n" + "depending on the season. In this form,\n" + "Deerling have a softly sweet scent\n" + "that lingers in the nose."), + PALETTES(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( + "Deerling's scent changes with the\n" + "seasons, but when the Pokémon is in\n" + "its Winter Form, it has hardly any\n" + "scent at all."), + PALETTES(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, \ + .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), + PALETTES(SawsbuckSpring), + ICON(SawsbuckSpring, 1), + }, + + [SPECIES_SAWSBUCK_SUMMER] = + { + SAWSBUCK_MISC_INFO, + .description = COMPOUND_STRING( + "The thicker and larger the\n" + "branches and leaves on its antlers, the\n" + "more majestic the Sawsbuck is thought\n" + "to be."), + FRONT_PIC(SawsbuckSummer, 64, 64), + BACK_PIC(SawsbuckSummer, 64, 64), + PALETTES(SawsbuckSummer), + ICON(SawsbuckSummer, 1), + }, + + [SPECIES_SAWSBUCK_AUTUMN] = + { + SAWSBUCK_MISC_INFO, + .description = COMPOUND_STRING( + "Sawsbuck in their Autumn Form are\n" + "known for having very short\n" + "tempers. The males fight each other\n" + "incessantly."), + FRONT_PIC(SawsbuckAutumn, 64, 64), + BACK_PIC(SawsbuckAutumn, 64, 64), + PALETTES(SawsbuckAutumn), + ICON(SawsbuckAutumn, 1), + }, + + [SPECIES_SAWSBUCK_WINTER] = + { + SAWSBUCK_MISC_INFO, + .description = COMPOUND_STRING( + "Though there are many enthusiasts\n" + "for Sawsbuck as a species, this\n" + "seasonal form in particular is not\n" + "very popular."), + FRONT_PIC(SawsbuckWinter, 56, 64), + BACK_PIC(SawsbuckWinter, 48, 64), + PALETTES(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 = 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, + .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, + PALETTES(Emolga), + ICON(Emolga, 2), + .footprint = gMonFootprint_Emolga, + LEARNSETS(Emolga), + }, +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST + [SPECIES_KARRABLAST] = + { + .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, + .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, + PALETTES(Karrablast), + ICON(Karrablast, 0), + .footprint = gMonFootprint_Karrablast, + LEARNSETS(Karrablast), + .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_SHELMET, SPECIES_ESCAVALIER}), + }, + + [SPECIES_ESCAVALIER] = + { + .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_SWARM, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Escavalier), + ICON(Escavalier, 0), + .footprint = gMonFootprint_Escavalier, + LEARNSETS(Escavalier), + }, +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS + [SPECIES_FOONGUS] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Foongus), + ICON(Foongus, 0), + .footprint = gMonFootprint_Foongus, + LEARNSETS(Foongus), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_AMOONGUSS}), + }, + + [SPECIES_AMOONGUSS] = + { + .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_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, + PALETTES(Amoonguss), + ICON(Amoonguss, 1), + .footprint = gMonFootprint_Amoonguss, + LEARNSETS(Amoonguss), + }, +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH + [SPECIES_FRILLISH] = + { + .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_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Frillish), + PALETTE_FEMALE(Frillish), + ICON(Frillish, 0), + ICON_FEMALE(Frillish, 1), + .footprint = gMonFootprint_Frillish, + LEARNSETS(Frillish), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_JELLICENT}), + }, + + [SPECIES_JELLICENT] = + { + .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_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP }, + .bodyColor = BODY_COLOR_WHITE, + .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 = 3, + .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, + PALETTES(Jellicent), + PALETTE_FEMALE(Jellicent), + ICON(Jellicent, 0), + ICON_FEMALE(Jellicent, 1), + .footprint = gMonFootprint_Jellicent, + LEARNSETS(Jellicent), + }, +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA + [SPECIES_ALOMOMOLA] = + { + .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, + .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, + PALETTES(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 = 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, + .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, + PALETTES(Joltik), + ICON(Joltik, 0), + .footprint = gMonFootprint_Joltik, + LEARNSETS(Joltik), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GALVANTULA}), + }, + + [SPECIES_GALVANTULA] = + { + .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 = 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, + .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, + PALETTES(Galvantula), + ICON(Galvantula, 2), + .footprint = gMonFootprint_Galvantula, + LEARNSETS(Galvantula), + }, +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED + [SPECIES_FERROSEED] = + { + .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_GRASS, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_IRON_BARBS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Ferroseed), + ICON(Ferroseed, 1), + .footprint = gMonFootprint_Ferroseed, + LEARNSETS(Ferroseed), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_FERROTHORN}), + }, + + [SPECIES_FERROTHORN] = + { + .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, + .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, ABILITY_ANTICIPATION }, + .bodyColor = BODY_COLOR_GRAY, + .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, + .enemyMonElevation = 10, + BACK_PIC(Ferrothorn, 64, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTES(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, + .enemyMonElevation = 12, + BACK_PIC(Klink, 64, 64), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(Klink), + ICON(Klink, 0), + .footprint = gMonFootprint_Klink, + LEARNSETS(Klink), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_KLANG}), + }, + + [SPECIES_KLANG] = + { + .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, + .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 = _("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, + .enemyMonElevation = 8, + BACK_PIC(Klang, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(Klang), + ICON(Klang, 0), + .footprint = gMonFootprint_Klang, + LEARNSETS(Klang), + .evolutions = EVOLUTION({EVO_LEVEL, 49, SPECIES_KLINKLANG}), + }, + + [SPECIES_KLINKLANG] = + { + .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, + .enemyMonElevation = 4, + BACK_PIC(Klinklang, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTES(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 = 40, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 190, + .expYield = 55, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Tynamo), + ICON(Tynamo, 0), + .footprint = gMonFootprint_Tynamo, + LEARNSETS(Tynamo), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_EELEKTRIK}), + }, + + [SPECIES_EELEKTRIK] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Eelektrik), + ICON(Eelektrik, 0), + .footprint = gMonFootprint_Eelektrik, + LEARNSETS(Eelektrik), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_EELEKTROSS}), + }, + + [SPECIES_EELEKTROSS] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Eelektross), + ICON(Eelektross, 0), + .footprint = gMonFootprint_Eelektross, + LEARNSETS(Eelektross), + }, +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM + [SPECIES_ELGYEM] = + { + .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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Elgyem), + ICON(Elgyem, 0), + .footprint = gMonFootprint_Elgyem, + LEARNSETS(Elgyem), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_BEHEEYEM}), + }, + + [SPECIES_BEHEEYEM] = + { + .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_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Beheeyem), + ICON(Beheeyem, 2), + .footprint = gMonFootprint_Beheeyem, + LEARNSETS(Beheeyem), + }, +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK + [SPECIES_LITWICK] = + { + .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_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, + .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, + PALETTES(Litwick), + ICON(Litwick, 2), + .footprint = gMonFootprint_Litwick, + LEARNSETS(Litwick), + .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_LAMPENT}), + }, + + [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, + .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_BLACK, + .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, + .enemyMonElevation = 6, + BACK_PIC(Lampent, 56, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(Lampent), + ICON(Lampent, 2), + .footprint = gMonFootprint_Lampent, + LEARNSETS(Lampent), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_CHANDELURE}), + }, + + [SPECIES_CHANDELURE] = + { + .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_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, + .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, + .enemyMonElevation = 6, + BACK_PIC(Chandelure, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(Chandelure), + ICON(Chandelure, 2), + .footprint = gMonFootprint_Chandelure, + LEARNSETS(Chandelure), + }, +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW + [SPECIES_AXEW] = + { + .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 = 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, + .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, + PALETTES(Axew), + ICON(Axew, 1), + .footprint = gMonFootprint_Axew, + LEARNSETS(Axew), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_FRAXURE}), + }, + + [SPECIES_FRAXURE] = + { + .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 = 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, + .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, + PALETTES(Fraxure), + ICON(Fraxure, 1), + .footprint = gMonFootprint_Fraxure, + LEARNSETS(Fraxure), + .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_HAXORUS}), + }, + + [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, + .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, + PALETTES(Haxorus), + ICON(Haxorus, 2), + .footprint = gMonFootprint_Haxorus, + LEARNSETS(Haxorus), + }, +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO + [SPECIES_CUBCHOO] = + { + .baseHP = 55, + .baseAttack = 70, + .baseDefense = 40, + .baseSpeed = 40, + .baseSpAttack = 60, + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_RATTLED }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Cubchoo), + ICON(Cubchoo, 0), + .footprint = gMonFootprint_Cubchoo, + LEARNSETS(Cubchoo), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_BEARTIC}), + }, + + [SPECIES_BEARTIC] = + { + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Beartic), + ICON(Beartic, 0), + .footprint = gMonFootprint_Beartic, + LEARNSETS(Beartic), + }, +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL + [SPECIES_CRYOGONAL] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Cryogonal), + ICON(Cryogonal, 0), + .footprint = gMonFootprint_Cryogonal, + LEARNSETS(Cryogonal), + }, +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET + [SPECIES_SHELMET] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_HYDRATION, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Shelmet), + ICON(Shelmet, 1), + .footprint = gMonFootprint_Shelmet, + LEARNSETS(Shelmet), + .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_KARRABLAST, SPECIES_ACCELGOR}), + }, + + [SPECIES_ACCELGOR] = + { + .baseHP = 80, + .baseAttack = 70, + .baseDefense = 40, + .baseSpeed = 145, + .baseSpAttack = 100, + .baseSpDefense = 60, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 75, + .expYield = 173, + .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_HYDRATION, ABILITY_STICKY_HOLD, ABILITY_UNBURDEN }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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 }, \ + .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_STUNFISK] = + { + 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, + .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, + PALETTES(Stunfisk), + ICON(Stunfisk, 2), + LEARNSETS(Stunfisk), + }, + +#if P_GALARIAN_FORMS + [SPECIES_STUNFISK_GALARIAN] = + { + STUNFISK_MISC_INFO, + .baseHP = 109, + .baseAttack = 81, + .baseDefense = 99, + .baseSpeed = 32, + .baseSpAttack = 66, + .baseSpDefense = 84, + .types = { TYPE_GROUND, TYPE_STEEL }, + .friendship = STANDARD_FRIENDSHIP, + .abilities = { ABILITY_MIMICRY, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .weight = 205, + .description = COMPOUND_STRING( + "Its conspicuous lips lure prey in\n" + "as it lies in wait in the mud. When\n" + "prey gets close, Stunfisk clamps its\n" + "jagged steel fins down on them."), + 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, + PALETTES(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, + .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, + PALETTES(Mienfoo), + ICON(Mienfoo, 1), + .footprint = gMonFootprint_Mienfoo, + LEARNSETS(Mienfoo), + .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_MIENSHAO}), + }, + + [SPECIES_MIENSHAO] = + { + .baseHP = 65, + .baseAttack = 125, + .baseDefense = 60, + .baseSpeed = 105, + .baseSpAttack = 95, + .baseSpDefense = 60, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 179, + .evYield_Attack = 2, + .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_PURPLE, + .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, + PALETTES(Mienshao), + ICON(Mienshao, 2), + .footprint = gMonFootprint_Mienshao, + LEARNSETS(Mienshao), + }, +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON + [SPECIES_DRUDDIGON] = + { + .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, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .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, + .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, + PALETTES(Druddigon), + ICON(Druddigon, 0), + .footprint = gMonFootprint_Druddigon, + LEARNSETS(Druddigon), + }, +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT + [SPECIES_GOLETT] = + { + .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_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, + PALETTES(Golett), + ICON(Golett, 0), + .footprint = gMonFootprint_Golett, + LEARNSETS(Golett), + .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_GOLURK}), + }, + + [SPECIES_GOLURK] = + { + .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, + .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, + .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, + PALETTES(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, + .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, + PALETTES(Pawniard), + ICON(Pawniard, 0), + .footprint = gMonFootprint_Pawniard, + LEARNSETS(Pawniard), + .evolutions = EVOLUTION({EVO_LEVEL, 52, SPECIES_BISHARP}), + }, + + [SPECIES_BISHARP] = + { + .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 = 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, + .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, + PALETTES(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 = 100, + .baseAttack = 135, + .baseDefense = 120, + .baseSpeed = 50, + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_DEFIANT, ABILITY_SUPREME_OVERLORD, ABILITY_PRESSURE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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 = 95, + .baseAttack = 110, + .baseDefense = 95, + .baseSpeed = 55, + .baseSpAttack = 40, + .baseSpDefense = 95, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 172, + .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_RECKLESS, ABILITY_SAP_SIPPER, ABILITY_SOUNDPROOF }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(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_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_HUSTLE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(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 }, \ + .speciesName = _("Braviary"), \ + .cryId = CRY_BRAVIARY, \ + .natDexNum = NATIONAL_DEX_BRAVIARY, \ + .footprint = gMonFootprint_Braviary, \ + .formSpeciesIdTable = sBraviaryFormSpeciesIdTable + + [SPECIES_BRAVIARY] = + { + 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 = 6, + BACK_PIC(Braviary, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(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( + "Screaming a bloodcurdling battle\n" + "cry, this huge and ferocious bird\n" + "Pokémon goes out on the hunt."), + .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, + PALETTES(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 = 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, + .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, + PALETTES(Vullaby), + ICON(Vullaby, 0), + .footprint = gMonFootprint_Vullaby, + LEARNSETS(Vullaby), + .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_MANDIBUZZ}), + }, + + [SPECIES_MANDIBUZZ] = + { + .baseHP = 110, + .baseAttack = 65, + .baseDefense = 105, + .baseSpeed = 80, + .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_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Mandibuzz), + ICON(Mandibuzz, 1), + .footprint = gMonFootprint_Mandibuzz, + LEARNSETS(Mandibuzz), + }, +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR + [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, + .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, + .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, + PALETTES(Heatmor), + ICON(Heatmor, 2), + .footprint = gMonFootprint_Heatmor, + LEARNSETS(Heatmor), + }, +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT + [SPECIES_DURANT] = + { + .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_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_HUSTLE, ABILITY_TRUANT }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Durant), + ICON(Durant, 0), + .footprint = gMonFootprint_Durant, + LEARNSETS(Durant), + }, +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO + [SPECIES_DEINO] = + { + .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 = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_HUSTLE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Deino), + ICON(Deino, 2), + .footprint = gMonFootprint_Deino, + LEARNSETS(Deino), + .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_ZWEILOUS}), + }, + + [SPECIES_ZWEILOUS] = + { + .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, + .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, + PALETTES(Zweilous), + ICON(Zweilous, 2), + .footprint = gMonFootprint_Zweilous, + LEARNSETS(Zweilous), + .evolutions = EVOLUTION({EVO_LEVEL, 64, SPECIES_HYDREIGON}), + }, + + [SPECIES_HYDREIGON] = + { + .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 = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Larvesta), + ICON(Larvesta, 0), + .footprint = gMonFootprint_Larvesta, + LEARNSETS(Larvesta), + .evolutions = EVOLUTION({EVO_LEVEL, 59, SPECIES_VOLCARONA}), + }, + + [SPECIES_VOLCARONA] = + { + .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, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .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, + .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, + PALETTES(Volcarona), + ICON(Volcarona, 0), + .footprint = gMonFootprint_Volcarona, + LEARNSETS(Volcarona), + }, +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION + [SPECIES_COBALION] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Cobalion), + ICON(Cobalion, 0), + .footprint = gMonFootprint_Cobalion, + LEARNSETS(Cobalion), + }, +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION + [SPECIES_TERRAKION] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 5, + .frontAnimFrames = sAnims_Terrakion, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Terrakion, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_JUSTIFIED, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_GREEN, \ + .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, + PALETTES(TornadusIncarnate), + ICON(TornadusIncarnate, 1), + }, + + [SPECIES_TORNADUS_THERIAN] = + { + 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( + "An example of what is known as a\n" + "“form change”. Tornadus has been\n" + "sighted crossing the ocean while in this\n" + "form."), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .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, + PALETTES(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( + "It pulverizes foes into\n" + "nothingness with showers of devastatingly\n" + "powerful lightning bolts launched from\n" + "the string of orbs on its tail."), + .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, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Reshiram), + ICON(Reshiram, 0), + .footprint = gMonFootprint_Reshiram, + LEARNSETS(Reshiram), + }, +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM + [SPECIES_ZEKROM] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_TERAVOLT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BROWN, \ + .isLegendary = TRUE, \ + .speciesName = _("Landorus"), \ + .natDexNum = NATIONAL_DEX_LANDORUS, \ + .categoryName = _("Abundance"), \ + .weight = 680, \ + .footprint = gMonFootprint_Landorus, \ + LEARNSETS(Landorus), \ + .formSpeciesIdTable = sLandorusFormSpeciesIdTable, \ + .formChangeTable = sLandorusFormChangeTable + + [SPECIES_LANDORUS_INCARNATE] = + { + 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, + PALETTES(LandorusIncarnate), + ICON(LandorusIncarnate, 0), + }, + + [SPECIES_LANDORUS_THERIAN] = + { + 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( + "Landorus soars through the sky in\n" + "this form, bestowing plentiful\n" + "harvests upon the land and earning the\n" + "people's reverence."), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = TRUE, \ + .speciesName = _("Kyurem"), \ + .natDexNum = NATIONAL_DEX_KYUREM, \ + .categoryName = _("Boundary"), \ + .weight = 3250, \ + .footprint = gMonFootprint_Kyurem, \ + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, \ + .isLegendary = TRUE + + [SPECIES_KYUREM] = + { + KYUREM_MISC_INFO, + .baseHP = 125, + .baseAttack = 130, + .baseDefense = 90, + .baseSpeed = 95, + .baseSpAttack = 130, + .baseSpDefense = 90, + .expYield = 297, + .evYield_HP = 1, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .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, + PALETTES(Kyurem), + ICON(Kyurem, 0), + LEARNSETS(Kyurem), + }, + +#if P_FUSION_FORMS + [SPECIES_KYUREM_WHITE] = + { + KYUREM_MISC_INFO, + .baseHP = 125, + .baseAttack = 120, + .baseDefense = 90, + .baseSpeed = 95, + .baseSpAttack = 170, + .baseSpDefense = 100, + .expYield = 315, + .evYield_SpAttack = 3, + .abilities = { ABILITY_TURBOBLAZE, ABILITY_NONE }, + .cryId = CRY_KYUREM_WHITE, + .height = 36, + .description = COMPOUND_STRING( + "The sameness of Reshiram's and\n" + "Kyurem's genes allowed Kyurem to\n" + "absorb Reshiram. Kyurem can now use the\n" + "power of both fire and ice."), + .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, + PALETTES(KyuremWhite), + ICON(KyuremWhite, 0), + .levelUpLearnset = sKyuremWhiteLevelUpLearnset, + .teachableLearnset = sKyuremTeachableLearnset, + .cannotBeTraded = TRUE, + }, + + [SPECIES_KYUREM_BLACK] = + { + 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( + "The sameness of Zekrom's and\n" + "Kyurem's genes allowed Kyurem to absorb\n" + "Zekrom. Kyurem can now use the\n" + "power of both electricity and ice."), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .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_KELDEO_ORDINARY] = + { + KELDEO_MISC_INFO, + .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, + PALETTES(KeldeoOrdinary), + ICON(KeldeoOrdinary, 0), + }, + + [SPECIES_KELDEO_RESOLUTE] = + { + KELDEO_MISC_INFO, + .noFlip = TRUE, + .description = COMPOUND_STRING( + "The power that lay hidden in its\n" + "body now covers its horn, turning it\n" + "into a sword that can slice through\n" + "anything."), + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .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, + PALETTES(MeloettaAria), + ICON(MeloettaAria, 4), + }, + + [SPECIES_MELOETTA_PIROUETTE] = + { + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_DOWNLOAD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .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, \ + PALETTES(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 + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_6.h b/src/data/pokemon/species_info/gen_6.h new file mode 100644 index 0000000000..66c78f521e --- /dev/null +++ b/src/data/pokemon/species_info/gen_6.h @@ -0,0 +1,4496 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen6[] = +{ +#endif + +#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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 11, + .frontAnimFrames = sAnims_Chespin, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Chespin, 56, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTES(Chespin), + ICON(Chespin, 1), + .footprint = gMonFootprint_Chespin, + LEARNSETS(Chespin), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUILLADIN}), + }, + + [SPECIES_QUILLADIN] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Quilladin), + ICON(Quilladin, 1), + .footprint = gMonFootprint_Quilladin, + LEARNSETS(Quilladin), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHESNAUGHT}), + }, + + [SPECIES_CHESNAUGHT] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Chesnaught), + ICON(Chesnaught, 1), + .footprint = gMonFootprint_Chesnaught, + LEARNSETS(Chesnaught), + }, +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN + [SPECIES_FENNEKIN] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Fennekin), + ICON(Fennekin, 0), + .footprint = gMonFootprint_Fennekin, + LEARNSETS(Fennekin), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BRAIXEN}), + }, + + [SPECIES_BRAIXEN] = + { + .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), + .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, + .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, + PALETTES(Braixen), + ICON(Braixen, 0), + .footprint = gMonFootprint_Braixen, + LEARNSETS(Braixen), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_DELPHOX}), + }, + + [SPECIES_DELPHOX] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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, + .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, + PALETTES(Froakie), + ICON(Froakie, 0), + .footprint = gMonFootprint_Froakie, + LEARNSETS(Froakie), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FROGADIER}), + }, + + [SPECIES_FROGADIER] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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, \ + PALETTES(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_GRENINJA_BATTLE_BOND] = + { + GRENINJA_MISC_INFO, + GRENINJA_NORMAL_MISC_INFO, + .genderRatio = MON_MALE, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE }, + .frontAnimId = ANIM_FLICKER_INCREASING, + .backAnimId = BACK_ANIM_V_STRETCH, + .formChangeTable = sGreninjaBattleBondFormChangeTable, + }, + + [SPECIES_GRENINJA_ASH] = + { + GRENINJA_MISC_INFO, + .baseHP = 72, + .baseAttack = 145, + .baseDefense = 67, + .baseSpeed = 132, + .baseSpAttack = 153, + .baseSpDefense = 71, + .expYield = 288, + .genderRatio = MON_MALE, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(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, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .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, + .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, + PALETTES(Bunnelby), + ICON(Bunnelby, 2), + .footprint = gMonFootprint_Bunnelby, + LEARNSETS(Bunnelby), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_DIGGERSBY}), + }, + + [SPECIES_DIGGERSBY] = + { + .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 = 15, + .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, + .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, + PALETTES(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, + .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 = 13, + .frontAnimFrames = sAnims_Fletchling, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Fletchling, 64, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTES(Fletchling), + ICON(Fletchling, 2), + .footprint = gMonFootprint_Fletchling, + LEARNSETS(Fletchling), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_FLETCHINDER}), + }, + + [SPECIES_FLETCHINDER] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Fletchinder), + ICON(Fletchinder, 2), + .footprint = gMonFootprint_Fletchinder, + LEARNSETS(Fletchinder), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_TALONFLAME}), + }, + + [SPECIES_TALONFLAME] = + { + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Talonflame), + ICON(Talonflame, 2), + .footprint = gMonFootprint_Talonflame, + LEARNSETS(Talonflame), + }, +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG + [SPECIES_SCATTERBUG] = + { + .baseHP = 38, + .baseAttack = 35, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 27, + .baseSpDefense = 25, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 255, + .expYield = 40, + .evYield_Defense = 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, + .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, + PALETTES(Scatterbug), + ICON(Scatterbug, 1), + .footprint = gMonFootprint_Scatterbug, + LEARNSETS(Scatterbug), + .evolutions = EVOLUTION({EVO_LEVEL, 9, SPECIES_SPEWPA}), + }, + + [SPECIES_SPEWPA] = + { + .baseHP = 45, + .baseAttack = 22, + .baseDefense = 60, + .baseSpeed = 29, + .baseSpAttack = 27, + .baseSpDefense = 30, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 120, + .expYield = 75, + .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, ABILITY_FRIEND_GUARD }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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, \ + .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, \ + PALETTES(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, + .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, + PALETTES(Litleo), + ICON(Litleo, 2), + .footprint = gMonFootprint_Litleo, + LEARNSETS(Litleo), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_PYROAR}), + }, + + [SPECIES_PYROAR] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Pyroar), + ICON(Pyroar, 2), + ICON_FEMALE(Pyroar, 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, \ + .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, \ + PALETTES(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( + "This Flabébé rides a red flower.\n" + "Immediately after birth, this Pokémon\n" + "begins flying around in search of a\n" + "flower it likes."), + }, + [SPECIES_FLABEBE_YELLOW_FLOWER] = + { + FLABEBE_MISC_INFO(Yellow, YELLOW, 1), + .description = COMPOUND_STRING( + "It unleashes a variety of moves by\n" + "drawing forth the power hidden\n" + "within flowers. This Pokémon is\n" + "particularly fond of yellow flowers."), + }, + [SPECIES_FLABEBE_ORANGE_FLOWER] = + { + FLABEBE_MISC_INFO(Orange, ORANGE, 0), + .description = COMPOUND_STRING( + "It receives strength from flowers\n" + "and gives them some of its energy in\n" + "return. This Pokémon likes orange\n" + "flowers best of all."), + }, + [SPECIES_FLABEBE_BLUE_FLOWER] = + { + FLABEBE_MISC_INFO(Blue, BLUE, 0), + .description = COMPOUND_STRING( + "This Pokémon likes blue flowers\n" + "best of all. It floats upward using the\n" + "power emanating from its flower\n" + "and bobs along lightly through the air."), + }, + [SPECIES_FLABEBE_WHITE_FLOWER] = + { + FLABEBE_MISC_INFO(White, WHITE, 1), + .description = COMPOUND_STRING( + "When evening falls, it searches out\n" + "a place blooming with flowers of\n" + "the same white color as itself, and\n" + "then it goes to sleep."), + }, + +#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, \ + .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, \ + PALETTES(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_FLOETTE_RED_FLOWER] = + { + FLOETTE_NORMAL_INFO(Red, RED, 1), + .description = COMPOUND_STRING( + "This Pokémon uses red wavelengths\n" + "of light to pour its own energy\n" + "into flowers and draw forth their\n" + "latent potential."), + }, + [SPECIES_FLOETTE_YELLOW_FLOWER] = + { + FLOETTE_NORMAL_INFO(Yellow, YELLOW, 1), + .description = COMPOUND_STRING( + "This Pokémon can draw forth the\n" + "power hidden within yellow flowers.\n" + "This power then becomes the moves\n" + "Floette uses to protect itself."), + }, + [SPECIES_FLOETTE_ORANGE_FLOWER] = + { + FLOETTE_NORMAL_INFO(Orange, ORANGE, 0), + .description = COMPOUND_STRING( + "This Pokémon can draw forth the\n" + "most power when in sync with orange\n" + "flowers, compared to flowers of other\n" + "colors."), + }, + [SPECIES_FLOETTE_BLUE_FLOWER] = + { + FLOETTE_NORMAL_INFO(Blue, BLUE, 0), + .description = COMPOUND_STRING( + "Whenever this Pokémon finds\n" + "flowering plants that are withering, it\n" + "will bring them back to its territory\n" + "and care for them."), + }, + [SPECIES_FLOETTE_WHITE_FLOWER] = + { + FLOETTE_NORMAL_INFO(White, WHITE, 1), + .description = COMPOUND_STRING( + "If it finds someone messing up a\n" + "flower bed, it will attack them\n" + "without mercy. This Floette takes\n" + "particularly good care of white flowers."), + }, + [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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .description = COMPOUND_STRING( + "The flower it's holding can no\n" + "longer be found blooming anywhere. It's\n" + "also thought to contain terrifying\n" + "power."), + .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, \ + .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, \ + PALETTES(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( + "This Pokémon creates an\n" + "impressive flower garden in its territory. It\n" + "draws forth the power of the red\n" + "flowers around its neck."), + }, + [SPECIES_FLORGES_YELLOW_FLOWER] = + { + FLORGES_MISC_INFO(Yellow, 1), + .description = COMPOUND_STRING( + "This Pokémon battles by drawing\n" + "forth the power of yellow flowers. It\n" + "ruthlessly punishes anyone who\n" + "tramples on flowering plants."), + }, + [SPECIES_FLORGES_ORANGE_FLOWER] = + { + FLORGES_MISC_INFO(Orange, 0), + .description = COMPOUND_STRING( + "In times long past, castle\n" + "governors would lovingly raise Florges to\n" + "care for their castles' exquisite\n" + "gardens."), + }, + [SPECIES_FLORGES_BLUE_FLOWER] = + { + FLORGES_MISC_INFO(Blue, 0), + .description = COMPOUND_STRING( + "Blue pigments were tremendously\n" + "expensive in the past, so paintings\n" + "of blue Florges are highly valuable."), + }, + [SPECIES_FLORGES_WHITE_FLOWER] = + { + FLORGES_MISC_INFO(White, 0), + .description = COMPOUND_STRING( + "A flower garden made by a white-\n" + "flowered Florges will be beautifully\n" + "decorated with flowering plants of\n" + "many different colors."), + }, +#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_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Skiddo), + ICON(Skiddo, 1), + .footprint = gMonFootprint_Skiddo, + LEARNSETS(Skiddo), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOGOAT}), + }, + + [SPECIES_GOGOAT] = + { + .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 = 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, + .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, + PALETTES(Gogoat), + ICON(Gogoat, 1), + .footprint = gMonFootprint_Gogoat, + LEARNSETS(Gogoat), + }, +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM + [SPECIES_PANCHAM] = + { + .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 = 25, + .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, + .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, + PALETTES(Pancham), + ICON(Pancham, 1), + .footprint = gMonFootprint_Pancham, + LEARNSETS(Pancham), + .evolutions = EVOLUTION({EVO_LEVEL_DARK_TYPE_MON_IN_PARTY, 32, SPECIES_PANGORO}), + }, + + [SPECIES_PANGORO] = + { + .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 = 25, + .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, + .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, + PALETTES(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, + FRONT_PIC(FurfrouNatural, 48, 64), + .frontPicYOffset = 3, + BACK_PIC(FurfrouNatural, 56, 64), + .backPicYOffset = 0, + PALETTES(FurfrouNatural), + ICON(FurfrouNatural, 0), + }, + [SPECIES_FURFROU_HEART_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouHeartTrim, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouHeartTrim, 56, 64), + .backPicYOffset = 1, + PALETTES(FurfrouHeartTrim), + ICON(FurfrouHeartTrim, 0), + }, + [SPECIES_FURFROU_STAR_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouStarTrim, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouStarTrim, 64, 64), + .backPicYOffset = 1, + PALETTES(FurfrouStarTrim), + ICON(FurfrouStarTrim, 0), + }, + [SPECIES_FURFROU_DIAMOND_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouDiamondTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouDiamondTrim, 56, 64), + .backPicYOffset = 1, + PALETTES(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, + PALETTES(FurfrouDebutanteTrim), + ICON(FurfrouDebutanteTrim, 2), + }, + [SPECIES_FURFROU_MATRON_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouMatronTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouMatronTrim, 56, 64), + .backPicYOffset = 1, + PALETTES(FurfrouMatronTrim), + ICON(FurfrouMatronTrim, 2), + }, + [SPECIES_FURFROU_DANDY_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouDandyTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouDandyTrim, 56, 64), + .backPicYOffset = 1, + PALETTES(FurfrouDandyTrim), + ICON(FurfrouDandyTrim, 1), + }, + [SPECIES_FURFROU_LA_REINE_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouLaReineTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouLaReineTrim, 56, 64), + .backPicYOffset = 1, + PALETTES(FurfrouLaReineTrim), + ICON(FurfrouLaReineTrim, 0), + }, + [SPECIES_FURFROU_KABUKI_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouKabukiTrim, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouKabukiTrim, 56, 64), + .backPicYOffset = 1, + PALETTES(FurfrouKabukiTrim), + ICON(FurfrouKabukiTrim, 0), + }, + [SPECIES_FURFROU_PHARAOH_TRIM] = + { + FURFROU_MISC_INFO, + FRONT_PIC(FurfrouPharaohTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouPharaohTrim, 56, 64), + .backPicYOffset = 1, + PALETTES(FurfrouPharaohTrim), + ICON(FurfrouPharaohTrim, 0), + }, +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR + [SPECIES_ESPURR] = + { + .baseHP = 62, + .baseAttack = 48, + .baseDefense = 54, + .baseSpeed = 68, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 190, + .expYield = 71, + .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_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_OWN_TEMPO }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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 }, \ + .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 defensive instinct of the\n" + "males is strong. It's when they're\n" + "protecting themselves or their partners\n" + "that they unleash their full power."), + FRONT_PIC(MeowsticMale, 48, 64), + .frontPicYOffset = 3, + BACK_PIC(MeowsticMale, 64, 64), + PALETTES(MeowsticMale), + ICON(MeowsticMale, 0), + LEARNSETS(MeowsticMale), + }, + + [SPECIES_MEOWSTIC_FEMALE] = + { + MEOWSTIC_MISC_INFO, + .genderRatio = MON_FEMALE, + .abilities = { ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_COMPETITIVE }, + .bodyColor = BODY_COLOR_WHITE, + .description = COMPOUND_STRING( + "Females are a bit more selfish and\n" + "aggressive than males. If they\n" + "don't get what they want, they will\n" + "torment you with their psychic abilities."), + FRONT_PIC(MeowsticFemale, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(MeowsticFemale, 48, 64), + PALETTES(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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_NO_GUARD, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Honedge), + ICON(Honedge, 2), + .footprint = gMonFootprint_Honedge, + LEARNSETS(Honedge), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_DOUBLADE}), + }, + + [SPECIES_DOUBLADE] = + { + .baseHP = 59, + .baseAttack = 110, + .baseDefense = 150, + .baseSpeed = 35, + .baseSpAttack = 45, + .baseSpDefense = 49, + .types = { TYPE_STEEL, TYPE_GHOST }, + .catchRate = 90, + .expYield = 157, + .evYield_Defense = 2, + .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, + .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, + PALETTES(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, \ + .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( + "In this defensive stance,\n" + "Aegislash uses its steel body and a force\n" + "field of spectral power to reduce the\n" + "damage of any attack."), + 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, + PALETTES(AegislashShield), + ICON(AegislashShield, 2), + }, + + [SPECIES_AEGISLASH_BLADE] = + { + AEGISLASH_MISC_INFO, + .baseHP = 60, + .baseAttack = AEGISLASH_MAIN_STAT, + .baseDefense = 50, + .baseSpeed = 60, + .baseSpAttack = AEGISLASH_MAIN_STAT, + .baseSpDefense = 50, + .evYield_Attack = 2, + .evYield_SpAttack = 1, + .description = COMPOUND_STRING( + "Once upon a time, a king with an\n" + "Aegislash reigned over the land. His\n" + "Pokémon eventually drained him of\n" + "life, and his kingdom fell with him."), + 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, + PALETTES(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 = 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, + .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, + PALETTES(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_AROMATISSE] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Aromatisse), + ICON(Aromatisse, 0), + .footprint = gMonFootprint_Aromatisse, + LEARNSETS(Aromatisse), + }, +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX + [SPECIES_SWIRLIX] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(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_SLURPUFF] = + { + .baseHP = 82, + .baseAttack = 80, + .baseDefense = 86, + .baseSpeed = 72, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = { TYPE_FAIRY, TYPE_FAIRY }, + .catchRate = 140, + .expYield = 168, + .evYield_Defense = 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, + .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, + PALETTES(Slurpuff), + ICON(Slurpuff, 1), + .footprint = gMonFootprint_Slurpuff, + LEARNSETS(Slurpuff), + }, +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY + [SPECIES_INKAY] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Inkay), + ICON(Inkay, 0), + .footprint = gMonFootprint_Inkay, + LEARNSETS(Inkay), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MALAMAR}), + }, + + [SPECIES_MALAMAR] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Malamar), + ICON(Malamar, 2), + .footprint = gMonFootprint_Malamar, + LEARNSETS(Malamar), + }, +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE + [SPECIES_BINACLE] = + { + .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_WATER_3, EGG_GROUP_WATER_3 }, + .abilities = { ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Binacle), + ICON(Binacle, 2), + .footprint = gMonFootprint_Binacle, + LEARNSETS(Binacle), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_BARBARACLE}), + }, + + [SPECIES_BARBARACLE] = + { + .baseHP = 72, + .baseAttack = 105, + .baseDefense = 115, + .baseSpeed = 68, + .baseSpAttack = 54, + .baseSpDefense = 86, + .types = { TYPE_ROCK, TYPE_WATER }, + .catchRate = 45, + .expYield = 175, + .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, + .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, + PALETTES(Barbaracle), + ICON(Barbaracle, 2), + .footprint = gMonFootprint_Barbaracle, + LEARNSETS(Barbaracle), + }, +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP + [SPECIES_SKRELP] = + { + .baseHP = 50, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 30, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_POISON, TYPE_WATER }, + .catchRate = 225, + .expYield = 64, + .evYield_SpDefense = 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, + .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, + PALETTES(Skrelp), + ICON(Skrelp, 2), + .footprint = gMonFootprint_Skrelp, + LEARNSETS(Skrelp), + .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_DRAGALGE}), + }, + + [SPECIES_DRAGALGE] = + { + .baseHP = 65, + .baseAttack = 75, + .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 = 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, + .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, + PALETTES(Dragalge), + ICON(Dragalge, 5), + .footprint = gMonFootprint_Dragalge, + LEARNSETS(Dragalge), + }, +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER + [SPECIES_CLAUNCHER] = + { + .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, + .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, + .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, + PALETTES(Clauncher), + ICON(Clauncher, 0), + .footprint = gMonFootprint_Clauncher, + LEARNSETS(Clauncher), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CLAWITZER}), + }, + + [SPECIES_CLAWITZER] = + { + .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 = 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, + .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, + PALETTES(Clawitzer), + ICON(Clawitzer, 0), + .footprint = gMonFootprint_Clawitzer, + LEARNSETS(Clawitzer), + }, +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE + [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, + .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, + PALETTES(Helioptile), + ICON(Helioptile, 2), + .footprint = gMonFootprint_Helioptile, + LEARNSETS(Helioptile), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_HELIOLISK}), + }, + + [SPECIES_HELIOLISK] = + { + .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_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Heliolisk), + ICON(Heliolisk, 2), + .footprint = gMonFootprint_Heliolisk, + LEARNSETS(Heliolisk), + }, +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT + [SPECIES_TYRUNT] = + { + .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 }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Tyrunt), + ICON(Tyrunt, 2), + .footprint = gMonFootprint_Tyrunt, + LEARNSETS(Tyrunt), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 39, SPECIES_TYRANTRUM}), + }, + + [SPECIES_TYRANTRUM] = + { + .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, + .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, + .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, + PALETTES(Tyrantrum), + ICON(Tyrantrum, 0), + .footprint = gMonFootprint_Tyrantrum, + LEARNSETS(Tyrantrum), + }, +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA + [SPECIES_AMAURA] = + { + .baseHP = 77, + .baseAttack = 59, + .baseDefense = 50, + .baseSpeed = 46, + .baseSpAttack = 67, + .baseSpDefense = 63, + .types = { TYPE_ROCK, TYPE_ICE }, + .catchRate = 45, + .expYield = 72, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .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, + .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 = 5, + .frontAnimFrames = sAnims_Amaura, + .frontAnimId = ANIM_CONCAVE_ARC_SMALL_TWICE, + BACK_PIC(Amaura, 40, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTES(Amaura), + ICON(Amaura, 0), + .footprint = gMonFootprint_Amaura, + LEARNSETS(Amaura), + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 39, SPECIES_AURORUS}), + }, + + [SPECIES_AURORUS] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .abilities = { ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Aurorus), + ICON(Aurorus, 0), + .footprint = gMonFootprint_Aurorus, + LEARNSETS(Aurorus), + }, +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA + [SPECIES_HAWLUCHA] = + { + .baseHP = 78, + .baseAttack = 92, + .baseDefense = 75, + .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_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, + .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, + PALETTES(Hawlucha), + ICON(Hawlucha, 0), + .footprint = gMonFootprint_Hawlucha, + LEARNSETS(Hawlucha), + }, +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE + [SPECIES_DEDENNE] = + { + .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, + .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, + PALETTES(Dedenne), + ICON(Dedenne, 0), + .footprint = gMonFootprint_Dedenne, + LEARNSETS(Dedenne), + }, +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK + [SPECIES_CARBINK] = + { + .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 = 25, + .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, + .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, + PALETTES(Carbink), + ICON(Carbink, 2), + .footprint = gMonFootprint_Carbink, + LEARNSETS(Carbink), + }, +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY + [SPECIES_GOOMY] = + { + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 35, + .baseSpeed = 40, + .baseSpAttack = 55, + .baseSpDefense = 75, + .types = { TYPE_DRAGON, TYPE_DRAGON }, + .catchRate = 45, + .expYield = 60, + .evYield_SpDefense = 1, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(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, \ + .speciesName = _("Sliggoo"), \ + .cryId = CRY_SLIGGOO, \ + .natDexNum = NATIONAL_DEX_SLIGGOO, \ + .footprint = gMonFootprint_Sliggoo, \ + .formSpeciesIdTable = sSliggooFormSpeciesIdTable + + [SPECIES_SLIGGOO] = + { + 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, + PALETTES(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, \ + .speciesName = _("Goodra"), \ + .cryId = CRY_GOODRA, \ + .natDexNum = NATIONAL_DEX_GOODRA, \ + .footprint = gMonFootprint_Goodra, \ + .formSpeciesIdTable = sGoodraFormSpeciesIdTable + + [SPECIES_GOODRA] = + { + 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, + PALETTES(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( + "A creature given to melancholy.\n" + "Its metallic shell developed as a\n" + "result of the mucus on its skin reacting\n" + "with the iron in Hisui's water."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(SliggooHisuian, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_SliggooHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SliggooHisuian, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_GOODRA_HISUIAN] = + { + 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( + "It loathes solitude and is\n" + "extremely clingy-it will fume and run riot if\n" + "those dearest to it ever leave its\n" + "side."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(GoodraHisuian, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_GoodraHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GoodraHisuian, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, + PALETTES(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, + .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, + .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, + PALETTES(Phantump), + ICON(Phantump, 1), + .footprint = gMonFootprint_Phantump, + LEARNSETS(Phantump), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_TREVENANT}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_TREVENANT}), + }, + + [SPECIES_TREVENANT] = + { + .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, + .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, + PALETTES(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, \ + .speciesName = _("Pumpkaboo"), \ + .natDexNum = NATIONAL_DEX_PUMPKABOO, \ + .categoryName = _("Pumpkin"), \ + .frontAnimFrames = sAnims_Pumpkaboo, \ + .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, \ + PALETTES(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( + "The light that streams out from\n" + "the holes in the pumpkin can\n" + "hypnotize and control the people and\n" + "Pokémon that see it."), + .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_PUMPKABOO_SMALL] = + { + 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( + "When taking spirits to the\n" + "afterlife, small Pumpkaboo prefer the\n" + "spirits of children to those of adults."), + .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_PUMPKABOO_LARGE] = + { + 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( + "When taking spirits to the\n" + "afterlife, large Pumpkaboo prefer the\n" + "spirits of adults to those of children."), + .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_PUMPKABOO_SUPER] = + { + PUMPKABOO_MISC_INFO, + .baseHP = 59, + .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( + "Supersized Pumpkaboo are very\n" + "partial to the spirits of people who\n" + "were of similarly superior proportions."), + .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, \ + .speciesName = _("Gourgeist"), \ + .natDexNum = NATIONAL_DEX_GOURGEIST, \ + .categoryName = _("Pumpkin"), \ + .frontAnimFrames = sAnims_Gourgeist, \ + .frontAnimId = ANIM_SHRINK_GROW, \ + .backAnimId = BACK_ANIM_V_STRETCH, \ + PALETTES(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( + "Eerie cries emanate from its body\n" + "in the dead of night. The sounds are\n" + "said to be the wails of spirits who\n" + "are suffering in the afterlife."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GourgeistAverage, 64, 64), + .frontPicYOffset = 4, + BACK_PIC(GourgeistAverage, 48, 64), + .backPicYOffset = 3, + }, + + [SPECIES_GOURGEIST_SMALL] = + { + 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( + "A small-sized Pumpkaboo evolves\n" + "into a small-sized Gourgeist. Its\n" + "bodily proportions also get passed on\n" + "to its descendants."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GourgeistSmall, 56, 64), + .frontPicYOffset = 5, + BACK_PIC(GourgeistSmall, 48, 56), + .backPicYOffset = 4, + }, + + [SPECIES_GOURGEIST_LARGE] = + { + 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( + "A large-sized Pumpkaboo evolves\n" + "into a large-sized Gourgeist. Its\n" + "bodily proportions also get passed on\n" + "to its descendants."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GourgeistLarge, 64, 64), + .frontPicYOffset = 2, + BACK_PIC(GourgeistLarge, 48, 64), + .backPicYOffset = 2, + }, + + [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( + "A supersized Pumpkaboo evolves\n" + "into a supersized Gourgeist. Its\n" + "bodily proportions also get passed on to\n" + "its descendants."), + .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_BERGMITE] = + { + .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, + .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, + PALETTES(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, \ + .speciesName = _("Avalugg"), \ + .cryId = CRY_AVALUGG, \ + .natDexNum = NATIONAL_DEX_AVALUGG, \ + .categoryName = _("Iceberg"), \ + .footprint = gMonFootprint_Avalugg, \ + .formSpeciesIdTable = sAvaluggFormSpeciesIdTable + + [SPECIES_AVALUGG] = + { + 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, + PALETTES(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( + "The armor of ice covering its lower\n" + "jaw puts steel to shame and can\n" + "shatter rocks with ease."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(AvaluggHisuian, 64, 48), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_AvaluggHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AvaluggHisuian, 64, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 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, + .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, + PALETTES(Noibat), + ICON(Noibat, 2), + .footprint = gMonFootprint_Noibat, + LEARNSETS(Noibat), + .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_NOIVERN}), + }, + + [SPECIES_NOIVERN] = + { + .baseHP = 85, + .baseAttack = 70, + .baseDefense = 80, + .baseSpeed = 123, + .baseSpAttack = 97, + .baseSpDefense = 80, + .types = { TYPE_FLYING, TYPE_DRAGON }, + .catchRate = 45, + .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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_FAIRY_AURA, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .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, \ + PALETTES(Xerneas##Form), \ + ICON(Xerneas##Form, 0), \ + .footprint = gMonFootprint_Xerneas, \ + LEARNSETS(Xerneas), \ + .formSpeciesIdTable = sXerneasFormSpeciesIdTable, \ + .formChangeTable = sXerneasFormChangeTable, \ + .isLegendary = TRUE, \ + } + + [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 = 126, + .baseAttack = 131, + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_DARK_AURA, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .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), \ + PALETTES(Zygarde50), \ + ICON(Zygarde50, 1), \ + .formChangeTable = (ability == ABILITY_POWER_CONSTRUCT \ + ? sZygarde50PowerConstructFormChangeTable \ + : sZygarde50AuraBreakFormChangeTable), \ + ZYGARDE_MISC_INFO(ability), \ + } + +#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), \ + PALETTES(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] = + { + 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( + "This is Zygarde's perfected form.\n" + "From the orifice on its chest, it\n" + "radiates high-powered energy that\n" + "eliminates everything."), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_PINK, \ + .speciesName = _("Diancie"), \ + .natDexNum = NATIONAL_DEX_DIANCIE, \ + .categoryName = _("Jewel"), \ + .footprint = gMonFootprint_Diancie, \ + LEARNSETS(Diancie), \ + .formSpeciesIdTable = sDiancieFormSpeciesIdTable, \ + .formChangeTable = sDiancieFormChangeTable, \ + .isMythical = TRUE + + [SPECIES_DIANCIE] = + { + DIANCE_MISC_INFO, + .baseHP = 50, + .baseAttack = 100, + .baseDefense = 150, + .baseSpeed = 50, + .baseSpAttack = 100, + .baseSpDefense = 150, + .expYield = 270, + .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, + PALETTES(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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_MAGICIAN, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .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_HoopaConfined, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 13, + BACK_PIC(HoopaConfined, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTES(HoopaConfined), + ICON(HoopaConfined, 0), + LEARNSETS(HoopaConfined), + }, + + [SPECIES_HOOPA_UNBOUND] = + { + 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, + PALETTES(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 = 270, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_WATER_ABSORB, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Volcanion), + ICON(Volcanion, 0), + .footprint = gMonFootprint_Volcanion, + LEARNSETS(Volcanion), + }, +#endif //P_FAMILY_VOLCANION + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_7.h b/src/data/pokemon/species_info/gen_7.h new file mode 100644 index 0000000000..f9496af08a --- /dev/null +++ b/src/data/pokemon/species_info/gen_7.h @@ -0,0 +1,4840 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen7[] = +{ +#endif + +#if P_FAMILY_ROWLET + [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, + .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, + PALETTES(Rowlet), + ICON(Rowlet, 0), + .footprint = gMonFootprint_Rowlet, + LEARNSETS(Rowlet), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DARTRIX}), + }, + + [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, + .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, + PALETTES(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, \ + .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_DECIDUEYE] = + { + 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, + PALETTES(Decidueye), + ICON(Decidueye, 1), + LEARNSETS(Decidueye), + }, + +#if P_HISUIAN_FORMS + [SPECIES_DECIDUEYE_HISUIAN] = + { + 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( + "The air stored inside the rachises\n" + "of Decidueye's feathers insulates\n" + "the Pokémon against Hisui's extreme\n" + "cold."), + 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, + PALETTES(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 = 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, + .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, + PALETTES(Litten), + ICON(Litten, 0), + .footprint = gMonFootprint_Litten, + LEARNSETS(Litten), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_TORRACAT}), + }, + + [SPECIES_TORRACAT] = + { + .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, + .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, + PALETTES(Torracat), + ICON(Torracat, 0), + .footprint = gMonFootprint_Torracat, + LEARNSETS(Torracat), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_INCINEROAR}), + }, + + [SPECIES_INCINEROAR] = + { + .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, + .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, + PALETTES(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, + .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, + PALETTES(Popplio), + ICON(Popplio, 0), + .footprint = gMonFootprint_Popplio, + LEARNSETS(Popplio), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_BRIONNE}), + }, + + [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, + .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, + PALETTES(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, + .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, + PALETTES(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, + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Trumbeak), + ICON(Trumbeak, 0), + .footprint = gMonFootprint_Trumbeak, + LEARNSETS(Trumbeak), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_TOUCANNON}), + }, + + [SPECIES_TOUCANNON] = + { + .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, + .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, + PALETTES(Toucannon), + ICON(Toucannon, 0), + .footprint = gMonFootprint_Toucannon, + LEARNSETS(Toucannon), + }, +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS + [SPECIES_YUNGOOS] = + { + .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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Yungoos), + ICON(Yungoos, 2), + .footprint = gMonFootprint_Yungoos, + LEARNSETS(Yungoos), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 20, SPECIES_GUMSHOOS}), + }, + + [SPECIES_GUMSHOOS] = + { + .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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Gumshoos), + ICON(Gumshoos, 2), + .footprint = gMonFootprint_Gumshoos, + LEARNSETS(Gumshoos), + }, +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN + [SPECIES_GRUBBIN] = + { + .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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Grubbin), + ICON(Grubbin, 0), + .footprint = gMonFootprint_Grubbin, + LEARNSETS(Grubbin), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CHARJABUG}), + }, + + [SPECIES_CHARJABUG] = + { + .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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_BATTERY, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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_VIKAVOLT] = + { + .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_LEVITATE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 3, + .frontAnimFrames = sAnims_Vikavolt, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + .enemyMonElevation = 8, + BACK_PIC(Vikavolt, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Vikavolt), + ICON(Vikavolt, 0), + .footprint = gMonFootprint_Vikavolt, + LEARNSETS(Vikavolt), + }, +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER + [SPECIES_CRABRAWLER] = + { + .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 = 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, + .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, + PALETTES(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_CRABOMINABLE] = + { + .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 = 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, + .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, + PALETTES(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 }, \ + .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( + "It wins the hearts of its enemies\n" + "with its passionate dancing and then\n" + "uses the opening it creates to\n" + "burn them up with blazing flames."), + FRONT_PIC(OricorioBaile, 56, 64), + .frontPicYOffset = 2, + .frontAnimId = ANIM_CONCAVE_ARC_SMALL, + BACK_PIC(OricorioBaile, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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( + "This form of Oricorio has sipped\n" + "yellow nectar. It uses nimble steps to\n" + "approach opponents, then knocks\n" + "them out with electric punches."), + FRONT_PIC(OricorioPomPom, 56, 56), + .frontPicYOffset = 5, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OricorioPomPom, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTES(OricorioPomPom), + ICON(OricorioPomPom, 1), + }, + + [SPECIES_ORICORIO_PAU] = + { + ORICORIO_MISC_INFO, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .bodyColor = BODY_COLOR_PINK, + .cryId = CRY_ORICORIO_PAU, + .description = COMPOUND_STRING( + "This form of Oricorio has sipped\n" + "pink nectar. It elevates its mind with\n" + "the gentle steps of its dance, then\n" + "unleashes its psychic energy."), + FRONT_PIC(OricorioPau, 56, 64), + .frontPicYOffset = 3, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OricorioPau, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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( + "It charms its opponents with its\n" + "refined dancing. When they let their\n" + "guard down, it places a curse on\n" + "them that will bring on their demise."), + FRONT_PIC(OricorioSensu, 64, 56), + .frontPicYOffset = 4, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OricorioSensu, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTES(OricorioSensu), + ICON(OricorioSensu, 0), + }, +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY + [SPECIES_CUTIEFLY] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 84, + .baseSpAttack = 55, + .baseSpDefense = 40, + .types = { TYPE_BUG, TYPE_FAIRY }, + .catchRate = 190, + .expYield = 61, + .evYield_Speed = 1, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .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, + .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, + PALETTES(Cutiefly), + ICON(Cutiefly, 2), + .footprint = gMonFootprint_Cutiefly, + LEARNSETS(Cutiefly), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_RIBOMBEE}), + }, + + [SPECIES_RIBOMBEE] = + { + .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, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .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, + .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, + PALETTES(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, \ + .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, \ + PALETTES(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 }, \ + .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( + "It has a calm and collected\n" + "demeanor. It swiftly closes in on its prey,\n" + "then slices them with the rocks in\n" + "its mane."), + FRONT_PIC(LycanrocMidday, 57, 53), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_LycanrocMidday, + .frontAnimId = ANIM_V_SHAKE, + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTES(LycanrocMidday), + ICON(LycanrocMidday, 2), + LEARNSETS(LycanrocMidday), + }, + + [SPECIES_LYCANROC_MIDNIGHT] = + { + 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( + "This Pokémon uses its rocky mane\n" + "to slash any who approach. It will\n" + "even disobey its Trainer if it dislikes\n" + "the orders it was given."), + FRONT_PIC(LycanrocMidnight, 56, 61), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_LycanrocMidnight, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTES(LycanrocMidnight), + ICON(LycanrocMidnight, 0), + LEARNSETS(LycanrocMidnight), + }, + + [SPECIES_LYCANROC_DUSK] = + { + 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( + "These Pokémon have both calm and\n" + "ferocious qualities. It's said that\n" + "this form of Lycanroc is the most\n" + "troublesome to raise."), + FRONT_PIC(LycanrocDusk, 57, 58), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_LycanrocDusk, + .frontAnimId = ANIM_V_SHAKE, + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTES(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, \ + .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( + "Individually, they're incredibly\n" + "weak. It's by gathering up into\n" + "schools that they're able to confront\n" + "opponents."), + FRONT_PIC(WishiwashiSolo, 40, 24), + .frontPicYOffset = 20, + .frontAnimFrames = sAnims_WishiwashiSolo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = 12, + BACK_PIC(WishiwashiSolo, 56, 32), + .backPicYOffset = 18, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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( + "When facing tough opponents, they\n" + "get into formation. But if they get\n" + "wounded in battle, they'll scatter\n" + "and become solitary again."), + 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, + PALETTES(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 = 20, + .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, + .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, + PALETTES(Mareanie), + ICON(Mareanie, 2), + .footprint = gMonFootprint_Mareanie, + LEARNSETS(Mareanie), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TOXAPEX}), + }, + + [SPECIES_TOXAPEX] = + { + .baseHP = 50, + .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_WATER_1, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Toxapex), + ICON(Toxapex, 0), + .footprint = gMonFootprint_Toxapex, + LEARNSETS(Toxapex), + }, +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY + [SPECIES_MUDBRAY] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Mudbray), + ICON(Mudbray, 2), + .footprint = gMonFootprint_Mudbray, + LEARNSETS(Mudbray), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MUDSDALE}), + }, + + [SPECIES_MUDSDALE] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Mudsdale), + ICON(Mudsdale, 0), + .footprint = gMonFootprint_Mudsdale, + LEARNSETS(Mudsdale), + }, +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER + [SPECIES_DEWPIDER] = + { + .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, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .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, + .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, + PALETTES(Dewpider), + ICON(Dewpider, 0), + .footprint = gMonFootprint_Dewpider, + LEARNSETS(Dewpider), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARAQUANID}), + }, + + [SPECIES_ARAQUANID] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG }, + .abilities = { ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Araquanid), + ICON(Araquanid, 2), + .footprint = gMonFootprint_Araquanid, + LEARNSETS(Araquanid), + }, +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS + [SPECIES_FOMANTIS] = + { + .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_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Fomantis), + ICON(Fomantis, 1), + .footprint = gMonFootprint_Fomantis, + LEARNSETS(Fomantis), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 34, SPECIES_LURANTIS}), + }, + + [SPECIES_LURANTIS] = + { + .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, + .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, + PALETTES(Lurantis), + ICON(Lurantis, 1), + .footprint = gMonFootprint_Lurantis, + LEARNSETS(Lurantis), + }, +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL + [SPECIES_MORELULL] = + { + .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, + .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, + PALETTES(Morelull), + ICON(Morelull, 0), + .footprint = gMonFootprint_Morelull, + LEARNSETS(Morelull), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_SHIINOTIC}), + }, + + [SPECIES_SHIINOTIC] = + { + .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, + .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, + PALETTES(Shiinotic), + ICON(Shiinotic, 1), + .footprint = gMonFootprint_Shiinotic, + LEARNSETS(Shiinotic), + }, +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT + [SPECIES_SALANDIT] = + { + .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_MONSTER, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Salandit), + ICON(Salandit, 2), + .footprint = gMonFootprint_Salandit, + LEARNSETS(Salandit), + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 33, SPECIES_SALAZZLE}), + }, + + [SPECIES_SALAZZLE] = + { + .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, + .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, + .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, + PALETTES(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_NORMAL, TYPE_FIGHTING }, + .catchRate = 140, + .expYield = 68, + .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_FLUFFY, ABILITY_KLUTZ, ABILITY_CUTE_CHARM }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Stufful), + ICON(Stufful, 0), + .footprint = gMonFootprint_Stufful, + LEARNSETS(Stufful), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_BEWEAR}), + }, + + [SPECIES_BEWEAR] = + { + .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 = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_UNNERVE }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Bewear), + ICON(Bewear, 0), + .footprint = gMonFootprint_Bewear, + LEARNSETS(Bewear), + }, +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET + [SPECIES_BOUNSWEET] = + { + .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, + .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, + .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, + PALETTES(Bounsweet), + ICON(Bounsweet, 1), + .footprint = gMonFootprint_Bounsweet, + LEARNSETS(Bounsweet), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_STEENEE}), + }, + + [SPECIES_STEENEE] = + { + .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, + .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, + PALETTES(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, + PALETTES(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, + PALETTES(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, + .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, + PALETTES(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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_RECEIVER, ABILITY_NONE, ABILITY_DEFIANT }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Passimian), + ICON(Passimian, 1), + .footprint = gMonFootprint_Passimian, + LEARNSETS(Passimian), + }, +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD + [SPECIES_WIMPOD] = + { + .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_BUG, EGG_GROUP_WATER_3 }, + .abilities = { ABILITY_WIMP_OUT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Wimpod), + ICON(Wimpod, 2), + .footprint = gMonFootprint_Wimpod, + LEARNSETS(Wimpod), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GOLISOPOD}), + }, + + [SPECIES_GOLISOPOD] = + { + .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_BUG, EGG_GROUP_WATER_3 }, + .abilities = { ABILITY_EMERGENCY_EXIT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Golisopod), + ICON(Golisopod, 2), + .footprint = gMonFootprint_Golisopod, + LEARNSETS(Golisopod), + }, +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST + [SPECIES_SANDYGAST] = + { + .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_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Sandygast), + ICON(Sandygast, 1), + .footprint = gMonFootprint_Sandygast, + LEARNSETS(Sandygast), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_PALOSSAND}), + }, + + [SPECIES_PALOSSAND] = + { + .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 = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Palossand), + ICON(Palossand, 2), + .footprint = gMonFootprint_Palossand, + LEARNSETS(Palossand), + }, +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU + [SPECIES_PYUKUMUKU] = + { + .baseHP = 55, + .baseAttack = 60, + .baseDefense = 130, + .baseSpeed = 5, + .baseSpAttack = 30, + .baseSpDefense = 130, + .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_1 }, + .abilities = { ABILITY_INNARDS_OUT, ABILITY_NONE, ABILITY_UNAWARE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Pyukumuku), + ICON(Pyukumuku, 0), + .footprint = gMonFootprint_Pyukumuku, + LEARNSETS(Pyukumuku), + }, +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL + [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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BATTLE_ARMOR, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .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, \ + PALETTES(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, \ + PALETTES(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 = 16, \ + .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 = 75, + .baseSpDefense = 95, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 168, + .evYield_Attack = 2, + .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, + .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, + PALETTES(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_MONSTER, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Turtonator), + ICON(Turtonator, 0), + .footprint = gMonFootprint_Turtonator, + LEARNSETS(Turtonator), + }, +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU + [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, + .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 = 9, + .frontAnimFrames = sAnims_Togedemaru, + .frontAnimId = ANIM_FLASH_YELLOW, + BACK_PIC(Togedemaru, 64, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTES(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, \ + .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, + PALETTES(MimikyuDisguised), + ICON(MimikyuDisguised, 1), + }, + + [SPECIES_MIMIKYU_BUSTED] = + { + MIMIKYU_MISC_INFO, + .description = COMPOUND_STRING( + "After going to all the effort of\n" + "disguising itself, its neck was\n" + "broken. Whatever is inside is probably\n" + "unharmed, but it's still feeling sad."), + 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, + PALETTES(MimikyuBusted), + ICON(MimikyuBusted, 1), + }, +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH + [SPECIES_BRUXISH] = + { + .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 = 15, + .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, + .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, + PALETTES(Bruxish), + ICON(Bruxish, 0), + .footprint = gMonFootprint_Bruxish, + LEARNSETS(Bruxish), + }, +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA + [SPECIES_DRAMPA] = + { + .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_MONSTER, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_BERSERK, ABILITY_SAP_SIPPER, ABILITY_CLOUD_NINE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Drampa), + ICON(Drampa, 0), + .footprint = gMonFootprint_Drampa, + LEARNSETS(Drampa), + }, +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE + [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, + .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, + PALETTES(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, + .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 = 9, + .frontAnimFrames = sAnims_Jangmo_O, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(JangmoO, 42, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTES(JangmoO), + ICON(JangmoO, 2), + .footprint = gMonFootprint_JangmoO, + LEARNSETS(JangmoO), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_HAKAMO_O}), + }, + + [SPECIES_HAKAMO_O] = + { + .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 = 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, + .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, + PALETTES(HakamoO), + ICON(HakamoO, 2), + .footprint = gMonFootprint_HakamoO, + LEARNSETS(HakamoO), + .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_KOMMO_O}), + }, + + [SPECIES_KOMMO_O] = + { + .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 = 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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_ELECTRIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PSYCHIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_GRASSY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(TapuBulu), + ICON(TapuBulu, 2), + .footprint = gMonFootprint_Tapu_Bulu, + LEARNSETS(TapuBulu), + }, +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI + [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, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_MISTY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(TapuFini), + ICON(TapuFini, 0), + .footprint = gMonFootprint_Tapu_Fini, + LEARNSETS(TapuFini), + }, +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG + [SPECIES_COSMOG] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_UNAWARE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Cosmog), + ICON(Cosmog, 2), + .footprint = gMonFootprint_Cosmog, + LEARNSETS(Cosmog), + .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_COSMOEM}), + }, + + [SPECIES_COSMOEM] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_STURDY, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Cosmoem), + ICON(Cosmoem, 0), + .footprint = gMonFootprint_Cosmoem, + LEARNSETS(Cosmoem), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO}, + {EVO_LEVEL_NIGHT, 53, SPECIES_LUNALA}), + }, + + [SPECIES_SOLGALEO] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_FULL_METAL_BODY, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Solgaleo), + ICON(Solgaleo, 0), + .footprint = gMonFootprint_Solgaleo, + LEARNSETS(Solgaleo), + }, + + [SPECIES_LUNALA] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SHADOW_SHIELD, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Lunala), + ICON(Lunala, 2), + .footprint = gMonFootprint_Lunala, + LEARNSETS(Lunala), + }, +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO + [SPECIES_NIHILEGO] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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 = 257, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Pheromosa), + ICON(Pheromosa, 2), + .footprint = gMonFootprint_Pheromosa, + LEARNSETS(Pheromosa), + }, +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE + [SPECIES_XURKITREE] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Xurkitree), + ICON(Xurkitree, 0), + .footprint = gMonFootprint_Xurkitree, + LEARNSETS(Xurkitree), + }, +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA + [SPECIES_CELESTEELA] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Celesteela), + ICON(Celesteela, 0), + .footprint = gMonFootprint_Celesteela, + LEARNSETS(Celesteela), + }, +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA + [SPECIES_KARTANA] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Kartana), + ICON(Kartana, 0), + .footprint = gMonFootprint_Kartana, + LEARNSETS(Kartana), + }, +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD + [SPECIES_GUZZLORD] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .noFlip = TRUE, \ + .speciesName = _("Necrozma"), \ + .natDexNum = NATIONAL_DEX_NECROZMA, \ + .categoryName = _("Prism"), \ + .pokemonScale = 256, \ + .pokemonOffset = 3, \ + .trainerScale = 369, \ + .trainerOffset = 7, \ + .footprint = gMonFootprint_Necrozma, \ + LEARNSETS(Necrozma), \ + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, \ + .isLegendary = TRUE + + [SPECIES_NECROZMA] = + { + 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, + .cryId = CRY_NECROZMA, + .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, + PALETTES(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, + .cryId = CRY_NECROZMA_DUSK_MANE, + .height = 38, + .weight = 4600, + .description = COMPOUND_STRING( + "This is its form while it is\n" + "devouring the light of Solgaleo. It pounces\n" + "on foes and then slashes them with\n" + "the claws on its four limbs and back."), + 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, + PALETTES(NecrozmaDuskMane), + ICON(NecrozmaDuskMane, 0), + .cannotBeTraded = TRUE, + .formChangeTable = sNecrozmaDuskManeFormChangeTable, + }, + + [SPECIES_NECROZMA_DAWN_WINGS] = + { + 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, + .cryId = CRY_NECROZMA_DAWN_WINGS, + .height = 42, + .weight = 3500, + .description = COMPOUND_STRING( + "This is its form while it's\n" + "devouring the light of Lunala. It grasps\n" + "foes in its giant claws and rips them\n" + "apart with brute force."), + 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, + PALETTES(NecrozmaDawnWings), + ICON(NecrozmaDawnWings, 0), + .cannotBeTraded = TRUE, + .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, + .cryId = CRY_NECROZMA_ULTRA, + .height = 75, + .weight = 2300, + .description = COMPOUND_STRING( + "The light pouring out from all over\n" + "its body affects living things and\n" + "nature, impacting them in various\n" + "ways."), + 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, + PALETTES(NecrozmaUltra), + ICON(NecrozmaUltra, 2), + .cannotBeTraded = TRUE, + .isUltraBurst = TRUE, + }, +#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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_SOUL_HEART, ABILITY_NONE }, \ + .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, \ + PALETTES(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( + "This is its form from almost 500\n" + "years ago. Its body is nothing more\n" + "than a container-its artificial heart\n" + "is the actual life-form."), + }, +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW + [SPECIES_MARSHADOW] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(Marshadow), + ICON(Marshadow, 0), + .footprint = gMonFootprint_Marshadow, + LEARNSETS(Marshadow), + .isMythical = TRUE, + }, +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE + [SPECIES_POIPOLE] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Poipole), + ICON(Poipole, 0), + .footprint = gMonFootprint_Poipole, + LEARNSETS(Poipole), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_PULSE, SPECIES_NAGANADEL}), + }, + + [SPECIES_NAGANADEL] = + { + .baseHP = 73, + .baseAttack = 73, + .baseDefense = 73, + .baseSpeed = 121, + .baseSpAttack = 127, + .baseSpDefense = 73, + .types = { TYPE_POISON, TYPE_DRAGON }, + .catchRate = 45, + .expYield = 243, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(Naganadel), + ICON(Naganadel, 0), + .footprint = gMonFootprint_Naganadel, + LEARNSETS(Naganadel), + }, +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA + [SPECIES_STAKATAKA] = + { + .baseHP = 61, + .baseAttack = 131, + .baseDefense = 211, + .baseSpeed = 13, + .baseSpAttack = 53, + .baseSpDefense = 101, + .types = { TYPE_ROCK, TYPE_STEEL }, + .catchRate = 30, + .expYield = 257, + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(Stakataka), + ICON(Stakataka, 0), + .footprint = gMonFootprint_Stakataka, + LEARNSETS(Stakataka), + }, +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON + [SPECIES_BLACEPHALON] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEAST_BOOST, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Blacephalon), + ICON(Blacephalon, 0), + .footprint = gMonFootprint_Blacephalon, + LEARNSETS(Blacephalon), + }, +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA + [SPECIES_ZERAORA] = + { + .baseHP = 88, + .baseAttack = 112, + .baseDefense = 75, + .baseSpeed = 143, + .baseSpAttack = 102, + .baseSpDefense = 80, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 3, + .expYield = 270, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Zeraora), + ICON(Zeraora, 0), + .footprint = gMonFootprint_Zeraora, + LEARNSETS(Zeraora), + }, +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN + [SPECIES_MELTAN] = + { + .baseHP = 46, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 34, + .baseSpAttack = 55, + .baseSpDefense = 35, + .types = { TYPE_STEEL, TYPE_STEEL }, + .catchRate = 3, + .expYield = 135, + .evYield_Attack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_MAGNET_PULL, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Meltan), + ICON(Meltan, 2), + .footprint = gMonFootprint_Meltan, + LEARNSETS(Meltan), + }, + +#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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_IRON_FIST, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .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), \ + .formSpeciesIdTable = sMelmetalFormSpeciesIdTable, \ + .formChangeTable = sMelmetalFormChangeTable, \ + .isMythical = TRUE + + [SPECIES_MELMETAL] = + { + 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, + PALETTES(Melmetal), + ICON(Melmetal, 2), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_MELMETAL_GIGANTAMAX] = + { + MELMETAL_MISC_INFO, + .isGigantamax = TRUE, + .height = 250, + .weight = 0, + .description = COMPOUND_STRING( + "In a distant land, there are\n" + "legends about a cyclopean giant. In fact,\n" + "the giant was a Melmetal that was\n" + "flooded with Gigantamax energy."), + FRONT_PIC(MelmetalGigantamax, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_MelmetalGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MelmetalGigantamax, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(MelmetalGigantamax), + ICON(MelmetalGigantamax, 0), + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MELTAN + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_8.h b/src/data/pokemon/species_info/gen_8.h new file mode 100644 index 0000000000..bcf77fcfa2 --- /dev/null +++ b/src/data/pokemon/species_info/gen_8.h @@ -0,0 +1,5356 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen8[] = +{ +#endif + +#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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Grookey), + ICON(Grookey, 1), + .footprint = gMonFootprint_Grookey, + LEARNSETS(Grookey), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_THWACKEY}), + }, + + [SPECIES_THWACKEY] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Thwackey), + ICON(Thwackey, 1), + .footprint = gMonFootprint_Thwackey, + LEARNSETS(Thwackey), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_RILLABOOM}), + }, + +#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, \ + .speciesName = _("Rillaboom"), \ + .cryId = CRY_RILLABOOM, \ + .natDexNum = NATIONAL_DEX_RILLABOOM, \ + .categoryName = _("Drummer"), \ + .footprint = gMonFootprint_Rillaboom, \ + LEARNSETS(Rillaboom), \ + .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, \ + .formChangeTable = sRillaboomFormChangeTable + + [SPECIES_RILLABOOM] = + { + 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, + PALETTES(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( + "Rillaboom has become one with its\n" + "forest of drums and continues to lay\n" + "down beats that shake all of Galar."), + 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, + PALETTES(RillaboomGigantamax), + ICON(RillaboomGigantamax, 1), + .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 = 40, + .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_HUMAN_LIKE }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Scorbunny), + ICON(Scorbunny, 0), + .footprint = gMonFootprint_Scorbunny, + LEARNSETS(Scorbunny), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_RABOOT}), + }, + + [SPECIES_RABOOT] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Raboot), + ICON(Raboot, 0), + .footprint = gMonFootprint_Raboot, + LEARNSETS(Raboot), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_CINDERACE}), + }, + +#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, \ + .speciesName = _("Cinderace"), \ + .cryId = CRY_CINDERACE, \ + .natDexNum = NATIONAL_DEX_CINDERACE, \ + .categoryName = _("Striker"), \ + .footprint = gMonFootprint_Cinderace, \ + LEARNSETS(Cinderace), \ + .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, \ + .formChangeTable = sCinderaceFormChangeTable + + [SPECIES_CINDERACE] = + { + 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, + PALETTES(Cinderace), + ICON(Cinderace, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_CINDERACE_GIGANTAMAX] = + { + CINDERACE_MISC_INFO, + .height = 270, + .weight = 0, + .description = COMPOUND_STRING( + "Infused with Cinderace's fighting\n" + "spirit, the gigantic Pyro Ball never\n" + "misses its targets and completely\n" + "roasts opponents."), + .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, + PALETTES(CinderaceGigantamax), + ICON(CinderaceGigantamax, 0), + .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 = 62, + .evYield_Speed = 1, + .evYield_SpDefense = 1, + .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, + .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, + PALETTES(Sobble), + ICON(Sobble, 2), + .footprint = gMonFootprint_Sobble, + LEARNSETS(Sobble), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_DRIZZILE}), + }, + + [SPECIES_DRIZZILE] = + { + .baseHP = 65, + .baseAttack = 60, + .baseDefense = 55, + .baseSpeed = 90, + .baseSpAttack = 95, + .baseSpDefense = 55, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 147, + .evYield_SpAttack = 2, + .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, + .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, + PALETTES(Drizzile), + ICON(Drizzile, 2), + .footprint = gMonFootprint_Drizzile, + LEARNSETS(Drizzile), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_INTELEON}), + }, + +#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, \ + .speciesName = _("Inteleon"), \ + .cryId = CRY_INTELEON, \ + .natDexNum = NATIONAL_DEX_INTELEON, \ + .categoryName = _("Secret Agent"), \ + .footprint = gMonFootprint_Inteleon, \ + LEARNSETS(Inteleon), \ + .formSpeciesIdTable = sInteleonFormSpeciesIdTable, \ + .formChangeTable = sInteleonFormChangeTable + + [SPECIES_INTELEON] = + { + 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, + PALETTES(Inteleon), + ICON(Inteleon, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_INTELEON_GIGANTAMAX] = + { + INTELEON_MISC_INFO, + .height = 400, + .weight = 0, + .description = COMPOUND_STRING( + "Gigantamax Inteleon's Water Gun\n" + "move fires at Mach 7. As the Pokémon\n" + "takes aim, it uses the crest on its\n" + "head to gauge wind and temperature."), + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Skwovet), + ICON(Skwovet, 2), + .footprint = gMonFootprint_Skwovet, + LEARNSETS(Skwovet), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GREEDENT}), + }, + + [SPECIES_GREEDENT] = + { + .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, + .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, + PALETTES(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_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Rookidee), + ICON(Rookidee, 0), + .footprint = gMonFootprint_Rookidee, + LEARNSETS(Rookidee), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CORVISQUIRE}), + }, + + [SPECIES_CORVISQUIRE] = + { + .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, + .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, + PALETTES(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, \ + .speciesName = _("Corviknigh"), \ + .cryId = CRY_CORVIKNIGHT, \ + .natDexNum = NATIONAL_DEX_CORVIKNIGHT, \ + .categoryName = _("Raven"), \ + .footprint = gMonFootprint_Corviknight, \ + LEARNSETS(Corviknight), \ + .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, \ + .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, + PALETTES(Corviknight), + ICON(Corviknight, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_CORVIKNIGHT_GIGANTAMAX] = + { + CORVIKNIGHT_MISC_INFO, + .height = 140, + .weight = 0, + .description = COMPOUND_STRING( + "Imbued with Gigantamax energy, its\n" + "wings can whip up winds more\n" + "forceful than any a hurricane could\n" + "muster. The gusts blow everything away."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(CorviknightGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_CorviknightGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CorviknightGigantamax, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(CorviknightGigantamax), + ICON(CorviknightGigantamax, 0), + .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, + .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_BLUE, + .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, + PALETTES(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, + .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, + PALETTES(Dottler), + ICON(Dottler, 2), + .footprint = gMonFootprint_Dottler, + LEARNSETS(Dottler), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ORBEETLE}), + }, + +#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, \ + .speciesName = _("Orbeetle"), \ + .cryId = CRY_ORBEETLE, \ + .natDexNum = NATIONAL_DEX_ORBEETLE, \ + .categoryName = _("Seven Spot"), \ + .footprint = gMonFootprint_Orbeetle, \ + LEARNSETS(Orbeetle), \ + .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, \ + .formChangeTable = sOrbeetleFormChangeTable + + [SPECIES_ORBEETLE] = + { + 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, + PALETTES(Orbeetle), + ICON(Orbeetle, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_ORBEETLE_GIGANTAMAX] = + { + ORBEETLE_MISC_INFO, + .height = 140, + .weight = 0, + .description = COMPOUND_STRING( + "Its brain has grown to a\n" + "gargantuan size, as has the rest of its body.\n" + "This Pokémon's intellect and\n" + "psychic abilities are overpowering."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(OrbeetleGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_OrbeetleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OrbeetleGigantamax, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(OrbeetleGigantamax), + ICON(OrbeetleGigantamax, 0), + .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_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Nickit), + ICON(Nickit, 2), + .footprint = gMonFootprint_Nickit, + LEARNSETS(Nickit), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_THIEVUL}), + }, + + [SPECIES_THIEVUL] = + { + .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, + .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, + PALETTES(Thievul), + ICON(Thievul, 2), + .footprint = gMonFootprint_Thievul, + LEARNSETS(Thievul), + }, +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR + [SPECIES_GOSSIFLEUR] = + { + .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_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Gossifleur), + ICON(Gossifleur, 1), + .footprint = gMonFootprint_Gossifleur, + LEARNSETS(Gossifleur), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_ELDEGOSS}), + }, + + [SPECIES_ELDEGOSS] = + { + .baseHP = 60, + .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_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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, + .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, + PALETTES(Wooloo), + ICON(Wooloo, 0), + .footprint = gMonFootprint_Wooloo, + LEARNSETS(Wooloo), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_DUBWOOL}), + }, + + [SPECIES_DUBWOOL] = + { + .baseHP = 72, + .baseAttack = 80, + .baseDefense = 100, + .baseSpeed = 88, + .baseSpAttack = 60, + .baseSpDefense = 90, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .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, + .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, + PALETTES(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_WATER_1 }, + .abilities = { ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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, \ + .speciesName = _("Drednaw"), \ + .cryId = CRY_DREDNAW, \ + .natDexNum = NATIONAL_DEX_DREDNAW, \ + .categoryName = _("Bite"), \ + .footprint = gMonFootprint_Drednaw, \ + LEARNSETS(Drednaw), \ + .formSpeciesIdTable = sDrednawFormSpeciesIdTable, \ + .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, + PALETTES(Drednaw), + ICON(Drednaw, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_DREDNAW_GIGANTAMAX] = + { + DREDNAW_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + "In the Galar region, there's a tale\n" + "about this Pokémon chewing up a\n" + "mountain and using the rubble to stop a\n" + "flood."), + .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, + PALETTES(DrednawGigantamax), + ICON(DrednawGigantamax, 0), + .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, + .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, + PALETTES(Yamper), + ICON(Yamper, 1), + .footprint = gMonFootprint_Yamper, + LEARNSETS(Yamper), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLTUND}), + }, + + [SPECIES_BOLTUND] = + { + .baseHP = 69, + .baseAttack = 90, + .baseDefense = 60, + .baseSpeed = 121, + .baseSpAttack = 90, + .baseSpDefense = 60, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 45, + .expYield = 172, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_COMPETITIVE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Boltund), + ICON(Boltund, 1), + .footprint = gMonFootprint_Boltund, + LEARNSETS(Boltund), + }, +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY + [SPECIES_ROLYCOLY] = + { + .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 = 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, + .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, + PALETTES(Rolycoly), + ICON(Rolycoly, 0), + .footprint = gMonFootprint_Rolycoly, + LEARNSETS(Rolycoly), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CARKOL}), + }, + + [SPECIES_CARKOL] = + { + .baseHP = 80, + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Carkol), + ICON(Carkol, 0), + .footprint = gMonFootprint_Carkol, + LEARNSETS(Carkol), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COALOSSAL}), + }, + +#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, \ + .speciesName = _("Coalossal"), \ + .cryId = CRY_COALOSSAL, \ + .natDexNum = NATIONAL_DEX_COALOSSAL, \ + .categoryName = _("Coal"), \ + .footprint = gMonFootprint_Coalossal, \ + LEARNSETS(Coalossal), \ + .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, \ + .formChangeTable = sCoalossalFormChangeTable + + [SPECIES_COALOSSAL] = + { + 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, + PALETTES(Coalossal), + ICON(Coalossal, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_COALOSSAL_GIGANTAMAX] = + { + COALOSSAL_MISC_INFO, + .height = 420, + .weight = 0, + .description = COMPOUND_STRING( + "Its body is a colossal stove. With\n" + "Gigantamax energy stoking the fire,\n" + "this Pokémon's flame burns hotter\n" + "than 3,600 degrees Fahrenheit."), + .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, + PALETTES(CoalossalGigantamax), + ICON(CoalossalGigantamax, 0), + .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_ERRATIC, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_BULLETPROOF }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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}), + }, + +#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, \ + .speciesName = _("Flapple"), \ + .cryId = CRY_FLAPPLE, \ + .natDexNum = NATIONAL_DEX_FLAPPLE, \ + .categoryName = _("Apple Wing"), \ + .footprint = gMonFootprint_Flapple, \ + LEARNSETS(Flapple), \ + .formSpeciesIdTable = sFlappleFormSpeciesIdTable, \ + .formChangeTable = sFlappleFormChangeTable + + [SPECIES_FLAPPLE] = + { + 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, + PALETTES(Flapple), + ICON(Flapple, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_FLAPPLE_GIGANTAMAX] = + { + FLAPPLE_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + "Under the influence of Gigantamax\n" + "energy, it produces much more sweet\n" + "nectar, and its shape has changed\n" + "to resemble a giant apple."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(FlappleGigantamax, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_FlappleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(FlappleGigantamax, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(FlappleGigantamax), + ICON(FlappleGigantamax, 1), + .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, \ + .speciesName = _("Appletun"), \ + .cryId = CRY_APPLETUN, \ + .natDexNum = NATIONAL_DEX_APPLETUN, \ + .categoryName = _("Apple Nectar"), \ + .footprint = gMonFootprint_Appletun, \ + LEARNSETS(Appletun), \ + .formSpeciesIdTable = sAppletunFormSpeciesIdTable, \ + .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, + PALETTES(Appletun), + ICON(Appletun, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_APPLETUN_GIGANTAMAX] = + { + APPLETUN_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + "Due to Gigantamax energy, this\n" + "Pokémon's nectar has thickened. The\n" + "increased viscosity lets the nectar\n" + "absorb more damage than before."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(AppletunGigantamax, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_AppletunGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AppletunGigantamax, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(AppletunGigantamax), + ICON(AppletunGigantamax, 1), + .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 = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_SUPERSWEET_SYRUP, ABILITY_GLUTTONY, ABILITY_STICKY_HOLD }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 5, + .frontAnimFrames = sAnims_Dipplin, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dipplin, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 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 = 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, + .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, + PALETTES(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, \ + .speciesName = _("Sandaconda"), \ + .cryId = CRY_SANDACONDA, \ + .natDexNum = NATIONAL_DEX_SANDACONDA, \ + .categoryName = _("Sand Snake"), \ + .footprint = gMonFootprint_Sandaconda, \ + LEARNSETS(Sandaconda), \ + .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, \ + .formChangeTable = sSandacondaFormChangeTable + + [SPECIES_SANDACONDA] = + { + 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, + PALETTES(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 = 1, + .frontAnimFrames = sAnims_SandacondaGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SandacondaGigantamax, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(SandacondaGigantamax), + ICON(SandacondaGigantamax, 1), + .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, \ + .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, + PALETTES(Cramorant), + ICON(Cramorant, 0), + }, + + [SPECIES_CRAMORANT_GULPING] = + { + CRAMORANT_MISC_INFO, + .description = COMPOUND_STRING( + "Cramorant's gluttony led it to try\n" + "to swallow an Arrokuda whole, which\n" + "in turn led to Cramorant getting an\n" + "Arrokuda stuck in its throat."), + 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, + PALETTES(CramorantGulping), + ICON(CramorantGulping, 0), + }, + + [SPECIES_CRAMORANT_GORGING] = + { + CRAMORANT_MISC_INFO, + .description = COMPOUND_STRING( + "This Cramorant has accidentally\n" + "gotten a Pikachu lodged in its gullet.\n" + "Cramorant is choking a little, but it\n" + "isn't really bothered."), + 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, + PALETTES(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 = 30, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 255, + .expYield = 56, + .evYield_Speed = 1, + .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, + .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 = 17, + .frontAnimFrames = sAnims_Arrokuda, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Arrokuda, 48, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Arrokuda), + ICON(Arrokuda, 2), + .footprint = gMonFootprint_Arrokuda, + LEARNSETS(Arrokuda), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_BARRASKEWDA}), + }, + + [SPECIES_BARRASKEWDA] = + { + .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 = 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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_RATTLED, ABILITY_STATIC, ABILITY_KLUTZ }, + .bodyColor = BODY_COLOR_PURPLE, + .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, + PALETTES(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, \ + .speciesName = _("Toxtricity"), \ + .natDexNum = NATIONAL_DEX_TOXTRICITY, \ + .categoryName = _("Punk"), \ + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, \ + .formChangeTable = sToxtricityAmpedFormChangeTable + + [SPECIES_TOXTRICITY_AMPED] = + { + 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, + PALETTES(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, + PALETTES(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( + "Capable of generating 15,000 volts\n" + "of electricity, this Pokémon looks\n" + "down on all that would challenge it."), + .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, + PALETTES(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, + PALETTES(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 = 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, + .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, + PALETTES(Sizzlipede), + ICON(Sizzlipede, 0), + .footprint = gMonFootprint_Sizzlipede, + LEARNSETS(Sizzlipede), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_CENTISKORCH}), + }, + +#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, \ + .speciesName = _("Centiskorc"), \ + .cryId = CRY_CENTISKORCH, \ + .natDexNum = NATIONAL_DEX_CENTISKORCH, \ + .categoryName = _("Radiator"), \ + .footprint = gMonFootprint_Centiskorch, \ + LEARNSETS(Centiskorch), \ + .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, \ + .formChangeTable = sCentiskorchFormChangeTable + + [SPECIES_CENTISKORCH] = + { + 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, + PALETTES(Centiskorch), + ICON(Centiskorch, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_CENTISKORCH_GIGANTAMAX] = + { + CENTISKORCH_MISC_INFO, + .height = 750, + .weight = 0, + .description = COMPOUND_STRING( + "The heat that comes off a\n" + "Gigantamax Centiskorch may destabilize air\n" + "currents. Sometimes it can even\n" + "cause storms."), + .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, + PALETTES(CentiskorchGigantamax), + ICON(CentiskorchGigantamax, 0), + .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_WATER_1, EGG_GROUP_HUMAN_LIKE }, + .abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Clobbopus), + ICON(Clobbopus, 0), + .footprint = gMonFootprint_Clobbopus, + LEARNSETS(Clobbopus), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}), + }, + + [SPECIES_GRAPPLOCT] = + { + .baseHP = 80, + .baseAttack = 118, + .baseDefense = 90, + .baseSpeed = 42, + .baseSpAttack = 70, + .baseSpDefense = 80, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 168, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .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, + .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, + PALETTES(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, \ + .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, \ + PALETTES(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( + "The swirl pattern in this Pokémon's\n" + "body is its weakness. If it gets\n" + "stirred, the swirl loses its shape, and\n" + "Sinistea gets dizzy."), + .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, \ + .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, \ + PALETTES(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( + "Trainers Polteageist trusts will be\n" + "allowed to experience its\n" + "distinctive flavor and aroma firsthand by\n" + "sampling just a tiny bit of its tea."), + .enemyMonElevation = 11, + }, +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA + [SPECIES_HATENNA] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY }, + .abilities = { ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(Hatenna), + ICON(Hatenna, 0), + .footprint = gMonFootprint_Hatenna, + LEARNSETS(Hatenna), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_HATTREM}), + }, + + [SPECIES_HATTREM] = + { + .baseHP = 57, + .baseAttack = 40, + .baseDefense = 65, + .baseSpeed = 49, + .baseSpAttack = 86, + .baseSpDefense = 73, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 120, + .expYield = 130, + .evYield_SpAttack = 2, + .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, + .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, + PALETTES(Hattrem), + ICON(Hattrem, 0), + .footprint = gMonFootprint_Hattrem, + LEARNSETS(Hattrem), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_HATTERENE}), + }, + +#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, \ + .speciesName = _("Hatterene"), \ + .cryId = CRY_HATTERENE, \ + .natDexNum = NATIONAL_DEX_HATTERENE, \ + .categoryName = _("Silent"), \ + .footprint = gMonFootprint_Hatterene, \ + LEARNSETS(Hatterene), \ + .formSpeciesIdTable = sHattereneFormSpeciesIdTable, \ + .formChangeTable = sHattereneFormChangeTable + + [SPECIES_HATTERENE] = + { + 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, + PALETTES(Hatterene), + ICON(Hatterene, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_HATTERENE_GIGANTAMAX] = + { + HATTERENE_MISC_INFO, + .height = 260, + .weight = 0, + .description = COMPOUND_STRING( + "This Pokémon can read the\n" + "emotions of creatures over 30 miles away.\n" + "The minute it senses hostility, it\n" + "goes on the attack."), + .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, + PALETTES(HattereneGigantamax), + ICON(HattereneGigantamax, 0), + .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 = 40, + .types = { TYPE_DARK, TYPE_FAIRY }, + .catchRate = 255, + .expYield = 53, + .evYield_SpAttack = 1, + .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, + .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, + PALETTES(Impidimp), + ICON(Impidimp, 0), + .footprint = gMonFootprint_Impidimp, + LEARNSETS(Impidimp), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MORGREM}), + }, + + [SPECIES_MORGREM] = + { + .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, + .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, + PALETTES(Morgrem), + ICON(Morgrem, 0), + .footprint = gMonFootprint_Morgrem, + LEARNSETS(Morgrem), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_GRIMMSNARL}), + }, + +#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, \ + .speciesName = _("Grimmsnarl"), \ + .cryId = CRY_GRIMMSNARL, \ + .natDexNum = NATIONAL_DEX_GRIMMSNARL, \ + .categoryName = _("Bulk Up"), \ + .footprint = gMonFootprint_Grimmsnarl, \ + LEARNSETS(Grimmsnarl), \ + .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, \ + .formChangeTable = sGrimmsnarlFormChangeTable + + [SPECIES_GRIMMSNARL] = + { + 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, + PALETTES(Grimmsnarl), + ICON(Grimmsnarl, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_GRIMMSNARL_GIGANTAMAX] = + { + GRIMMSNARL_MISC_INFO, + .height = 320, + .weight = 0, + .description = COMPOUND_STRING( + "Gigantamax energy has caused more\n" + "hair to sprout all over its body.\n" + "With the added strength, it can jump\n" + "over the world's tallest building."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(GrimmsnarlGigantamax, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_GrimmsnarlGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GrimmsnarlGigantamax, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(GrimmsnarlGigantamax), + ICON(GrimmsnarlGigantamax, 0), + .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_FAIRY, EGG_GROUP_AMORPHOUS }, + .abilities = { ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(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}), + }, + +#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 + +#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(Alcremie ##sweet, 40, 56), \ + .frontPicYOffset = 7, \ + .frontAnimFrames = sAnims_Alcremie, \ + BACK_PIC(Alcremie ##sweet, 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] = + { + 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( + "It launches swarms of missiles,\n" + "each made of cream and loaded with\n" + "100,000 kilocalories. Get hit by one of\n" + "these, and your head will swim."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(AlcremieGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_AlcremieGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AlcremieGigantamax, 64, 64), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(AlcremieGigantamax), + ICON(AlcremieGigantamax, 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 = 165, + .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, + .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, + PALETTES(Falinks), + ICON(Falinks, 0), + .footprint = gMonFootprint_Falinks, + LEARNSETS(Falinks), + }, +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN + [SPECIES_PINCURCHIN] = + { + .baseHP = 48, + .baseAttack = 101, + .baseDefense = 95, + .baseSpeed = 15, + .baseSpAttack = 91, + .baseSpDefense = 85, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 75, + .expYield = 152, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .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, + .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, + PALETTES(Pincurchin), + ICON(Pincurchin, 0), + .footprint = gMonFootprint_Pincurchin, + LEARNSETS(Pincurchin), + }, +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM + [SPECIES_SNOM] = + { + .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, + .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_NONE, ABILITY_ICE_SCALES }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Snom), + ICON(Snom, 0), + .footprint = gMonFootprint_Snom, + LEARNSETS(Snom), + .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_FROSMOTH}), + }, + + [SPECIES_FROSMOTH] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Frosmoth), + ICON(Frosmoth, 0), + .footprint = gMonFootprint_Frosmoth, + LEARNSETS(Frosmoth), + }, +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER + [SPECIES_STONJOURNER] = + { + .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 = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_POWER_SPOT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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, \ + .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, + PALETTES(EiscueIceFace), + ICON(EiscueIceFace, 0), + }, + + [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( + "The hair on its head connects to\n" + "the surface of its brain. When this\n" + "Pokémon has something on its mind,\n" + "its hair chills the air around it."), + 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, + PALETTES(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, \ + .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, + PALETTES(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( + "They diligently serve people and\n" + "Pokémon so they can gather feelings\n" + "of gratitude. The females are\n" + "particularly good at babysitting."), + 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, + PALETTES(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, \ + .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, + PALETTES(MorpekoFullBelly), + ICON(MorpekoFullBelly, 2), + }, + + [SPECIES_MORPEKO_HANGRY] = + { + MORPEKO_MISC_INFO, + .cryId = CRY_MORPEKO_HANGRY, + .description = COMPOUND_STRING( + "Intense hunger drives it to\n" + "extremes of violence, and the electricity\n" + "in its cheek sacs has converted into\n" + "a Dark-type energy."), + 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, + PALETTES(MorpekoHangry), + ICON(MorpekoHangry, 2), + }, +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT + [SPECIES_CUFANT] = + { + .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, + .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, + PALETTES(Cufant), + ICON(Cufant, 0), + .footprint = gMonFootprint_Cufant, + LEARNSETS(Cufant), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COPPERAJAH}), + }, + +#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, \ + .speciesName = _("Copperajah"), \ + .cryId = CRY_COPPERAJAH, \ + .natDexNum = NATIONAL_DEX_COPPERAJAH, \ + .categoryName = _("Copperderm"), \ + .footprint = gMonFootprint_Copperajah, \ + LEARNSETS(Copperajah), \ + .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, \ + .formChangeTable = sCopperajahFormChangeTable + + [SPECIES_COPPERAJAH] = + { + 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, + PALETTES(Copperajah), + ICON(Copperajah, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_COPPERAJAH_GIGANTAMAX] = + { + COPPERAJAH_MISC_INFO, + .height = 230, + .weight = 0, + .description = COMPOUND_STRING( + "After this Pokémon has\n" + "Gigantamaxed, its massive nose can utterly\n" + "demolish large structures with a single\n" + "smashing blow."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(CopperajahGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_CopperajahGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CopperajahGigantamax, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(CopperajahGigantamax), + ICON(CopperajahGigantamax, 0), + .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 = 177, + .evYield_Attack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_HUSTLE, ABILITY_SAND_RUSH }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Dracozolt), + ICON(Dracozolt, 1), + .footprint = gMonFootprint_Dracozolt, + LEARNSETS(Dracozolt), + }, +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT + [SPECIES_ARCTOZOLT] = + { + .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 = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_STATIC, ABILITY_SLUSH_RUSH }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(Arctozolt), + ICON(Arctozolt, 2), + .footprint = gMonFootprint_Arctozolt, + LEARNSETS(Arctozolt), + }, +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH + [SPECIES_DRACOVISH] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_WATER_ABSORB, ABILITY_STRONG_JAW, ABILITY_SAND_RUSH }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Dracovish), + ICON(Dracovish, 0), + .footprint = gMonFootprint_Dracovish, + LEARNSETS(Dracovish), + }, +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH + [SPECIES_ARCTOVISH] = + { + .baseHP = 90, + .baseAttack = 90, + .baseDefense = 100, + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_WATER_ABSORB, ABILITY_ICE_BODY, ABILITY_SLUSH_RUSH }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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, \ + .speciesName = _("Duraludon"), \ + .cryId = CRY_DURALUDON, \ + .natDexNum = NATIONAL_DEX_DURALUDON, \ + .categoryName = _("Alloy"), \ + .footprint = gMonFootprint_Duraludon, \ + LEARNSETS(Duraludon), \ + .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, \ + .formChangeTable = sDuraludonFormChangeTable + + [SPECIES_DURALUDON] = + { + 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, + PALETTES(Duraludon), + ICON(Duraludon, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_DURALUDON_GIGANTAMAX] = + { + DURALUDON_MISC_INFO, + .height = 430, + .weight = 0, + .description = COMPOUND_STRING( + "The hardness of its cells is\n" + "exceptional, even among Steel types. It\n" + "also has a body structure that's\n" + "resistant to earthquakes."), + .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, + PALETTES(DuraludonGigantamax), + ICON(DuraludonGigantamax, 0), + .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 = 54, + .evYield_Speed = 1, + .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, + .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, + PALETTES(Dreepy), + ICON(Dreepy, 0), + .footprint = gMonFootprint_Dreepy, + LEARNSETS(Dreepy), + .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_DRAKLOAK}), + }, + + [SPECIES_DRAKLOAK] = + { + .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, + .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, + PALETTES(Drakloak), + ICON(Drakloak, 0), + .footprint = gMonFootprint_Drakloak, + LEARNSETS(Drakloak), + .evolutions = EVOLUTION({EVO_LEVEL, 60, SPECIES_DRAGAPULT}), + }, + + [SPECIES_DRAGAPULT] = + { + .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, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .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, + PALETTES(ZacianHeroOfManyBattles), + ICON(ZacianHeroOfManyBattles, 2), + }, + + [SPECIES_ZACIAN_CROWNED_SWORD] = + { + ZACIAN_MISC_INFO, + .baseHP = 92, + .baseAttack = P_UPDATED_STATS >= GEN_9 ? 150 : 170, + .baseDefense = 115, + .baseSpeed = 148, + .baseSpAttack = 80, + .baseSpDefense = 115, + .types = { TYPE_FAIRY, TYPE_STEEL }, + .expYield = 360, + .cryId = CRY_ZACIAN_CROWNED_SWORD, + .weight = 3550, + .description = COMPOUND_STRING( + "Able to cut down anything with a\n" + "single strike, it became known as the\n" + "Fairy King's Sword, and it inspired\n" + "awe in friend and foe alike."), + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_RED, \ + .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, + PALETTES(ZamazentaHeroOfManyBattles), + ICON(ZamazentaHeroOfManyBattles, 2), + }, + + [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = + { + 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 = P_UPDATED_STATS >= GEN_9 ? 140 : 145, + .types = { TYPE_FIGHTING, TYPE_STEEL }, + .expYield = 360, + .cryId = CRY_ZAMAZENTA_CROWNED_SHIELD, + .weight = 7850, + .description = COMPOUND_STRING( + "Its ability to deflect any attack\n" + "led to it being known as the Fighting\n" + "Master's Shield. It was feared and\n" + "respected by all."), + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_PRESSURE, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .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, + PALETTES(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( + "As a result of Rose's meddling,\n" + "Eternatus absorbed all the energy in\n" + "the Galar region. It's now in a state\n" + "of power overload."), + 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, + PALETTES(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_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GRAY, \ + .isLegendary = TRUE, \ + .speciesName = _("Urshifu"), \ + .natDexNum = NATIONAL_DEX_URSHIFU, \ + .categoryName = _("Wushu"), \ + .footprint = gMonFootprint_Urshifu, \ + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable + +#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, + PALETTES(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( + "People call it the embodiment of\n" + "rage. It's said that this Pokémon's\n" + "terrifying expression and shout will\n" + "rid the world of malevolence."), + 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, + PALETTES(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( + "This form of Urshifu is a strong\n" + "believer in defeating foes by raining\n" + "many blows down on them. Its\n" + "strikes are nonstop, flowing like a river."), + 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, + PALETTES(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( + "As it waits for the right moment to\n" + "unleash its Gigantamax power, this\n" + "Pokémon maintains a perfect one-\n" + "legged stance. It won't even twitch."), + 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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ABILITY_LEAF_GUARD, ABILITY_NONE }, \ + .bodyColor = BODY_COLOR_GREEN, \ + .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, + PALETTES(Zarude), + ICON(Zarude, 1), + }, + [SPECIES_ZARUDE_DADA] = + { + ZARUDE_MISC_INFO, + .description = COMPOUND_STRING( + "This Zarude's special strength\n" + "stems from its love and care for an\n" + "orphaned human child that the Pokémon\n" + "has raised."), + 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, + PALETTES(ZarudeDada), + ICON(ZarudeDada, 1), + }, +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI + [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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_TRANSISTOR, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Regieleki), + ICON(Regieleki, 0), + .footprint = gMonFootprint_Regieleki, + LEARNSETS(Regieleki), + .isLegendary = TRUE, + }, +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO + [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, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_DRAGONS_MAW, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Regidrago), + ICON(Regidrago, 0), + .footprint = gMonFootprint_Regidrago, + LEARNSETS(Regidrago), + }, +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER + [SPECIES_GLASTRIER] = + { + .baseHP = 100, + .baseAttack = 145, + .baseDefense = 130, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = 110, + .types = { TYPE_ICE, TYPE_ICE }, + .catchRate = 3, + .expYield = 290, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_CHILLING_NEIGH, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Glastrier), + ICON(Glastrier, 0), + .footprint = gMonFootprint_Glastrier, + LEARNSETS(Glastrier), + }, +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER + [SPECIES_SPECTRIER] = + { + .baseHP = 100, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 130, + .baseSpAttack = 145, + .baseSpDefense = 80, + .types = { TYPE_GHOST, TYPE_GHOST }, + .catchRate = 3, + .expYield = 290, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_GRIM_NEIGH, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .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, + PALETTES(Spectrier), + ICON(Spectrier, 0), + .footprint = gMonFootprint_Spectrier, + LEARNSETS(Spectrier), + }, +#endif //P_FAMILY_SPECTRIER + +#define CALYREX_MISC_INFO \ + .speciesName = _("Calyrex"), \ + .natDexNum = NATIONAL_DEX_CALYREX, \ + .footprint = gMonFootprint_Calyrex, \ + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, \ + .isLegendary = TRUE + +#if P_FAMILY_CALYREX + [SPECIES_CALYREX] = + { + CALYREX_MISC_INFO, + .baseHP = 100, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 80, + .baseSpAttack = 80, + .baseSpDefense = 80, + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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, + PALETTES(Calyrex), + ICON(Calyrex, 0), + LEARNSETS(Calyrex), + }, + +#if P_FUSION_FORMS + [SPECIES_CALYREX_ICE_RIDER] = + { + 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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( + "According to lore, this Pokémon\n" + "showed no mercy to those who got in\n" + "its way, yet it would heal its\n" + "opponents' wounds after battle."), + .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, + PALETTES(CalyrexIceRider), + ICON(CalyrexIceRider, 0), + LEARNSETS(CalyrexIceRider), + .cannotBeTraded = TRUE, + }, + + [SPECIES_CALYREX_SHADOW_RIDER] = + { + CALYREX_MISC_INFO, + .baseHP = 100, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 150, + .baseSpAttack = 165, + .baseSpDefense = 100, + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .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( + "It's said that Calyrex and a\n" + "Pokémon that had bonded with it ran all\n" + "across the Galar region to bring green\n" + "to the wastelands."), + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_PINK, \ + .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_ENAMORUS_INCARNATE] = + { + 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 = 1, + .frontAnimFrames = sAnims_EnamorusIncarnate, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 7, + BACK_PIC(EnamorusIncarnate, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(EnamorusIncarnate), + ICON(EnamorusIncarnate, 1), + //.footprint = gMonFootprint_EnamorusIncarnate, + }, + + [SPECIES_ENAMORUS_THERIAN] = + { + 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( + "From the clouds, it descends upon\n" + "those who treat any form of life\n" + "with disrespect and metes out\n" + "wrathful, ruthless punishment."), + FRONT_PIC(EnamorusTherian, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_EnamorusTherian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(EnamorusTherian, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(EnamorusTherian), + ICON(EnamorusTherian, 1), + //.footprint = gMonFootprint_Enamorus, + }, +#endif //P_FAMILY_ENAMORUS + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/species_info/gen_9.h b/src/data/pokemon/species_info/gen_9.h new file mode 100644 index 0000000000..2f5f0ad76a --- /dev/null +++ b/src/data/pokemon/species_info/gen_9.h @@ -0,0 +1,5433 @@ +#ifdef __INTELLISENSE__ +const struct SpeciesInfo gSpeciesInfoGen9[] = +{ +#endif + +#if P_FAMILY_SPRIGATITO + [SPECIES_SPRIGATITO] = + { + .baseHP = 40, + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Sprigatito), + ICON(Sprigatito, 4), + //.footprint = gMonFootprint_Sprigatito, + LEARNSETS(Sprigatito), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FLORAGATO}), + }, + + [SPECIES_FLORAGATO] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 3, + .frontAnimFrames = sAnims_Floragato, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Floragato, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Floragato), + ICON(Floragato, 1), + //.footprint = gMonFootprint_Floragato, + LEARNSETS(Floragato), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_MEOWSCARADA}), + }, + + [SPECIES_MEOWSCARADA] = + { + .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_FIELD, EGG_GROUP_GRASS }, + .abilities = { ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Meowscarada), + ICON(Meowscarada, 1), + //.footprint = gMonFootprint_Meowscarada, + LEARNSETS(Meowscarada), + }, +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO + [SPECIES_FUECOCO] = + { + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Fuecoco), + ICON(Fuecoco, 0), + //.footprint = gMonFootprint_Fuecoco, + LEARNSETS(Fuecoco), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_CROCALOR}), + }, + + [SPECIES_CROCALOR] = + { + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, + .bodyColor = BODY_COLOR_RED, + .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 = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Crocalor), + ICON(Crocalor, 0), + //.footprint = gMonFootprint_Crocalor, + LEARNSETS(Crocalor), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SKELEDIRGE}), + }, + + [SPECIES_SKELEDIRGE] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Skeledirge), + ICON(Skeledirge, 0), + //.footprint = gMonFootprint_Skeledirge, + LEARNSETS(Skeledirge), + }, +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY + [SPECIES_QUAXLY] = + { + .baseHP = 55, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 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_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_WHITE, + .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 = 10, + .frontAnimFrames = sAnims_Quaxly, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Quaxly, 64, 64), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Quaxly), + ICON(Quaxly, 2), + //.footprint = gMonFootprint_Quaxly, + LEARNSETS(Quaxly), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUAXWELL}), + }, + + [SPECIES_QUAXWELL] = + { + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 60, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 144, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 3, + .frontAnimFrames = sAnims_Quaxwell, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Quaxwell, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Quaxwell), + ICON(Quaxwell, 0), + //.footprint = gMonFootprint_Quaxwell, + LEARNSETS(Quaxwell), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_QUAQUAVAL}), + }, + + [SPECIES_QUAQUAVAL] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Quaquaval), + ICON(Quaquaval, 0), + //.footprint = gMonFootprint_Quaquaval, + LEARNSETS(Quaquaval), + }, +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK + [SPECIES_LECHONK] = + { + .baseHP = 54, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 255, + .expYield = 51, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 12, + .frontAnimFrames = sAnims_Lechonk, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lechonk, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, \ + .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, + PALETTES(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( + "This is a meticulous Pokémon that\n" + "likes to keep things tidy. It\n" + "shrouds itself in a floral aroma that\n" + "soothes the Pokémon around it."), + 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, + PALETTES(OinkologneFemale), + ICON(OinkologneFemale, 2), + //.footprint = gMonFootprint_Oinkologne, + LEARNSETS(OinkologneFemale), + }, +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA + [SPECIES_TAROUNTULA] = + { + .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 = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT }, + .bodyColor = BODY_COLOR_WHITE, + .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 = 10, + .frontAnimFrames = sAnims_Tarountula, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tarountula, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Tarountula), + ICON(Tarountula, 1), + //.footprint = gMonFootprint_Tarountula, + LEARNSETS(Tarountula), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_SPIDOPS}), + }, + + [SPECIES_SPIDOPS] = + { + .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 = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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 = 42, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 20, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 8, + .frontAnimFrames = sAnims_Nymble, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Nymble, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Nymble), + ICON(Nymble, 0), + //.footprint = gMonFootprint_Nymble, + LEARNSETS(Nymble), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_LOKIX}), + }, + + [SPECIES_LOKIX] = + { + .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 = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 3, + .frontAnimFrames = sAnims_Lokix, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lokix, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Lokix), + ICON(Lokix, 0), + //.footprint = gMonFootprint_Lokix, + LEARNSETS(Lokix), + }, +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI + [SPECIES_PAWMI] = + { + .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 = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_STATIC, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 10, + .frontAnimFrames = sAnims_Pawmi, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pawmi, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Pawmi), + ICON(Pawmi, 3), + //.footprint = gMonFootprint_Pawmi, + LEARNSETS(Pawmi), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PAWMO}), + }, + + [SPECIES_PAWMO] = + { + .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 = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 4, + .frontAnimFrames = sAnims_Pawmo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pawmo, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Pawmo), + ICON(Pawmo, 3), + //.footprint = gMonFootprint_Pawmo, + LEARNSETS(Pawmo), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_PAWMOT}), + }, + + [SPECIES_PAWMOT] = + { + .baseHP = 70, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 70, + .baseSpDefense = 60, + .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 245, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 2, + .frontAnimFrames = sAnims_Pawmot, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pawmot, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Pawmot), + ICON(Pawmot, 3), + //.footprint = gMonFootprint_Pawmot, + LEARNSETS(Pawmot), + }, +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS + [SPECIES_TANDEMAUS] = + { + .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 = 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, + .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 = 15, + .frontAnimFrames = sAnims_Tandemaus, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tandemaus, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, \ + .speciesName = _("Maushold"), \ + .natDexNum = NATIONAL_DEX_MAUSHOLD, \ + .categoryName = _("Family"), \ + .height = 3, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 15, \ + .frontAnimFrames = sAnims_Maushold, \ + .backPicYOffset = 15, \ + PALETTES(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( + "The little one just appeared one\n" + "day. They all live together like a\n" + "family, but the relationship between\n" + "the three is still unclear."), + 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 = 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, + .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, + PALETTES(Fidough), + ICON(Fidough, 1), + //.footprint = gMonFootprint_Fidough, + LEARNSETS(Fidough), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DACHSBUN}), + }, + + [SPECIES_DACHSBUN] = + { + .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, + .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, + PALETTES(Dachsbun), + ICON(Dachsbun, 0), // TODO + //.footprint = gMonFootprint_Dachsbun, + LEARNSETS(Dachsbun), + }, +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV + [SPECIES_SMOLIV] = + { + .baseHP = 41, + .baseAttack = 35, + .baseDefense = 45, + .baseSpeed = 30, + .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_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Smoliv), + ICON(Smoliv, 1), + //.footprint = gMonFootprint_Smoliv, + LEARNSETS(Smoliv), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DOLLIV}), + }, + + [SPECIES_DOLLIV] = + { + .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, + .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 = 6, + .frontAnimFrames = sAnims_Dolliv, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dolliv, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_SEED_SOWER, ABILITY_NONE, ABILITY_HARVEST }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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 }, \ + .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 = 4, \ + .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."), + PALETTES(SquawkabillyGreenPlumage), + ICON(SquawkabillyGreenPlumage, 1), + }, + + [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = + { + SQUAWKABILLY_MISC_INFO, + .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS }, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + "The largest of their flocks can\n" + "contain more than 50 individuals. They\n" + "fly around towns and forests,\n" + "searching for food and making a racket."), + PALETTES(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( + "These Squawkabilly are hotheaded,\n" + "and their fighting style is vicious.\n" + "They'll leap within reach of their\n" + "foes to engage in close combat."), + PALETTES(SquawkabillyYellowPlumage), + ICON(SquawkabillyYellowPlumage, 1), + }, + + [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = + { + SQUAWKABILLY_MISC_INFO, + .abilities = { ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_WHITE, + .description = COMPOUND_STRING( + "Though these Squawkabilly are the\n" + "fewest in number, they have no\n" + "trouble living in towns since they blend\n" + "in with the white buildings."), + PALETTES(SquawkabillyWhitePlumage), + ICON(SquawkabillyWhitePlumage, 1), + }, +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI + [SPECIES_NACLI] = + { + .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 = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, + .bodyColor = BODY_COLOR_BROWN, + .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 = 9, + .frontAnimFrames = sAnims_Nacli, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Nacli, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Nacli), + ICON(Nacli, 2), + //.footprint = gMonFootprint_Nacli, + LEARNSETS(Nacli), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_NACLSTACK}), + }, + + [SPECIES_NACLSTACK] = + { + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 100, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 65, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 120, + .expYield = 124, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(Naclstack), + ICON(Naclstack, 2), // TODO: recolor + //.footprint = gMonFootprint_Naclstack, + LEARNSETS(Naclstack), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_GARGANACL}), + }, + + [SPECIES_GARGANACL] = + { + .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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY }, + .bodyColor = BODY_COLOR_BROWN, + .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 = 1, + .frontAnimFrames = sAnims_Garganacl, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Garganacl, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Garganacl), + ICON(Garganacl, 2), + //.footprint = gMonFootprint_Garganacl, + LEARNSETS(Garganacl), + }, +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET + [SPECIES_CHARCADET] = + { + .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, + .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 = 5, + .frontAnimFrames = sAnims_Charcadet, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Charcadet, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, + .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 = 1, + .frontAnimFrames = sAnims_Armarouge, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Armarouge, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, + .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 = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 54, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1 }, + .abilities = { ABILITY_OWN_TEMPO, ABILITY_STATIC, ABILITY_DAMP }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 11, + .frontAnimFrames = sAnims_Tadbulb, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 12, + BACK_PIC(Tadbulb, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 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_WATER_1 }, + .abilities = { ABILITY_ELECTROMORPHOSIS, ABILITY_STATIC, ABILITY_DAMP }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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, + .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 = 13, + .frontAnimFrames = sAnims_Wattrel, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wattrel, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, + .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 = 6, + .frontAnimFrames = sAnims_Kilowattrel, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kilowattrel, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Kilowattrel), + ICON(Kilowattrel, 3), + //.footprint = gMonFootprint_Kilowattrel, + LEARNSETS(Kilowattrel), + }, +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF + [SPECIES_MASCHIFF] = + { + .baseHP = 60, + .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_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_STAKEOUT }, + .bodyColor = BODY_COLOR_BROWN, + .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 = 8, + .frontAnimFrames = sAnims_Maschiff, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Maschiff, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Maschiff), + ICON(Maschiff, 3), + //.footprint = gMonFootprint_Maschiff, + LEARNSETS(Maschiff), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MABOSSTIFF}), + }, + + [SPECIES_MABOSSTIFF] = + { + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 90, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_DARK, TYPE_DARK }, + .catchRate = 75, + .expYield = 177, + .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_INTIMIDATE, ABILITY_GUARD_DOG, ABILITY_STAKEOUT }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 1, + .frontAnimFrames = sAnims_Mabosstiff, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Mabosstiff, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Mabosstiff), + ICON(Mabosstiff, 5), + //.footprint = gMonFootprint_Mabosstiff, + LEARNSETS(Mabosstiff), + }, +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE + [SPECIES_SHROODLE] = + { + .baseHP = 40, + .baseAttack = 65, + .baseDefense = 35, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 35, + .types = { TYPE_POISON, TYPE_NORMAL }, + .catchRate = 190, + .expYield = 58, + .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_UNBURDEN, ABILITY_PICKPOCKET, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 17, + .frontAnimFrames = sAnims_Shroodle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Shroodle, 64, 64), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Shroodle), + ICON(Shroodle, 0), + //.footprint = gMonFootprint_Shroodle, + LEARNSETS(Shroodle), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_GRAFAIAI}), + }, + + [SPECIES_GRAFAIAI] = + { + .baseHP = 63, + .baseAttack = 95, + .baseDefense = 65, + .baseSpeed = 110, + .baseSpAttack = 80, + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_UNBURDEN, ABILITY_POISON_TOUCH, ABILITY_PRANKSTER }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Grafaiai), + ICON(Grafaiai, 0), + //.footprint = gMonFootprint_Grafaiai, + LEARNSETS(Grafaiai), + }, +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN + [SPECIES_BRAMBLIN] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR }, + .bodyColor = BODY_COLOR_BROWN, + .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, + BACK_PIC(Bramblin, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Bramblin), + ICON(Bramblin, 3), + //.footprint = gMonFootprint_Bramblin, + LEARNSETS(Bramblin), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_BRAMBLEGHAST}), + }, + + [SPECIES_BRAMBLEGHAST] = + { + .baseHP = 55, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 90, + .baseSpAttack = 80, + .baseSpDefense = 70, + .types = { TYPE_GRASS, TYPE_GHOST }, + .catchRate = 45, + .expYield = 168, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR }, + .bodyColor = BODY_COLOR_BROWN, + .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, + BACK_PIC(Brambleghast, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Brambleghast), + ICON(Brambleghast, 5), + //.footprint = gMonFootprint_Brambleghast, + LEARNSETS(Brambleghast), + }, +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL + [SPECIES_TOEDSCOOL] = + { + .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 = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 3, + .frontAnimFrames = sAnims_Toedscool, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Toedscool, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Toedscool), + ICON(Toedscool, 0), + //.footprint = gMonFootprint_Toedscool, + LEARNSETS(Toedscool), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TOEDSCRUEL}), + }, + + [SPECIES_TOEDSCRUEL] = + { + .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_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_MYCELIUM_MIGHT, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLACK, + .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 = 2, + .frontAnimFrames = sAnims_Toedscruel, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Toedscruel, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Toedscruel), + ICON(Toedscruel, 0), + //.footprint = gMonFootprint_Toedscruel, + LEARNSETS(Toedscruel), + }, +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF + [SPECIES_KLAWF] = + { + .baseHP = 70, + .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_WATER_3, EGG_GROUP_WATER_3 }, + .abilities = { ABILITY_ANGER_SHELL, ABILITY_SHELL_ARMOR, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Klawf), + ICON(Klawf, 0), + //.footprint = gMonFootprint_Klawf, + LEARNSETS(Klawf), + }, +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID + [SPECIES_CAPSAKID] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_KLUTZ }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 13, + .frontAnimFrames = sAnims_Capsakid, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Capsakid, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Capsakid), + ICON(Capsakid, 1), + //.footprint = gMonFootprint_Capsakid, + LEARNSETS(Capsakid), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SCOVILLAIN}), + }, + + [SPECIES_SCOVILLAIN] = + { + .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_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS }, + .abilities = { ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_MOODY }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(Scovillain), + ICON(Scovillain, 1), + //.footprint = gMonFootprint_Scovillain, + LEARNSETS(Scovillain), + }, +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR + [SPECIES_RELLOR] = + { + .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 = 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, + .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 = 17, + .frontAnimFrames = sAnims_Rellor, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Rellor, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Rellor), + ICON(Rellor, 5), + //.footprint = gMonFootprint_Rellor, + LEARNSETS(Rellor), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_RABSCA}), + }, + + [SPECIES_RABSCA] = + { + .baseHP = 75, + .baseAttack = 50, + .baseDefense = 85, + .baseSpeed = 45, + .baseSpAttack = 115, + .baseSpDefense = 100, + .types = { TYPE_BUG, TYPE_PSYCHIC }, + .catchRate = 45, + .expYield = 165, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .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, + .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 = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Rabsca), + ICON(Rabsca, 0), + //.footprint = gMonFootprint_Rabsca, + LEARNSETS(Rabsca), + }, +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE + [SPECIES_FLITTLE] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_ANTICIPATION, ABILITY_FRISK, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Flittle), + ICON(Flittle, 3), + //.footprint = gMonFootprint_Flittle, + LEARNSETS(Flittle), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ESPATHRA}), + }, + + [SPECIES_ESPATHRA] = + { + .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_OPPORTUNIST, ABILITY_FRISK, ABILITY_SPEED_BOOST }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 2, + .frontAnimFrames = sAnims_Espathra, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Espathra, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Espathra), + ICON(Espathra, 5), + //.footprint = gMonFootprint_Espathra, + LEARNSETS(Espathra), + }, +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK + [SPECIES_TINKATINK] = + { + .baseHP = 50, + .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, + .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 = 10, + .frontAnimFrames = sAnims_Tinkatink, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tinkatink, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Tinkatink), + ICON(Tinkatink, 1), + //.footprint = gMonFootprint_Tinkatink, + LEARNSETS(Tinkatink), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_TINKATUFF}), + }, + + [SPECIES_TINKATUFF] = + { + .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 = 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, + .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 = 4, + .frontAnimFrames = sAnims_Tinkatuff, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tinkatuff, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Tinkatuff), + ICON(Tinkatuff, 4), + //.footprint = gMonFootprint_Tinkatuff, + LEARNSETS(Tinkatuff), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TINKATON}), + }, + + [SPECIES_TINKATON] = + { + .baseHP = 85, + .baseAttack = 75, + .baseDefense = 77, + .baseSpeed = 94, + .baseSpAttack = 70, + .baseSpDefense = 105, + .types = { TYPE_FAIRY, TYPE_STEEL }, + .catchRate = 45, + .expYield = 253, + .evYield_SpDefense = 3, + .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, + .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 = 1, + .frontAnimFrames = sAnims_Tinkaton, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tinkaton, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Tinkaton), + ICON(Tinkaton, 4), + //.footprint = gMonFootprint_Tinkaton, + LEARNSETS(Tinkaton), + }, +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT + [SPECIES_WIGLETT] = + { + .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, + .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 = 10, + .frontAnimFrames = sAnims_Wiglett, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wiglett, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Wiglett), + ICON(Wiglett, 0), + //.footprint = gMonFootprint_Wiglett, + LEARNSETS(Wiglett), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_WUGTRIO}), + }, + + [SPECIES_WUGTRIO] = + { + .baseHP = 35, + .baseAttack = 100, + .baseDefense = 50, + .baseSpeed = 120, + .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, + .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 = 2, + .frontAnimFrames = sAnims_Wugtrio, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wugtrio, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Wugtrio), + ICON(Wugtrio, 0), + //.footprint = gMonFootprint_Wugtrio, + LEARNSETS(Wugtrio), + }, +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER + [SPECIES_BOMBIRDIER] = + { + .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_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_BIG_PECKS, ABILITY_KEEN_EYE, ABILITY_ROCKY_PAYLOAD }, + .bodyColor = BODY_COLOR_WHITE, + .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 = 1, + .frontAnimFrames = sAnims_Bombirdier, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(Bombirdier, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Bombirdier), + ICON(Bombirdier, 0), + //.footprint = gMonFootprint_Bombirdier, + LEARNSETS(Bombirdier), + }, +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN + [SPECIES_FINIZEN] = + { + .baseHP = 70, + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_WATER_VEIL, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 7, + .frontAnimFrames = sAnims_Finizen, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Finizen, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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, \ + .speciesName = _("Palafin"), \ + .natDexNum = NATIONAL_DEX_PALAFIN, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .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), + .frontPicYOffset = 7, + BACK_PIC(PalafinZero, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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( + "This Pokémon's ancient genes have\n" + "awakened. It is now so\n" + "extraordinarily strong that it can easily lift a\n" + "cruise ship with one fin."), + FRONT_PIC(PalafinHero, 64, 64), + .frontPicYOffset = 0, + BACK_PIC(PalafinHero, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(PalafinHero), + ICON(PalafinHero, 0), + }, +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM + [SPECIES_VAROOM] = + { + .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 = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_SLOW_START }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 14, + .frontAnimFrames = sAnims_Varoom, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Varoom, 64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Varoom), + ICON(Varoom, 5), + //.footprint = gMonFootprint_Varoom, + LEARNSETS(Varoom), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_REVAVROOM}), + }, + + [SPECIES_REVAVROOM] = + { + .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_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_FILTER }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(Revavroom), + ICON(Revavroom, 5), + //.footprint = gMonFootprint_Revavroom, + LEARNSETS(Revavroom), + }, +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR + [SPECIES_CYCLIZAR] = + { + .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 = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_REGENERATOR }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 3, + .frontAnimFrames = sAnims_Cyclizar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cyclizar, 64, 64), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Cyclizar), + ICON(Cyclizar, 1), + //.footprint = gMonFootprint_Cyclizar, + LEARNSETS(Cyclizar), + }, +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM + [SPECIES_ORTHWORM] = + { + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_EARTH_EATER, ABILITY_NONE, ABILITY_SAND_VEIL }, + .bodyColor = BODY_COLOR_PINK, + .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 = 3, + .frontAnimFrames = sAnims_Orthworm, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Orthworm, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Orthworm), + ICON(Orthworm, 4), + //.footprint = gMonFootprint_Orthworm, + LEARNSETS(Orthworm), + }, +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET + [SPECIES_GLIMMET] = + { + .baseHP = 48, + .baseAttack = 35, + .baseDefense = 42, + .baseSpeed = 60, + .baseSpAttack = 105, + .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, + .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 = 16, + .frontAnimFrames = sAnims_Glimmet, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 11, + BACK_PIC(Glimmet, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Glimmet), + ICON(Glimmet, 0), + //.footprint = gMonFootprint_Glimmet, + LEARNSETS(Glimmet), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_GLIMMORA}), + }, + + [SPECIES_GLIMMORA] = + { + .baseHP = 83, + .baseAttack = 55, + .baseDefense = 90, + .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_MINERAL, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 2, + .frontAnimFrames = sAnims_Glimmora, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(Glimmora, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Glimmora), + ICON(Glimmora, 0), + //.footprint = gMonFootprint_Glimmora, + LEARNSETS(Glimmora), + }, +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD + [SPECIES_GREAVARD] = + { + .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_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_FLUFFY }, + .bodyColor = BODY_COLOR_WHITE, + .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 = 6, + .frontAnimFrames = sAnims_Greavard, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Greavard, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Greavard), + ICON(Greavard, 2), + //.footprint = gMonFootprint_Greavard, + LEARNSETS(Greavard), + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 30, SPECIES_HOUNDSTONE}), + }, + + [SPECIES_HOUNDSTONE] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = { ABILITY_SAND_RUSH, ABILITY_NONE, ABILITY_FLUFFY }, + .bodyColor = BODY_COLOR_WHITE, + .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 = 1, + .frontAnimFrames = sAnims_Houndstone, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Houndstone, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Houndstone), + ICON(Houndstone, 5), + //.footprint = gMonFootprint_Houndstone, + LEARNSETS(Houndstone), + }, +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO + [SPECIES_FLAMIGO] = + { + .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_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING }, + .abilities = { ABILITY_SCRAPPY, ABILITY_TANGLED_FEET, ABILITY_COSTAR }, + .bodyColor = BODY_COLOR_PINK, + .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 = 2, + .frontAnimFrames = sAnims_Flamigo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Flamigo, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_THICK_FAT, ABILITY_SNOW_CLOAK, ABILITY_SHEER_FORCE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(Cetoddle), + ICON(Cetoddle, 0), + //.footprint = gMonFootprint_Cetoddle, + LEARNSETS(Cetoddle), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_CETITAN}), + }, + + [SPECIES_CETITAN] = + { + .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, + .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, + PALETTES(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_FAST, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2 }, + .abilities = { ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHARPNESS }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 11, + .frontAnimFrames = sAnims_Veluza, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(Veluza, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Veluza), + ICON(Veluza, 4), + //.footprint = gMonFootprint_Veluza, + LEARNSETS(Veluza), + }, +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO + [SPECIES_DONDOZO] = + { + .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, + .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 = 4, + .frontAnimFrames = sAnims_Dondozo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(Dondozo, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 }, \ + .speciesName = _("Tatsugiri"), \ + .natDexNum = NATIONAL_DEX_TATSUGIRI, \ + .categoryName = _("Mimicry"), \ + .height = 3, \ + .weight = 80, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 14, \ + .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), + PALETTES(TatsugiriCurly), + ICON(TatsugiriCurly, 0), + }, + + [SPECIES_TATSUGIRI_DROOPY] = + { + TATSUGIRI_MISC_INFO, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_TATSUGIRI_DROOPY, + .description = COMPOUND_STRING( + "This Pokémon tricks its opponents\n" + "by playing dead. It is small and\n" + "weak, but it uses its smarts to survive."), + FRONT_PIC(TatsugiriDroopy, 64, 64), + BACK_PIC(TatsugiriDroopy, 64, 64), + PALETTES(TatsugiriDroopy), + ICON(TatsugiriDroopy, 0), + }, + + [SPECIES_TATSUGIRI_STRETCHY] = + { + TATSUGIRI_MISC_INFO, + .bodyColor = BODY_COLOR_YELLOW, + .cryId = CRY_TATSUGIRI_STRETCHY, + .description = COMPOUND_STRING( + "It's one of the most intelligent\n" + "dragon Pokémon. It camouflages itself\n" + "by inflating its throat sac."), + FRONT_PIC(TatsugiriStretchy, 64, 64), + BACK_PIC(TatsugiriStretchy, 64, 64), + PALETTES(TatsugiriStretchy), + ICON(TatsugiriStretchy, 0), + }, +#endif //P_FAMILY_TATSUGIRI + +#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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .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 = 5, + .frontAnimFrames = sAnims_GreatTusk, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GreatTusk, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 5, + .frontAnimFrames = sAnims_FlutterMane, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(FlutterMane, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(FlutterMane), + ICON(FlutterMane, 4), + //.footprint = gMonFootprint_FlutterMane, + LEARNSETS(FlutterMane), + }, +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING + [SPECIES_SLITHER_WING] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 1, + .frontAnimFrames = sAnims_SandyShocks, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SandyShocks, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(SandyShocks), + ICON(SandyShocks, 0), + //.footprint = gMonFootprint_SandyShocks, + LEARNSETS(SandyShocks), + }, +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS + [SPECIES_IRON_TREADS] = + { + .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 = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 1, + .frontAnimFrames = sAnims_IronTreads, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronTreads, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .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 = 4, + .frontAnimFrames = sAnims_IronBundle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronBundle, 64, 64), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .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, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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 = 2, + .frontAnimFrames = sAnims_IronJugulis, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 7, + BACK_PIC(IronJugulis, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 70, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 140, + .baseSpDefense = 110, + .types = { TYPE_FIRE, TYPE_POISON }, + .catchRate = 30, + .expYield = 285, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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 = 7, + .frontAnimFrames = sAnims_IronMoth, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(IronMoth, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(IronMoth), + ICON(IronMoth, 3), + //.footprint = gMonFootprint_IronMoth, + LEARNSETS(IronMoth), + }, +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS + [SPECIES_IRON_THORNS] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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 = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 7, + .frontAnimFrames = sAnims_Frigibax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Frigibax, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Frigibax), + ICON(Frigibax, 3), + //.footprint = gMonFootprint_Frigibax, + LEARNSETS(Frigibax), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ARCTIBAX}), + }, + + [SPECIES_ARCTIBAX] = + { + .baseHP = 90, + .baseAttack = 95, + .baseDefense = 66, + .baseSpeed = 62, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = { TYPE_DRAGON, TYPE_ICE }, + .catchRate = 25, + .expYield = 148, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 5, + .frontAnimFrames = sAnims_Arctibax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Arctibax, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Arctibax), + ICON(Arctibax, 0), + //.footprint = gMonFootprint_Arctibax, + LEARNSETS(Arctibax), + .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_BAXCALIBUR}), + }, + + [SPECIES_BAXCALIBUR] = + { + .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 = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, + .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, + .bodyColor = BODY_COLOR_GRAY, + .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 = 1, + .frontAnimFrames = sAnims_Baxcalibur, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Baxcalibur, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .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 = 2, + BACK_PIC(GimmighoulChest, 64, 64), + .backPicYOffset = 0, + PALETTES(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( + "It wanders around, carrying an old\n" + "coin on its back. It survives by\n" + "draining the life-force from humans who\n" + "try to pick up its coin."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GimmighoulRoaming, 64, 64), + .frontPicYOffset = 11, + BACK_PIC(GimmighoulRoaming, 64, 64), + .backPicYOffset = 3, + PALETTES(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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_GOOD_AS_GOLD, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .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, + PALETTES(Gholdengo), + ICON(Gholdengo, 0), + //.footprint = gMonFootprint_Gholdengo, + LEARNSETS(Gholdengo), + }, +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN + [SPECIES_WO_CHIEN] = + { + .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 = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_TABLETS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .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, + PALETTES(WoChien), + ICON(WoChien, 5), + //.footprint = gMonFootprint_WoChien, + LEARNSETS(WoChien), + }, +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO + [SPECIES_CHIEN_PAO] = + { + .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 = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_SWORD_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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 = 2, + .frontAnimFrames = sAnims_ChienPao, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ChienPao, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(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 = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_VESSEL_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .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 = 2, + .frontAnimFrames = sAnims_TingLu, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(TingLu, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(TingLu), + ICON(TingLu, 0), + //.footprint = gMonFootprint_TingLu, + LEARNSETS(TingLu), + }, +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU + [SPECIES_CHI_YU] = + { + .baseHP = 55, + .baseAttack = 80, + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_BEADS_OF_RUIN, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .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 = 10, + .frontAnimFrames = sAnims_ChiYu, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 9, + BACK_PIC(ChiYu, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(ChiYu), + ICON(ChiYu, 0), + //.footprint = gMonFootprint_ChiYu, + LEARNSETS(ChiYu), + }, +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON + [SPECIES_ROARING_MOON] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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 = 6, + BACK_PIC(RoaringMoon, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(RoaringMoon), + ICON(RoaringMoon, 3), + //.footprint = gMonFootprint_RoaringMoon, + LEARNSETS(RoaringMoon), + }, +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT + [SPECIES_IRON_VALIANT] = + { + .baseHP = 74, + .baseAttack = 130, + .baseDefense = 90, + .baseSpeed = 116, + .baseSpAttack = 120, + .baseSpDefense = 60, + .types = { TYPE_FAIRY, TYPE_FIGHTING }, + .catchRate = 10, + .expYield = 295, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_WHITE, + .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, + PALETTES(IronValiant), + ICON(IronValiant, 4), + //.footprint = gMonFootprint_IronValiant, + LEARNSETS(IronValiant), + }, +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON + [SPECIES_KORAIDON] = + { + .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 = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_ORICHALCUM_PULSE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_RED, + .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, + PALETTES(Koraidon), + ICON(Koraidon, 0), + //.footprint = gMonFootprint_Koraidon, + LEARNSETS(Koraidon), + }, +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON + [SPECIES_MIRAIDON] = + { + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_HADRON_ENGINE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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 = 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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .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, + PALETTES(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 = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GREEN, + .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, + PALETTES(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, \ + .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 = 7, \ + .frontAnimFrames = sAnims_Poltchageist, \ + .enemyMonElevation = 10, \ + BACK_PIC(Poltchageist, 64, 64), \ + .backPicYOffset = 5, \ + PALETTES(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( + "It has taken up residence in a very\n" + "expensive tea caddy. It takes an\n" + "expert to distinguish the expensive\n" + "tea caddies from the cheap ones."), + .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, \ + .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 = 10, \ + .frontAnimFrames = sAnims_Sinistcha, \ + .enemyMonElevation = 10, \ + BACK_PIC(Sinistcha, 64, 64), \ + .backPicYOffset = 13, \ + PALETTES(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( + "The more stirring it does with the\n" + "tea whisk on its head, the more\n" + "energy it builds up. It does this to\n" + "prepare for battle."), + }, +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI + [SPECIES_OKIDOGI] = + { + .baseHP = 88, + .baseAttack = 128, + .baseDefense = 115, + .baseSpeed = 80, + .baseSpAttack = 58, + .baseSpDefense = 86, + .types = { TYPE_POISON, TYPE_FIGHTING }, + .catchRate = 3, + .expYield = 278, + .evYield_Attack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_GUARD_DOG }, + .bodyColor = BODY_COLOR_BLACK, + .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 = 1, + .frontAnimFrames = sAnims_Okidogi, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Okidogi, 64, 64), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Okidogi), + ICON(Okidogi, 1), + //.footprint = gMonFootprint_Okidogi, + LEARNSETS(Okidogi), + .isLegendary = TRUE, + }, +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI + [SPECIES_MUNKIDORI] = + { + .baseHP = 88, + .baseAttack = 75, + .baseDefense = 66, + .baseSpeed = 106, + .baseSpAttack = 130, + .baseSpDefense = 90, + .types = { TYPE_POISON, TYPE_PSYCHIC }, + .catchRate = 3, + .expYield = 278, + .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_FRISK }, + .bodyColor = BODY_COLOR_BLACK, + .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 = 5, + .frontAnimFrames = sAnims_Munkidori, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Munkidori, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Munkidori), + ICON(Munkidori, 0), + //.footprint = gMonFootprint_Munkidori, + LEARNSETS(Munkidori), + }, +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI + [SPECIES_FEZANDIPITI] = + { + .baseHP = 88, + .baseAttack = 91, + .baseDefense = 82, + .baseSpeed = 99, + .baseSpAttack = 70, + .baseSpDefense = 125, + .types = { TYPE_POISON, TYPE_FAIRY }, + .catchRate = 3, + .expYield = 278, + .evYield_SpDefense = 3, + .genderRatio = MON_MALE, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_TECHNICIAN }, + .bodyColor = BODY_COLOR_BLACK, + .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 = 2, + .frontAnimFrames = sAnims_Fezandipiti, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Fezandipiti, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTES(Fezandipiti), + ICON(Fezandipiti, 0), + //.footprint = gMonFootprint_Fezandipiti, + LEARNSETS(Fezandipiti), + }, +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +#define OGERPON_SPECIES_INFO(Form, type, ability, color, tera) \ + { \ + .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_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .abilities = { ability, ABILITY_NONE }, \ + .bodyColor = color, \ + .speciesName = _("Ogerpon"), \ + .cryId = CRY_OGERPON, \ + .natDexNum = NATIONAL_DEX_OGERPON, \ + .categoryName = _("Mask"), \ + .height = 12, \ + .weight = 398, \ + .description = gOgerpon##Form##PokedexText, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Ogerpon##Form, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Ogerpon, \ + BACK_PIC(Ogerpon##Form, 64, 64), \ + .backPicYOffset = 16, \ + .palette = gMonPalette_Ogerpon##Form, \ + ICON(OgerponTealMask, 1), \ + LEARNSETS(Ogerpon), \ + .formSpeciesIdTable = sOgerponFormSpeciesIdTable, \ + .formChangeTable = sOgerponFormChangeTable, \ + .isLegendary = TRUE, \ + } + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.shinyPalette = gMonShinyPalette_OgerponTealMask, + //ICON(Ogerpon##Form##, 1), + //.footprint = gMonFootprint_Ogerpon, + + [SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, FALSE), + [SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, FALSE), + [SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, FALSE), + [SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, FALSE), +#if P_TERA_FORMS + [SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN, TRUE), + [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE, TRUE), + [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED, TRUE), + [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY, TRUE), +#endif //P_TERA_FORMS + +#endif //P_FAMILY_OGERPON + +#ifdef __INTELLISENSE__ +}; +#endif \ No newline at end of file diff --git a/src/data/pokemon/teachable_learnset_pointers.h b/src/data/pokemon/teachable_learnset_pointers.h deleted file mode 100644 index 4bb31a97e2..0000000000 --- a/src/data/pokemon/teachable_learnset_pointers.h +++ /dev/null @@ -1,1570 +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_TAUROS_PALDEAN_COMBAT_BREED] = sTaurosPaldeanCombatBreedTeachableLearnset, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = sTaurosPaldeanBlazeBreedTeachableLearnset, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = sTaurosPaldeanAquaBreedTeachableLearnset, - [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_WOOPER_PALDEAN] = sWooperPaldeanTeachableLearnset, - [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_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, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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_URSALUNA_BLOODMOON] = sUrsalunaBloodmoonTeachableLearnset, - [SPECIES_BASCULEGION_MALE] = sBasculegionTeachableLearnset, - [SPECIES_SNEASLER] = sSneaslerTeachableLearnset, - [SPECIES_OVERQWIL] = sOverqwilTeachableLearnset, - [SPECIES_ENAMORUS_INCARNATE] = sEnamorusTeachableLearnset, -#endif -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = sSprigatitoTeachableLearnset, - [SPECIES_FLORAGATO] = sFloragatoTeachableLearnset, - [SPECIES_MEOWSCARADA] = sMeowscaradaTeachableLearnset, - [SPECIES_FUECOCO] = sFuecocoTeachableLearnset, - [SPECIES_CROCALOR] = sCrocalorTeachableLearnset, - [SPECIES_SKELEDIRGE] = sSkeledirgeTeachableLearnset, - [SPECIES_QUAXLY] = sQuaxlyTeachableLearnset, - [SPECIES_QUAXWELL] = sQuaxwellTeachableLearnset, - [SPECIES_QUAQUAVAL] = sQuaquavalTeachableLearnset, - [SPECIES_LECHONK] = sLechonkTeachableLearnset, - [SPECIES_OINKOLOGNE_MALE] = sOinkologneMaleTeachableLearnset, - [SPECIES_OINKOLOGNE_FEMALE] = sOinkologneFemaleTeachableLearnset, - [SPECIES_TAROUNTULA] = sTarountulaTeachableLearnset, - [SPECIES_SPIDOPS] = sSpidopsTeachableLearnset, - [SPECIES_NYMBLE] = sNymbleTeachableLearnset, - [SPECIES_LOKIX] = sLokixTeachableLearnset, - [SPECIES_PAWMI] = sPawmiTeachableLearnset, - [SPECIES_PAWMO] = sPawmoTeachableLearnset, - [SPECIES_PAWMOT] = sPawmotTeachableLearnset, - [SPECIES_TANDEMAUS] = sTandemausTeachableLearnset, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = sMausholdTeachableLearnset, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = sMausholdTeachableLearnset, - [SPECIES_FIDOUGH] = sFidoughTeachableLearnset, - [SPECIES_DACHSBUN] = sDachsbunTeachableLearnset, - [SPECIES_SMOLIV] = sSmolivTeachableLearnset, - [SPECIES_DOLLIV] = sDollivTeachableLearnset, - [SPECIES_ARBOLIVA] = sArbolivaTeachableLearnset, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = sSquawkabillyTeachableLearnset, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = sSquawkabillyTeachableLearnset, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = sSquawkabillyTeachableLearnset, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = sSquawkabillyTeachableLearnset, - [SPECIES_NACLI] = sNacliTeachableLearnset, - [SPECIES_NACLSTACK] = sNaclstackTeachableLearnset, - [SPECIES_GARGANACL] = sGarganaclTeachableLearnset, - [SPECIES_CHARCADET] = sCharcadetTeachableLearnset, - [SPECIES_ARMAROUGE] = sArmarougeTeachableLearnset, - [SPECIES_CERULEDGE] = sCeruledgeTeachableLearnset, - [SPECIES_TADBULB] = sTadbulbTeachableLearnset, - [SPECIES_BELLIBOLT] = sBelliboltTeachableLearnset, - [SPECIES_WATTREL] = sWattrelTeachableLearnset, - [SPECIES_KILOWATTREL] = sKilowattrelTeachableLearnset, - [SPECIES_MASCHIFF] = sMaschiffTeachableLearnset, - [SPECIES_MABOSSTIFF] = sMabosstiffTeachableLearnset, - [SPECIES_SHROODLE] = sShroodleTeachableLearnset, - [SPECIES_GRAFAIAI] = sGrafaiaiTeachableLearnset, - [SPECIES_BRAMBLIN] = sBramblinTeachableLearnset, - [SPECIES_BRAMBLEGHAST] = sBrambleghastTeachableLearnset, - [SPECIES_TOEDSCOOL] = sToedscoolTeachableLearnset, - [SPECIES_TOEDSCRUEL] = sToedscruelTeachableLearnset, - [SPECIES_KLAWF] = sKlawfTeachableLearnset, - [SPECIES_CAPSAKID] = sCapsakidTeachableLearnset, - [SPECIES_SCOVILLAIN] = sScovillainTeachableLearnset, - [SPECIES_RELLOR] = sRellorTeachableLearnset, - [SPECIES_RABSCA] = sRabscaTeachableLearnset, - [SPECIES_FLITTLE] = sFlittleTeachableLearnset, - [SPECIES_ESPATHRA] = sEspathraTeachableLearnset, - [SPECIES_TINKATINK] = sTinkatinkTeachableLearnset, - [SPECIES_TINKATUFF] = sTinkatuffTeachableLearnset, - [SPECIES_TINKATON] = sTinkatonTeachableLearnset, - [SPECIES_WIGLETT] = sWiglettTeachableLearnset, - [SPECIES_WUGTRIO] = sWugtrioTeachableLearnset, - [SPECIES_BOMBIRDIER] = sBombirdierTeachableLearnset, - [SPECIES_FINIZEN] = sFinizenTeachableLearnset, - [SPECIES_PALAFIN_ZERO] = sPalafinTeachableLearnset, - [SPECIES_PALAFIN_HERO] = sPalafinTeachableLearnset, - [SPECIES_VAROOM] = sVaroomTeachableLearnset, - [SPECIES_REVAVROOM] = sRevavroomTeachableLearnset, - [SPECIES_CYCLIZAR] = sCyclizarTeachableLearnset, - [SPECIES_ORTHWORM] = sOrthwormTeachableLearnset, - [SPECIES_GLIMMET] = sGlimmetTeachableLearnset, - [SPECIES_GLIMMORA] = sGlimmoraTeachableLearnset, - [SPECIES_GREAVARD] = sGreavardTeachableLearnset, - [SPECIES_HOUNDSTONE] = sHoundstoneTeachableLearnset, - [SPECIES_FLAMIGO] = sFlamigoTeachableLearnset, - [SPECIES_CETODDLE] = sCetoddleTeachableLearnset, - [SPECIES_CETITAN] = sCetitanTeachableLearnset, - [SPECIES_VELUZA] = sVeluzaTeachableLearnset, - [SPECIES_DONDOZO] = sDondozoTeachableLearnset, - [SPECIES_TATSUGIRI_CURLY] = sTatsugiriTeachableLearnset, - [SPECIES_TATSUGIRI_DROOPY] = sTatsugiriTeachableLearnset, - [SPECIES_TATSUGIRI_STRETCHY] = sTatsugiriTeachableLearnset, - [SPECIES_ANNIHILAPE] = sAnnihilapeTeachableLearnset, - [SPECIES_CLODSIRE] = sClodsireTeachableLearnset, - [SPECIES_FARIGIRAF] = sFarigirafTeachableLearnset, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = sDudunsparceTeachableLearnset, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = sDudunsparceTeachableLearnset, - [SPECIES_KINGAMBIT] = sKingambitTeachableLearnset, - [SPECIES_GREAT_TUSK] = sGreatTuskTeachableLearnset, - [SPECIES_SCREAM_TAIL] = sScreamTailTeachableLearnset, - [SPECIES_BRUTE_BONNET] = sBruteBonnetTeachableLearnset, - [SPECIES_FLUTTER_MANE] = sFlutterManeTeachableLearnset, - [SPECIES_SLITHER_WING] = sSlitherWingTeachableLearnset, - [SPECIES_SANDY_SHOCKS] = sSandyShocksTeachableLearnset, - [SPECIES_IRON_TREADS] = sIronTreadsTeachableLearnset, - [SPECIES_IRON_BUNDLE] = sIronBundleTeachableLearnset, - [SPECIES_IRON_HANDS] = sIronHandsTeachableLearnset, - [SPECIES_IRON_JUGULIS] = sIronJugulisTeachableLearnset, - [SPECIES_IRON_MOTH] = sIronMothTeachableLearnset, - [SPECIES_IRON_THORNS] = sIronThornsTeachableLearnset, - [SPECIES_FRIGIBAX] = sFrigibaxTeachableLearnset, - [SPECIES_ARCTIBAX] = sArctibaxTeachableLearnset, - [SPECIES_BAXCALIBUR] = sBaxcaliburTeachableLearnset, - [SPECIES_GIMMIGHOUL_CHEST] = sGimmighoulTeachableLearnset, - [SPECIES_GIMMIGHOUL_ROAMING] = sGimmighoulTeachableLearnset, - [SPECIES_GHOLDENGO] = sGholdengoTeachableLearnset, - [SPECIES_WO_CHIEN] = sWoChienTeachableLearnset, - [SPECIES_CHIEN_PAO] = sChienPaoTeachableLearnset, - [SPECIES_TING_LU] = sTingLuTeachableLearnset, - [SPECIES_CHI_YU] = sChiYuTeachableLearnset, - [SPECIES_ROARING_MOON] = sRoaringMoonTeachableLearnset, - [SPECIES_IRON_VALIANT] = sIronValiantTeachableLearnset, - [SPECIES_KORAIDON] = sKoraidonTeachableLearnset, - [SPECIES_MIRAIDON] = sMiraidonTeachableLearnset, - [SPECIES_WALKING_WAKE] = sWalkingWakeTeachableLearnset, - [SPECIES_IRON_LEAVES] = sIronLeavesTeachableLearnset, - [SPECIES_DIPPLIN] = sDipplinTeachableLearnset, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = sPoltchageistTeachableLearnset, - [SPECIES_POLTCHAGEIST_ARTISAN] = sPoltchageistTeachableLearnset, - [SPECIES_SINISTCHA_UNREMARKABLE] = sSinistchaTeachableLearnset, - [SPECIES_SINISTCHA_MASTERPIECE] = sSinistchaTeachableLearnset, - [SPECIES_OKIDOGI] = sOkidogiTeachableLearnset, - [SPECIES_MUNKIDORI] = sMunkidoriTeachableLearnset, - [SPECIES_FEZANDIPITI] = sFezandipitiTeachableLearnset, - [SPECIES_OGERPON_TEAL_MASK] = sOgerponTeachableLearnset, - [SPECIES_OGERPON_WELLSPRING_MASK] = sOgerponTeachableLearnset, - [SPECIES_OGERPON_HEARTHFLAME_MASK] = sOgerponTeachableLearnset, - [SPECIES_OGERPON_CORNERSTONE_MASK] = sOgerponTeachableLearnset, - [SPECIES_OGERPON_TEAL_MASK_TERA] = sOgerponTeachableLearnset, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = sOgerponTeachableLearnset, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = sOgerponTeachableLearnset, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = sOgerponTeachableLearnset, -#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, - // 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, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_GARBODOR_GIGANTAMAX] = sGarbodorTeachableLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_MELMETAL_GIGANTAMAX] = sMelmetalTeachableLearnset, -#endif - [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 5c4de9c7d3..f274363f61 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -1,3 +1,8 @@ +static const u16 sNoneTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +#if P_FAMILY_BULBASAUR static const u16 sBulbasaurTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -114,7 +119,9 @@ static const u16 sVenusaurTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BULBASAUR +#if P_FAMILY_CHARMANDER static const u16 sCharmanderTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -271,7 +278,9 @@ static const u16 sCharizardTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHARMANDER +#if P_FAMILY_SQUIRTLE static const u16 sSquirtleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -419,7 +428,9 @@ static const u16 sBlastoiseTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SQUIRTLE +#if P_FAMILY_CATERPIE static const u16 sCaterpieTeachableLearnset[] = { MOVE_SNORE, MOVE_UNAVAILABLE, @@ -465,7 +476,9 @@ static const u16 sButterfreeTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CATERPIE +#if P_FAMILY_WEEDLE static const u16 sWeedleTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -509,7 +522,9 @@ static const u16 sBeedrillTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WEEDLE +#if P_FAMILY_PIDGEY static const u16 sPidgeyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -600,7 +615,9 @@ static const u16 sPidgeotTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PIDGEY +#if P_FAMILY_RATTATA static const u16 sRattataTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -692,6 +709,44 @@ static const u16 sRaticateTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sRattataAlolanTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sRaticateAlolanTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW static const u16 sSpearowTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -750,7 +805,9 @@ static const u16 sFearowTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPEAROW +#if P_FAMILY_EKANS static const u16 sEkansTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -821,6 +878,50 @@ static const u16 sArbokTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const u16 sPichuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS static const u16 sPikachuTeachableLearnset[] = { MOVE_ATTRACT, @@ -918,6 +1019,31 @@ static const u16 sRaichuTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sRaichuAlolanTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_FLASH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STRENGTH, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW static const u16 sSandshrewTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -1011,6 +1137,45 @@ static const u16 sSandslashTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sSandshrewAlolanTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sSandslashAlolanTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN static const u16 sNidoranFTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -1305,6 +1470,60 @@ static const u16 sNidokingTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const u16 sCleffaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SOFT_BOILED, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS static const u16 sClefairyTeachableLearnset[] = { MOVE_ATTRACT, @@ -1434,7 +1653,9 @@ static const u16 sClefableTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CLEFAIRY +#if P_FAMILY_VULPIX static const u16 sVulpixTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -1505,6 +1726,87 @@ static const u16 sNinetalesTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sVulpixAlolanTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sNinetalesAlolanTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const u16 sIgglybuffTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS + static const u16 sJigglypuffTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -1623,7 +1925,9 @@ static const u16 sWigglytuffTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_JIGGLYPUFF +#if P_FAMILY_ZUBAT static const u16 sZubatTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -1693,6 +1997,45 @@ static const u16 sGolbatTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sCrobatTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH static const u16 sOddishTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -1786,6 +2129,41 @@ static const u16 sVileplumeTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sBellossomTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS static const u16 sParasTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -1864,7 +2242,9 @@ static const u16 sParasectTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PARAS +#if P_FAMILY_VENONAT static const u16 sVenonatTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -1928,7 +2308,9 @@ static const u16 sVenomothTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VENONAT +#if P_FAMILY_DIGLETT static const u16 sDiglettTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -1998,6 +2380,37 @@ static const u16 sDugtrioTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sDiglettAlolanTeachableLearnset[] = { + MOVE_CUT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SLUDGE_BOMB, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sDugtrioAlolanTeachableLearnset[] = { + MOVE_CUT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SLUDGE_BOMB, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH static const u16 sMeowthTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -2088,6 +2501,93 @@ static const u16 sPersianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sMeowthAlolanTeachableLearnset[] = { + MOVE_CUT, + MOVE_FACADE, + MOVE_FLASH, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_TAUNT, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sPersianAlolanTeachableLearnset[] = { + MOVE_CUT, + MOVE_FACADE, + MOVE_FLASH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_TAUNT, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +static const u16 sMeowthGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_FACADE, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPerrserkerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK static const u16 sPsyduckTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -2191,7 +2691,9 @@ static const u16 sGolduckTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PSYDUCK +#if P_FAMILY_MANKEY static const u16 sMankeyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -2299,6 +2801,67 @@ static const u16 sPrimeapeTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_9_CROSS_EVOS +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, +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE static const u16 sGrowlitheTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -2375,6 +2938,18 @@ static const u16 sArcanineTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sGrowlitheHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sArcanineHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG static const u16 sPoliwagTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -2509,6 +3084,59 @@ static const u16 sPoliwrathTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sPolitoedTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA static const u16 sAbraTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -2664,7 +3292,9 @@ static const u16 sAlakazamTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ABRA +#if P_FAMILY_MACHOP static const u16 sMachopTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -2806,7 +3436,9 @@ static const u16 sMachampTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MACHOP +#if P_FAMILY_BELLSPROUT static const u16 sBellsproutTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -2901,7 +3533,9 @@ static const u16 sVictreebelTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BELLSPROUT +#if P_FAMILY_TENTACOOL static const u16 sTentacoolTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -2976,7 +3610,9 @@ static const u16 sTentacruelTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TENTACOOL +#if P_FAMILY_GEODUDE static const u16 sGeodudeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -3116,6 +3752,62 @@ static const u16 sGolemTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sGeodudeAlolanTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_EARTHQUAKE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STRENGTH, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sGravelerAlolanTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STRENGTH, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sGolemAlolanTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STRENGTH, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA static const u16 sPonytaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -3179,6 +3871,47 @@ static const u16 sRapidashTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sPonytaGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRapidashGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE static const u16 sSlowpokeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -3291,6 +4024,195 @@ static const u16 sSlowbroTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sSlowkingTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GALARIAN_FORMS +static const u16 sSlowpokeGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DIVE, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HAIL, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlowbroGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DIVE, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +#if P_GEN_2_CROSS_EVOS +static const u16 sSlowkingGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DIVE, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE static const u16 sMagnemiteTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -3358,6 +4280,42 @@ static const u16 sMagnetonTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sMagnezoneTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD static const u16 sFarfetchdTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -3393,6 +4351,50 @@ static const u16 sFarfetchdTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sFarfetchdGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSirfetchdTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO static const u16 sDoduoTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -3457,7 +4459,9 @@ static const u16 sDodrioTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DODUO +#if P_FAMILY_SEEL static const u16 sSeelTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -3528,7 +4532,9 @@ static const u16 sDewgongTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SEEL +#if P_FAMILY_GRIMER static const u16 sGrimerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -3621,6 +4627,43 @@ static const u16 sMukTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sGrimerAlolanTeachableLearnset[] = { + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sMukAlolanTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER static const u16 sShellderTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -3686,7 +4729,9 @@ static const u16 sCloysterTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHELLDER +#if P_FAMILY_GASTLY static const u16 sGastlyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -3819,7 +4864,9 @@ static const u16 sGengarTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GASTLY +#if P_FAMILY_ONIX static const u16 sOnixTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -3859,6 +4906,51 @@ static const u16 sOnixTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sSteelixTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE static const u16 sDrowzeeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -3959,7 +5051,9 @@ static const u16 sHypnoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DROWZEE +#if P_FAMILY_KRABBY static const u16 sKrabbyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -4042,7 +5136,9 @@ static const u16 sKinglerTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KRABBY +#if P_FAMILY_VOLTORB static const u16 sVoltorbTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -4110,6 +5206,18 @@ static const u16 sElectrodeTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sVoltorbHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sElectrodeHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE static const u16 sExeggcuteTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -4187,6 +5295,30 @@ static const u16 sExeggutorTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sExeggutorAlolanTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE static const u16 sCuboneTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -4288,6 +5420,70 @@ static const u16 sMarowakTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_ALOLAN_FORMS +static const u16 sMarowakAlolanTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const u16 sTyrogueTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS + static const u16 sHitmonleeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -4373,6 +5569,50 @@ static const u16 sHitmonchanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sHitmontopTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG static const u16 sLickitungTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -4436,6 +5676,66 @@ static const u16 sLickitungTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sLickilickyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING static const u16 sKoffingTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -4507,6 +5807,36 @@ static const u16 sWeezingTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sWeezingGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN static const u16 sRhyhornTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -4612,6 +5942,103 @@ static const u16 sRhydonTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sRhyperiorTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const u16 sHappinyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS + static const u16 sChanseyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -4682,6 +6109,79 @@ static const u16 sChanseyTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sBlisseyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SOFT_BOILED, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA static const u16 sTangelaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -4718,6 +6218,50 @@ static const u16 sTangelaTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sTangrowthTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN static const u16 sKangaskhanTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -4780,7 +6324,9 @@ static const u16 sKangaskhanTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KANGASKHAN +#if P_FAMILY_HORSEA static const u16 sHorseaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -4844,6 +6390,43 @@ static const u16 sSeadraTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sKingdraTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN static const u16 sGoldeenTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -4911,7 +6494,9 @@ static const u16 sSeakingTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GOLDEEN +#if P_FAMILY_STARYU static const u16 sStaryuTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -4994,6 +6579,55 @@ static const u16 sStarmieTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const u16 sMimeJrTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS static const u16 sMrMimeTeachableLearnset[] = { MOVE_AERIAL_ACE, @@ -5053,6 +6687,88 @@ static const u16 sMrMimeTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sMrMimeGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMrRimeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER static const u16 sScytherTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -5089,6 +6805,102 @@ static const u16 sScytherTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sScizorTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +static const u16 sKleavorTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const u16 sSmoochumTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS + static const u16 sJynxTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -5139,6 +6951,54 @@ static const u16 sJynxTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const u16 sElekidTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS static const u16 sElectabuzzTeachableLearnset[] = { MOVE_ATTRACT, @@ -5189,6 +7049,98 @@ static const u16 sElectabuzzTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sElectivireTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const u16 sMagbyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS + static const u16 sMagmarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -5232,6 +7184,51 @@ static const u16 sMagmarTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sMagmortarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR static const u16 sPinsirTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -5270,7 +7267,9 @@ static const u16 sPinsirTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PINSIR +#if P_FAMILY_TAUROS static const u16 sTaurosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -5314,6 +7313,166 @@ static const u16 sTaurosTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_PALDEAN_FORMS +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, +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP static const u16 sMagikarpTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -5363,7 +7522,9 @@ static const u16 sGyaradosTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MAGIKARP +#if P_FAMILY_LAPRAS static const u16 sLaprasTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -5407,11 +7568,15 @@ static const u16 sLaprasTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LAPRAS +#if P_FAMILY_DITTO static const u16 sDittoTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DITTO +#if P_FAMILY_EEVEE static const u16 sEeveeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -5561,6 +7726,196 @@ static const u16 sFlareonTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sEspeonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sUmbreonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const u16 sLeafeonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGlaceonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const u16 sSylveonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON static const u16 sPorygonTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -5603,6 +7958,91 @@ static const u16 sPorygonTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sPorygon2TeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +#if P_GEN_4_CROSS_EVOS +static const u16 sPorygonZTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE static const u16 sOmanyteTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -5680,7 +8120,9 @@ static const u16 sOmastarTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_OMANYTE +#if P_FAMILY_KABUTO static const u16 sKabutoTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -5770,7 +8212,9 @@ static const u16 sKabutopsTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KABUTO +#if P_FAMILY_AERODACTYL static const u16 sAerodactylTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -5813,6 +8257,63 @@ static const u16 sAerodactylTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const u16 sMunchlaxTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_METRONOME, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS static const u16 sSnorlaxTeachableLearnset[] = { MOVE_ATTRACT, @@ -5874,7 +8375,9 @@ static const u16 sSnorlaxTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SNORLAX +#if P_FAMILY_ARTICUNO static const u16 sArticunoTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -5912,6 +8415,32 @@ static const u16 sArticunoTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sArticunoGalarianTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_STEEL_WING, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS static const u16 sZapdosTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, @@ -5950,6 +8479,32 @@ static const u16 sZapdosTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sZapdosGalarianTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_STEEL_WING, + MOVE_TAUNT, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES static const u16 sMoltresTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, @@ -5987,6 +8542,28 @@ static const u16 sMoltresTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sMoltresGalarianTeachableLearnset[] = { + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_STEEL_WING, + MOVE_TAUNT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI static const u16 sDratiniTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -6136,7 +8713,9 @@ static const u16 sDragoniteTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DRATINI +#if P_FAMILY_MEWTWO static const u16 sMewtwoTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -6208,12 +8787,16 @@ static const u16 sMewtwoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MEWTWO +#if P_FAMILY_MEW // Instead of reading this array for Mew, it checks for exceptions in CanLearnTeachableMove instead. static const u16 sMewTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MEW +#if P_FAMILY_CHIKORITA static const u16 sChikoritaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -6327,7 +8910,9 @@ static const u16 sMeganiumTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHIKORITA +#if P_FAMILY_CYNDAQUIL static const u16 sCyndaquilTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -6454,6 +9039,14 @@ static const u16 sTyphlosionTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sTyphlosionHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE static const u16 sTotodileTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -6607,7 +9200,9 @@ static const u16 sFeraligatrTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TOTODILE +#if P_FAMILY_SENTRET static const u16 sSentretTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -6706,7 +9301,9 @@ static const u16 sFurretTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SENTRET +#if P_FAMILY_HOOTHOOT static const u16 sHoothootTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -6777,7 +9374,9 @@ static const u16 sNoctowlTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HOOTHOOT +#if P_FAMILY_LEDYBA static const u16 sLedybaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -6861,7 +9460,9 @@ static const u16 sLedianTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LEDYBA +#if P_FAMILY_SPINARAK static const u16 sSpinarakTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -6923,42 +9524,9 @@ static const u16 sAriadosTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPINARAK -static const u16 sCrobatTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_SNATCH, - MOVE_STEEL_WING, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_MIMIC, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_CHINCHOU static const u16 sChinchouTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -7029,144 +9597,9 @@ static const u16 sLanturnTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHINCHOU -static const u16 sPichuTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_SURF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_ROLLOUT, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sCleffaTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_METRONOME, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sIgglybuffTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_TOGEPI static const u16 sTogepiTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -7271,6 +9704,55 @@ static const u16 sTogeticTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sTogekissTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FLY, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU static const u16 sNatuTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -7350,7 +9832,9 @@ static const u16 sXatuTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NATU +#if P_FAMILY_MAREEP static const u16 sMareepTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -7473,37 +9957,46 @@ static const u16 sAmpharosTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MAREEP -static const u16 sBellossomTeachableLearnset[] = { +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const u16 sAzurillTeachableLearnset[] = { MOVE_ATTRACT, - MOVE_BULLET_SEED, - MOVE_CUT, + MOVE_BLIZZARD, MOVE_DOUBLE_TEAM, MOVE_FACADE, - MOVE_FLASH, MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, + MOVE_HAIL, MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_RETURN, - MOVE_SAFEGUARD, MOVE_SECRET_POWER, - MOVE_SLUDGE_BOMB, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, + MOVE_SURF, MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, MOVE_DOUBLE_EDGE, MOVE_ENDURE, + MOVE_ICY_WIND, MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SUBSTITUTE, MOVE_SWAGGER, - MOVE_SWORDS_DANCE, + MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_GEN_3_CROSS_EVOS static const u16 sMarillTeachableLearnset[] = { MOVE_ATTRACT, @@ -7599,6 +10092,44 @@ static const u16 sAzumarillTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const u16 sBonslyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS static const u16 sSudowoodoTeachableLearnset[] = { MOVE_ATTRACT, @@ -7648,56 +10179,9 @@ static const u16 sSudowoodoTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SUDOWOODO -static const u16 sPolitoedTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_DIVE, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_STRENGTH, - MOVE_SURF, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_WATERFALL, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_METRONOME, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_HOPPIP static const u16 sHoppipTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -7791,7 +10275,9 @@ static const u16 sJumpluffTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HOPPIP +#if P_FAMILY_AIPOM static const u16 sAipomTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -7848,6 +10334,57 @@ static const u16 sAipomTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sAmbipomTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN static const u16 sSunkernTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -7910,7 +10447,9 @@ static const u16 sSunfloraTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SUNKERN +#if P_FAMILY_YANMA static const u16 sYanmaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -7943,6 +10482,43 @@ static const u16 sYanmaTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sYanmegaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER static const u16 sWooperTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -8043,83 +10619,110 @@ static const u16 sQuagsireTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sEspeonTeachableLearnset[] = { +#if P_PALDEAN_FORMS +static const u16 sWooperPaldeanTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_AMNESIA, MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SUNNY_DAY, - MOVE_TOXIC, + MOVE_AVALANCHE, + MOVE_BLIZZARD, MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sUmbreonTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CUT, + MOVE_BULLDOZE, + MOVE_CHILLING_WATER, MOVE_DIG, - MOVE_DOUBLE_TEAM, + MOVE_EARTH_POWER, + MOVE_EARTHQUAKE, + MOVE_ENCORE, + MOVE_ENDURE, MOVE_FACADE, - MOVE_FLASH, MOVE_FRUSTRATION, + MOVE_HELPING_HAND, MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, + MOVE_HYDRO_PUMP, + MOVE_ICE_BEAM, + MOVE_ICY_WIND, + MOVE_LIQUIDATION, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, MOVE_PROTECT, - MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, MOVE_RETURN, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, MOVE_SLEEP_TALK, - MOVE_SNORE, + MOVE_SLUDGE_BOMB, + MOVE_SNOWSCAPE, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_TOXIC, + MOVE_TRAILBLAZE, + MOVE_WATER_PULSE, + MOVE_WATERFALL, 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, +}; +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW static const u16 sMurkrowTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -8159,57 +10762,36 @@ static const u16 sMurkrowTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sSlowkingTeachableLearnset[] = { +#if P_GEN_4_CROSS_EVOS +static const u16 sHonchkrowTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, MOVE_CALM_MIND, - MOVE_DIG, - MOVE_DIVE, MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, + MOVE_FLY, MOVE_FRUSTRATION, - MOVE_HAIL, MOVE_HIDDEN_POWER, MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, MOVE_PROTECT, MOVE_PSYCHIC, MOVE_RAIN_DANCE, MOVE_REST, MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SAFEGUARD, MOVE_SECRET_POWER, MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_STRENGTH, + MOVE_SNATCH, + MOVE_STEEL_WING, MOVE_SUNNY_DAY, - MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, MOVE_DREAM_EATER, - MOVE_DYNAMIC_PUNCH, MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_ICE_PUNCH, MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_MIMIC, MOVE_MUD_SLAP, MOVE_PSYCH_UP, - MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SUBSTITUTE, @@ -8218,7 +10800,10 @@ static const u16 sSlowkingTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW +#if P_FAMILY_MISDREAVUS static const u16 sMisdreavusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -8261,17 +10846,73 @@ static const u16 sMisdreavusTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sMismagiusTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN static const u16 sUnownTeachableLearnset[] = { MOVE_HIDDEN_POWER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const u16 sWynautTeachableLearnset[] = { + MOVE_SAFEGUARD, + MOVE_COUNTER, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_3_CROSS_EVOS static const u16 sWobbuffetTeachableLearnset[] = { MOVE_SAFEGUARD, MOVE_COUNTER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WOBBUFFET +#if P_FAMILY_GIRAFARIG static const u16 sGirafarigTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -8316,6 +10957,67 @@ static const u16 sGirafarigTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_9_CROSS_EVOS +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, +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO static const u16 sPinecoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -8393,7 +11095,9 @@ static const u16 sForretressTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PINECO +#if P_FAMILY_DUNSPARCE static const u16 sDunsparceTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -8444,6 +11148,73 @@ static const u16 sDunsparceTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_9_CROSS_EVOS +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, +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR static const u16 sGligarTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -8488,8 +11259,11 @@ static const u16 sGligarTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sSteelixTeachableLearnset[] = { +#if P_GEN_4_CROSS_EVOS +static const u16 sGliscorTeachableLearnset[] = { + MOVE_AERIAL_ACE, MOVE_ATTRACT, + MOVE_BRICK_BREAK, MOVE_CUT, MOVE_DIG, MOVE_DOUBLE_TEAM, @@ -8500,35 +11274,37 @@ static const u16 sSteelixTeachableLearnset[] = { MOVE_HYPER_BEAM, MOVE_IRON_TAIL, MOVE_PROTECT, + MOVE_RAIN_DANCE, MOVE_REST, MOVE_RETURN, - MOVE_ROAR, MOVE_ROCK_SMASH, MOVE_ROCK_TOMB, MOVE_SANDSTORM, MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STEEL_WING, MOVE_STRENGTH, MOVE_SUNNY_DAY, MOVE_TAUNT, + MOVE_THIEF, MOVE_TORMENT, MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_MIMIC, + MOVE_FURY_CUTTER, MOVE_MUD_SLAP, - MOVE_PSYCH_UP, MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, MOVE_SLEEP_TALK, MOVE_SNORE, MOVE_SUBSTITUTE, MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR +#if P_FAMILY_SNUBBULL static const u16 sSnubbullTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -8648,7 +11424,9 @@ static const u16 sGranbullTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SNUBBULL +#if P_FAMILY_QWILFISH static const u16 sQwilfishTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -8689,44 +11467,18 @@ static const u16 sQwilfishTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sScizorTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SAFEGUARD, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_STEEL_WING, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_MIMIC, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, +#if P_HISUIAN_FORMS +static const u16 sQwilfishHisuianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sOverqwilTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE static const u16 sShuckleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -8762,7 +11514,9 @@ static const u16 sShuckleTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHUCKLE +#if P_FAMILY_HERACROSS static const u16 sHeracrossTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -8804,7 +11558,9 @@ static const u16 sHeracrossTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HERACROSS +#if P_FAMILY_SNEASEL static const u16 sSneaselTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -8858,6 +11614,69 @@ static const u16 sSneaselTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sWeavileTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +static const u16 sSneaselHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sSneaslerTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA static const u16 sTeddiursaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -8967,6 +11786,18 @@ static const u16 sUrsaringTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_8_CROSS_EVOS +static const u16 sUrsalunaTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sUrsalunaBloodmoonTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA static const u16 sSlugmaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -9040,7 +11871,9 @@ static const u16 sMagcargoTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SLUGMA +#if P_FAMILY_SWINUB static const u16 sSwinubTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -9120,6 +11953,46 @@ static const u16 sPiloswineTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sMamoswineTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA static const u16 sCorsolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -9167,6 +12040,76 @@ static const u16 sCorsolaTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sCorsolaGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCursolaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID static const u16 sRemoraidTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -9248,7 +12191,9 @@ static const u16 sOctilleryTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_REMORAID +#if P_FAMILY_DELIBIRD static const u16 sDelibirdTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -9289,6 +12234,43 @@ static const u16 sDelibirdTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const u16 sMantykeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS static const u16 sMantineTeachableLearnset[] = { MOVE_AERIAL_ACE, @@ -9328,7 +12310,9 @@ static const u16 sMantineTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MANTINE +#if P_FAMILY_SKARMORY static const u16 sSkarmoryTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -9369,7 +12353,9 @@ static const u16 sSkarmoryTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SKARMORY +#if P_FAMILY_HOUNDOUR static const u16 sHoundourTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -9451,40 +12437,9 @@ static const u16 sHoundoomTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HOUNDOUR -static const u16 sKingdraTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DIVE, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SURF, - MOVE_TOXIC, - MOVE_WATERFALL, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_PHANPY static const u16 sPhanpyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -9555,48 +12510,9 @@ static const u16 sDonphanTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PHANPY -static const u16 sPorygon2TeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_BLIZZARD, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_STANTLER static const u16 sStantlerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -9641,219 +12557,23 @@ static const u16 sStantlerTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_8_CROSS_EVOS +static const u16 sWyrdeerTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE static const u16 sSmeargleTeachableLearnset[] = { MOVE_FLAMETHROWER, MOVE_SEISMIC_TOSS, MOVE_SLEEP_TALK, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SMEARGLE -static const u16 sTyrogueTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_MEGA_KICK, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sHitmontopTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_MEGA_KICK, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sSmoochumTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_METRONOME, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - -static const u16 sElekidTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sMagbyTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_IRON_TAIL, - MOVE_OVERHEAT, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_MILTANK static const u16 sMiltankTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -9911,76 +12631,9 @@ static const u16 sMiltankTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MILTANK -static const u16 sBlisseyTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_DREAM_EATER, - MOVE_DYNAMIC_PUNCH, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_METRONOME, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, - MOVE_SEISMIC_TOSS, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SOFT_BOILED, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_RAIKOU static const u16 sRaikouTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_CUT, @@ -10023,7 +12676,9 @@ static const u16 sRaikouTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_RAIKOU +#if P_FAMILY_ENTEI static const u16 sEnteiTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_CUT, @@ -10065,7 +12720,9 @@ static const u16 sEnteiTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ENTEI +#if P_FAMILY_SUICUNE static const u16 sSuicuneTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_CALM_MIND, @@ -10109,7 +12766,9 @@ static const u16 sSuicuneTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SUICUNE +#if P_FAMILY_LARVITAR static const u16 sLarvitarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -10242,7 +12901,9 @@ static const u16 sTyranitarTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LARVITAR +#if P_FAMILY_LUGIA static const u16 sLugiaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -10300,7 +12961,9 @@ static const u16 sLugiaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LUGIA +#if P_FAMILY_HO_OH static const u16 sHoOhTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -10351,7 +13014,9 @@ static const u16 sHoOhTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HO_OH +#if P_FAMILY_CELEBI static const u16 sCelebiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -10397,7 +13062,9 @@ static const u16 sCelebiTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CELEBI +#if P_FAMILY_TREECKO static const u16 sTreeckoTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -10545,7 +13212,9 @@ static const u16 sSceptileTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TREECKO +#if P_FAMILY_TORCHIC static const u16 sTorchicTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -10683,7 +13352,9 @@ static const u16 sBlazikenTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP static const u16 sMudkipTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -10823,7 +13494,9 @@ static const u16 sSwampertTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MUDKIP +#if P_FAMILY_POOCHYENA static const u16 sPoochyenaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -10897,7 +13570,9 @@ static const u16 sMightyenaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_POOCHYENA +#if P_FAMILY_ZIGZAGOON static const u16 sZigzagoonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -10989,6 +13664,109 @@ static const u16 sLinooneTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sZigzagoonGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_FACADE, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLinooneGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sObstagoonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE static const u16 sWurmpleTeachableLearnset[] = { MOVE_SNORE, MOVE_UNAVAILABLE, @@ -11066,7 +13844,9 @@ static const u16 sDustoxTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WURMPLE +#if P_FAMILY_LOTAD static const u16 sLotadTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -11202,7 +13982,9 @@ static const u16 sLudicoloTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LOTAD +#if P_FAMILY_SEEDOT static const u16 sSeedotTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -11332,7 +14114,9 @@ static const u16 sShiftryTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SEEDOT +#if P_FAMILY_TAILLOW static const u16 sTaillowTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -11393,7 +14177,9 @@ static const u16 sSwellowTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TAILLOW +#if P_FAMILY_WINGULL static const u16 sWingullTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -11463,7 +14249,9 @@ static const u16 sPelipperTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WINGULL +#if P_FAMILY_RALTS static const u16 sRaltsTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -11609,6 +14397,66 @@ static const u16 sGardevoirTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sGalladeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT static const u16 sSurskitTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -11680,7 +14528,9 @@ static const u16 sMasquerainTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SURSKIT +#if P_FAMILY_SHROOMISH static const u16 sShroomishTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -11761,7 +14611,9 @@ static const u16 sBreloomTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHROOMISH +#if P_FAMILY_SLAKOTH static const u16 sSlakothTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -11930,7 +14782,9 @@ static const u16 sSlakingTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SLAKOTH +#if P_FAMILY_NINCADA static const u16 sNincadaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CUT, @@ -12032,7 +14886,9 @@ static const u16 sShedinjaTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NINCADA +#if P_FAMILY_WHISMUR static const u16 sWhismurTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -12190,7 +15046,9 @@ static const u16 sExploudTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WHISMUR +#if P_FAMILY_MAKUHITA static const u16 sMakuhitaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -12279,43 +15137,9 @@ static const u16 sHariyamaTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MAKUHITA -static const u16 sAzurillTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SURF, - MOVE_TOXIC, - MOVE_WATERFALL, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_NOSEPASS static const u16 sNosepassTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -12359,6 +15183,49 @@ static const u16 sNosepassTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sProbopassTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY static const u16 sSkittyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -12451,7 +15318,9 @@ static const u16 sDelcattyTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SKITTY +#if P_FAMILY_SABLEYE static const u16 sSableyeTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -12506,7 +15375,9 @@ static const u16 sSableyeTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SABLEYE +#if P_FAMILY_MAWILE static const u16 sMawileTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -12558,7 +15429,9 @@ static const u16 sMawileTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MAWILE +#if P_FAMILY_ARON static const u16 sAronTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -12704,7 +15577,9 @@ static const u16 sAggronTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ARON +#if P_FAMILY_MEDITITE static const u16 sMedititeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -12805,7 +15680,9 @@ static const u16 sMedichamTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MEDITITE +#if P_FAMILY_ELECTRIKE static const u16 sElectrikeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -12879,7 +15756,9 @@ static const u16 sManectricTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ELECTRIKE +#if P_FAMILY_PLUSLE static const u16 sPlusleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -12920,7 +15799,9 @@ static const u16 sPlusleTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PLUSLE +#if P_FAMILY_MINUN static const u16 sMinunTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -12961,7 +15842,9 @@ static const u16 sMinunTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MINUN +#if P_FAMILY_VOLBEAT_ILLUMISE static const u16 sVolbeatTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -13059,6 +15942,42 @@ static const u16 sIllumiseTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const u16 sBudewTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS static const u16 sRoseliaTeachableLearnset[] = { MOVE_ATTRACT, @@ -13096,6 +16015,44 @@ static const u16 sRoseliaTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sRoseradeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN static const u16 sGulpinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -13187,7 +16144,9 @@ static const u16 sSwalotTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GULPIN +#if P_FAMILY_CARVANHA static const u16 sCarvanhaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -13265,7 +16224,9 @@ static const u16 sSharpedoTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CARVANHA +#if P_FAMILY_WAILMER static const u16 sWailmerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -13342,7 +16303,9 @@ static const u16 sWailordTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WAILMER +#if P_FAMILY_NUMEL static const u16 sNumelTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -13418,7 +16381,9 @@ static const u16 sCameruptTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NUMEL +#if P_FAMILY_TORKOAL static const u16 sTorkoalTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -13456,7 +16421,9 @@ static const u16 sTorkoalTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TORKOAL +#if P_FAMILY_SPOINK static const u16 sSpoinkTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -13552,7 +16519,9 @@ static const u16 sGrumpigTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPOINK +#if P_FAMILY_SPINDA static const u16 sSpindaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -13609,7 +16578,9 @@ static const u16 sSpindaTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPINDA +#if P_FAMILY_TRAPINCH static const u16 sTrapinchTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -13727,7 +16698,9 @@ static const u16 sFlygonTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TRAPINCH +#if P_FAMILY_CACNEA static const u16 sCacneaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -13808,7 +16781,9 @@ static const u16 sCacturneTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CACNEA +#if P_FAMILY_SWABLU static const u16 sSwabluTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -13886,7 +16861,9 @@ static const u16 sAltariaTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SWABLU +#if P_FAMILY_ZANGOOSE static const u16 sZangooseTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -13949,7 +16926,9 @@ static const u16 sZangooseTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ZANGOOSE +#if P_FAMILY_SEVIPER static const u16 sSeviperTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -13988,7 +16967,9 @@ static const u16 sSeviperTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SEVIPER +#if P_FAMILY_LUNATONE static const u16 sLunatoneTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_CALM_MIND, @@ -14032,7 +17013,9 @@ static const u16 sLunatoneTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LUNATONE +#if P_FAMILY_SOLROCK static const u16 sSolrockTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -14077,7 +17060,9 @@ static const u16 sSolrockTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SOLROCK +#if P_FAMILY_BARBOACH static const u16 sBarboachTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -14149,7 +17134,9 @@ static const u16 sWhiscashTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BARBOACH +#if P_FAMILY_CORPHISH static const u16 sCorphishTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -14240,7 +17227,9 @@ static const u16 sCrawdauntTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CORPHISH +#if P_FAMILY_BALTOY static const u16 sBaltoyTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DIG, @@ -14325,7 +17314,9 @@ static const u16 sClaydolTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BALTOY +#if P_FAMILY_LILEEP static const u16 sLileepTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -14397,7 +17388,9 @@ static const u16 sCradilyTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LILEEP +#if P_FAMILY_ANORITH static const u16 sAnorithTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -14472,7 +17465,9 @@ static const u16 sArmaldoTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ANORITH +#if P_FAMILY_FEEBAS static const u16 sFeebasTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -14543,7 +17538,9 @@ static const u16 sMiloticTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FEEBAS +#if P_FAMILY_CASTFORM static const u16 sCastformTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -14586,7 +17583,9 @@ static const u16 sCastformTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CASTFORM +#if P_FAMILY_KECLEON static const u16 sKecleonTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -14651,7 +17650,9 @@ static const u16 sKecleonTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KECLEON +#if P_FAMILY_SHUPPET static const u16 sShuppetTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -14734,7 +17735,9 @@ static const u16 sBanetteTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHUPPET +#if P_FAMILY_DUSKULL static const u16 sDuskullTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -14829,6 +17832,57 @@ static const u16 sDusclopsTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sDusknoirTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS static const u16 sTropiusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -14868,6 +17922,49 @@ static const u16 sTropiusTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const u16 sChinglingTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS static const u16 sChimechoTeachableLearnset[] = { MOVE_ATTRACT, @@ -14909,7 +18006,9 @@ static const u16 sChimechoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHIMECHO +#if P_FAMILY_ABSOL static const u16 sAbsolTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -14967,13 +18066,9 @@ static const u16 sAbsolTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ABSOL -static const u16 sWynautTeachableLearnset[] = { - MOVE_SAFEGUARD, - MOVE_COUNTER, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_SNORUNT static const u16 sSnoruntTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -15046,6 +18141,53 @@ static const u16 sGlalieTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sFroslassTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL static const u16 sSphealTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -15169,7 +18311,9 @@ static const u16 sWalreinTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPHEAL +#if P_FAMILY_CLAMPERL static const u16 sClamperlTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -15274,7 +18418,9 @@ static const u16 sGorebyssTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CLAMPERL +#if P_FAMILY_RELICANTH static const u16 sRelicanthTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -15315,7 +18461,9 @@ static const u16 sRelicanthTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_RELICANTH +#if P_FAMILY_LUVDISC static const u16 sLuvdiscTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -15348,7 +18496,9 @@ static const u16 sLuvdiscTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LUVDISC +#if P_FAMILY_BAGON static const u16 sBagonTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -15470,7 +18620,9 @@ static const u16 sSalamenceTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BAGON +#if P_FAMILY_BELDUM static const u16 sBeldumTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -15574,7 +18726,9 @@ static const u16 sMetagrossTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BELDUM +#if P_FAMILY_REGIROCK static const u16 sRegirockTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DIG, @@ -15624,7 +18778,9 @@ static const u16 sRegirockTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_REGIROCK +#if P_FAMILY_REGICE static const u16 sRegiceTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -15675,7 +18831,9 @@ static const u16 sRegiceTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_REGICE +#if P_FAMILY_REGISTEEL static const u16 sRegisteelTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -15725,7 +18883,9 @@ static const u16 sRegisteelTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_REGISTEEL +#if P_FAMILY_LATIAS static const u16 sLatiasTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -15781,7 +18941,9 @@ static const u16 sLatiasTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LATIAS +#if P_FAMILY_LATIOS static const u16 sLatiosTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -15837,7 +18999,9 @@ static const u16 sLatiosTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LATIOS +#if P_FAMILY_KYOGRE static const u16 sKyogreTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -15885,7 +19049,9 @@ static const u16 sKyogreTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KYOGRE +#if P_FAMILY_GROUDON static const u16 sGroudonTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -15945,7 +19111,9 @@ static const u16 sGroudonTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GROUDON +#if P_FAMILY_RAYQUAZA static const u16 sRayquazaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -16002,7 +19170,9 @@ static const u16 sRayquazaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_RAYQUAZA +#if P_FAMILY_JIRACHI static const u16 sJirachiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -16052,7 +19222,9 @@ static const u16 sJirachiTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_JIRACHI +#if P_FAMILY_DEOXYS static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -16116,7 +19288,128 @@ static const u16 sDeoxysNormalTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -#if P_GEN_4_POKEMON == TRUE +static const u16 sDeoxysAttackTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDeoxysDefenseTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDeoxysSpeedTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG static const u16 sTurtwigTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -16223,7 +19516,9 @@ static const u16 sTorterraTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TURTWIG +#if P_FAMILY_CHIMCHAR static const u16 sChimcharTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -16353,7 +19648,9 @@ static const u16 sInfernapeTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHIMCHAR +#if P_FAMILY_PIPLUP static const u16 sPiplupTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -16466,7 +19763,9 @@ static const u16 sEmpoleonTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PIPLUP +#if P_FAMILY_STARLY static const u16 sStarlyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -16549,7 +19848,9 @@ static const u16 sStaraptorTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_STARLY +#if P_FAMILY_BIDOOF static const u16 sBidoofTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -16639,7 +19940,9 @@ static const u16 sBibarelTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BIDOOF +#if P_FAMILY_KRICKETOT static const u16 sKricketotTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SNORE, @@ -16677,7 +19980,9 @@ static const u16 sKricketuneTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KRICKETOT +#if P_FAMILY_SHINX static const u16 sShinxTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -16777,73 +20082,9 @@ static const u16 sLuxrayTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHINX -static const u16 sBudewTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BULLET_SEED, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sRoseradeTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BULLET_SEED, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_CRANIDOS static const u16 sCranidosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -16933,7 +20174,9 @@ static const u16 sRampardosTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CRANIDOS +#if P_FAMILY_SHIELDON static const u16 sShieldonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -17017,7 +20260,9 @@ static const u16 sBastiodonTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHIELDON +#if P_FAMILY_BURMY static const u16 sBurmyTeachableLearnset[] = { MOVE_HIDDEN_POWER, MOVE_PROTECT, @@ -17058,6 +20303,72 @@ static const u16 sWormadamPlantCloakTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sWormadamSandyCloakTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWormadamTrashCloakTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + static const u16 sMothimTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -17092,7 +20403,9 @@ static const u16 sMothimTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BURMY +#if P_FAMILY_COMBEE static const u16 sCombeeTeachableLearnset[] = { MOVE_MUD_SLAP, MOVE_SNORE, @@ -17129,7 +20442,9 @@ static const u16 sVespiquenTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_COMBEE +#if P_FAMILY_PACHIRISU static const u16 sPachirisuTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -17163,7 +20478,9 @@ static const u16 sPachirisuTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PACHIRISU +#if P_FAMILY_BUIZEL static const u16 sBuizelTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -17246,7 +20563,9 @@ static const u16 sFloatzelTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BUIZEL +#if P_FAMILY_CHERUBI static const u16 sCherubiTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -17302,7 +20621,9 @@ static const u16 sCherrimTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_SHELLOS static const u16 sShellosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -17372,54 +20693,9 @@ static const u16 sGastrodonTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHELLOS -static const u16 sAmbipomTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SNATCH, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_FURY_CUTTER, - MOVE_ICE_PUNCH, - MOVE_MUD_SLAP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_DRIFLOON static const u16 sDrifloonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -17500,7 +20776,9 @@ static const u16 sDrifblimTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DRIFLOON +#if P_FAMILY_BUNEARY static const u16 sBunearyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -17583,85 +20861,9 @@ static const u16 sLopunnyTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BUNEARY -static const u16 sMismagiusTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sHonchkrowTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SNATCH, - MOVE_STEEL_WING, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_GLAMEOW static const u16 sGlameowTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -17745,46 +20947,9 @@ static const u16 sPuruglyTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GLAMEOW -static const u16 sChinglingTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_STUNKY static const u16 sStunkyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -17863,7 +21028,9 @@ static const u16 sSkuntankTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_STUNKY +#if P_FAMILY_BRONZOR static const u16 sBronzorTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -17939,126 +21106,9 @@ static const u16 sBronzongTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BRONZOR -static const u16 sBonslyTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_PROTECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_MIMIC, - MOVE_PSYCH_UP, - MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - -static const u16 sMimeJrTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MIMIC, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sHappinyTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_COUNTER, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_METRONOME, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_CHATOT static const u16 sChatotTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -18088,7 +21138,9 @@ static const u16 sChatotTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHATOT +#if P_FAMILY_SPIRITOMB static const u16 sSpiritombTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -18124,7 +21176,9 @@ static const u16 sSpiritombTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPIRITOMB +#if P_FAMILY_GIBLE static const u16 sGibleTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -18244,60 +21298,9 @@ static const u16 sGarchompTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GIBLE -static const u16 sMunchlaxTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SNATCH, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DEFENSE_CURL, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_METRONOME, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_RIOLU static const u16 sRioluTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -18380,7 +21383,9 @@ static const u16 sLucarioTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_RIOLU +#if P_FAMILY_HIPPOPOTAS static const u16 sHippopotasTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -18446,7 +21451,9 @@ static const u16 sHippowdonTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HIPPOPOTAS +#if P_FAMILY_SKORUPI static const u16 sSkorupiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -18526,7 +21533,9 @@ static const u16 sDrapionTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SKORUPI +#if P_FAMILY_CROAGUNK static const u16 sCroagunkTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -18613,7 +21622,9 @@ static const u16 sToxicroakTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CROAGUNK +#if P_FAMILY_CARNIVINE static const u16 sCarnivineTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -18644,7 +21655,9 @@ static const u16 sCarnivineTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CARNIVINE +#if P_FAMILY_FINNEON static const u16 sFinneonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -18709,40 +21722,9 @@ static const u16 sLumineonTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FINNEON -static const u16 sMantykeTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DIVE, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SURF, - MOVE_TOXIC, - MOVE_WATERFALL, - MOVE_WATER_PULSE, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_SNOVER static const u16 sSnoverTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -18823,773 +21805,9 @@ static const u16 sAbomasnowTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SNOVER -static const u16 sWeavileTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SNATCH, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sMagnezoneTeachableLearnset[] = { - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_SUNNY_DAY, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sLickilickyTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_DEFENSE_CURL, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - -static const u16 sRhyperiorTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_FURY_CUTTER, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - -static const u16 sTangrowthTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_BULLET_SEED, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_SLUDGE_BOMB, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sElectivireTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_STRENGTH, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sMagmortarTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_OVERHEAT, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - -static const u16 sTogekissTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_FLY, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SOLAR_BEAM, - MOVE_STEEL_WING, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sYanmegaTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SOLAR_BEAM, - MOVE_STEEL_WING, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sLeafeonTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BULLET_SEED, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_MUD_SLAP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sGlaceonTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_SMASH, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sGliscorTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SLUDGE_BOMB, - MOVE_STEEL_WING, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sMamoswineTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_STRENGTH, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - -static const u16 sPorygonZTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_BLIZZARD, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sGalladeTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_FURY_CUTTER, - MOVE_ICE_PUNCH, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sProbopassTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SHOCK_WAVE, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sDusknoirTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_PUNCH, - MOVE_UNAVAILABLE, -}; - -static const u16 sFroslassTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HAIL, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SNATCH, - MOVE_TAUNT, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_ROTOM static const u16 sRotomTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -19623,7 +21841,9 @@ static const u16 sRotomTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ROTOM +#if P_FAMILY_UXIE static const u16 sUxieTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -19668,7 +21888,9 @@ static const u16 sUxieTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_UXIE +#if P_FAMILY_MESPRIT static const u16 sMespritTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_CALM_MIND, @@ -19713,7 +21935,9 @@ static const u16 sMespritTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MESPRIT +#if P_FAMILY_AZELF static const u16 sAzelfTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -19761,7 +21985,9 @@ static const u16 sAzelfTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_AZELF +#if P_FAMILY_DIALGA static const u16 sDialgaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -19810,7 +22036,9 @@ static const u16 sDialgaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DIALGA +#if P_FAMILY_PALKIA static const u16 sPalkiaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -19861,7 +22089,9 @@ static const u16 sPalkiaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PALKIA +#if P_FAMILY_HEATRAN static const u16 sHeatranTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -19897,7 +22127,9 @@ static const u16 sHeatranTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HEATRAN +#if P_FAMILY_REGIGIGAS static const u16 sRegigigasTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -19936,7 +22168,9 @@ static const u16 sRegigigasTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_REGIGIGAS +#if P_FAMILY_GIRATINA static const u16 sGiratinaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -19981,7 +22215,9 @@ static const u16 sGiratinaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GIRATINA +#if P_FAMILY_CRESSELIA static const u16 sCresseliaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -20020,7 +22256,9 @@ static const u16 sCresseliaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CRESSELIA +#if P_FAMILY_MANAPHY static const u16 sPhioneTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DIVE, @@ -20090,7 +22328,9 @@ static const u16 sManaphyTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MANAPHY +#if P_FAMILY_DARKRAI static const u16 sDarkraiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -20140,7 +22380,9 @@ static const u16 sDarkraiTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DARKRAI +#if P_FAMILY_SHAYMIN static const u16 sShayminLandTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, @@ -20172,6 +22414,29 @@ static const u16 sShayminLandTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sShayminSkyTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS static const u16 sArceusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -20238,9 +22503,9 @@ static const u16 sArceusTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; -#endif +#endif //P_FAMILY_ARCEUS -#if P_GEN_5_POKEMON == TRUE +#if P_FAMILY_VICTINI static const u16 sVictiniTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, @@ -20281,7 +22546,9 @@ static const u16 sVictiniTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VICTINI +#if P_FAMILY_SNIVY static const u16 sSnivyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -20383,7 +22650,9 @@ static const u16 sSerperiorTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SNIVY +#if P_FAMILY_TEPIG static const u16 sTepigTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -20490,7 +22759,9 @@ static const u16 sEmboarTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TEPIG +#if P_FAMILY_OSHAWOTT static const u16 sOshawottTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -20598,6 +22869,14 @@ static const u16 sSamurottTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sSamurottHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT static const u16 sPatratTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -20666,7 +22945,9 @@ static const u16 sWatchogTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PATRAT +#if P_FAMILY_LILLIPUP static const u16 sLillipupTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -20761,7 +23042,9 @@ static const u16 sStoutlandTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LILLIPUP +#if P_FAMILY_PURRLOIN static const u16 sPurrloinTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -20825,7 +23108,9 @@ static const u16 sLiepardTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PURRLOIN +#if P_FAMILY_PANSAGE static const u16 sPansageTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -20891,7 +23176,9 @@ static const u16 sSimisageTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PANSAGE +#if P_FAMILY_PANSEAR static const u16 sPansearTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -20960,7 +23247,9 @@ static const u16 sSimisearTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PANSEAR +#if P_FAMILY_PANPOUR static const u16 sPanpourTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -21037,7 +23326,9 @@ static const u16 sSimipourTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PANPOUR +#if P_FAMILY_MUNNA static const u16 sMunnaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -21109,7 +23400,9 @@ static const u16 sMusharnaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MUNNA +#if P_FAMILY_PIDOVE static const u16 sPidoveTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -21183,7 +23476,9 @@ static const u16 sUnfezantTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PIDOVE +#if P_FAMILY_BLITZLE static const u16 sBlitzleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -21240,7 +23535,9 @@ static const u16 sZebstrikaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BLITZLE +#if P_FAMILY_ROGGENROLA static const u16 sRoggenrolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -21320,7 +23617,9 @@ static const u16 sGigalithTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ROGGENROLA +#if P_FAMILY_WOOBAT static const u16 sWoobatTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -21397,7 +23696,9 @@ static const u16 sSwoobatTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WOOBAT +#if P_FAMILY_DRILBUR static const u16 sDrilburTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -21460,7 +23761,9 @@ static const u16 sExcadrillTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DRILBUR +#if P_FAMILY_AUDINO static const u16 sAudinoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -21509,7 +23812,9 @@ static const u16 sAudinoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_AUDINO +#if P_FAMILY_TIMBURR static const u16 sTimburrTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -21612,7 +23917,9 @@ static const u16 sConkeldurrTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TIMBURR +#if P_FAMILY_TYMPOLE static const u16 sTympoleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -21696,7 +24003,9 @@ static const u16 sSeismitoadTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TYMPOLE +#if P_FAMILY_THROH static const u16 sThrohTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -21732,7 +24041,9 @@ static const u16 sThrohTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_THROH +#if P_FAMILY_SAWK static const u16 sSawkTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -21767,7 +24078,9 @@ static const u16 sSawkTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SAWK +#if P_FAMILY_SEWADDLE static const u16 sSewaddleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -21854,7 +24167,9 @@ static const u16 sLeavannyTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SEWADDLE +#if P_FAMILY_VENIPEDE static const u16 sVenipedeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -21939,7 +24254,9 @@ static const u16 sScolipedeTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VENIPEDE +#if P_FAMILY_COTTONEE static const u16 sCottoneeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -21994,7 +24311,9 @@ static const u16 sWhimsicottTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_COTTONEE +#if P_FAMILY_PETILIL static const u16 sPetililTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -22049,6 +24368,14 @@ static const u16 sLilligantTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sLilligantHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN static const u16 sBasculinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -22078,6 +24405,18 @@ static const u16 sBasculinTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sBasculinWhiteStripedTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sBasculegionTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE static const u16 sSandileTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -22188,7 +24527,9 @@ static const u16 sKrookodileTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SANDILE +#if P_FAMILY_DARUMAKA static const u16 sDarumakaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -22267,6 +24608,74 @@ static const u16 sDarmanitanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sDarumakaGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_ICE_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDarmanitanGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS static const u16 sMaractusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -22290,7 +24699,9 @@ static const u16 sMaractusTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MARACTUS +#if P_FAMILY_DWEBBLE static const u16 sDwebbleTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -22353,7 +24764,9 @@ static const u16 sCrustleTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DWEBBLE +#if P_FAMILY_SCRAGGY static const u16 sScraggyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -22432,7 +24845,9 @@ static const u16 sScraftyTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SCRAGGY +#if P_FAMILY_SIGILYPH static const u16 sSigilyphTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -22471,7 +24886,9 @@ static const u16 sSigilyphTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SIGILYPH +#if P_FAMILY_YAMASK static const u16 sYamaskTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -22534,6 +24951,58 @@ static const u16 sCofagrigusTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sYamaskGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_THIEF, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRunerigusTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA static const u16 sTirtougaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -22605,7 +25074,9 @@ static const u16 sCarracostaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TIRTOUGA +#if P_FAMILY_ARCHEN static const u16 sArchenTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -22671,7 +25142,9 @@ static const u16 sArcheopsTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ARCHEN +#if P_FAMILY_TRUBBISH static const u16 sTrubbishTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -22725,7 +25198,9 @@ static const u16 sGarbodorTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TRUBBISH +#if P_FAMILY_ZORUA static const u16 sZoruaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -22795,6 +25270,18 @@ static const u16 sZoroarkTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sZoruaHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sZoroarkHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO static const u16 sMinccinoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -22857,7 +25344,9 @@ static const u16 sCinccinoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MINCCINO +#if P_FAMILY_GOTHITA static const u16 sGothitaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -22973,7 +25462,9 @@ static const u16 sGothitelleTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GOTHITA +#if P_FAMILY_SOLOSIS static const u16 sSolosisTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -23091,7 +25582,9 @@ static const u16 sReuniclusTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SOLOSIS +#if P_FAMILY_DUCKLETT static const u16 sDucklettTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -23148,7 +25641,9 @@ static const u16 sSwannaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DUCKLETT +#if P_FAMILY_VANILLITE static const u16 sVanilliteTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -23230,7 +25725,9 @@ static const u16 sVanilluxeTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VANILLITE +#if P_FAMILY_DEERLING static const u16 sDeerlingTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -23290,7 +25787,9 @@ static const u16 sSawsbuckTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DEERLING +#if P_FAMILY_EMOLGA static const u16 sEmolgaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -23319,7 +25818,9 @@ static const u16 sEmolgaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_EMOLGA +#if P_FAMILY_KARRABLAST static const u16 sKarrablastTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -23372,7 +25873,9 @@ static const u16 sEscavalierTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KARRABLAST +#if P_FAMILY_FOONGUS static const u16 sFoongusTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -23425,7 +25928,9 @@ static const u16 sAmoongussTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FOONGUS +#if P_FAMILY_FRILLISH static const u16 sFrillishTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -23500,7 +26005,9 @@ static const u16 sJellicentTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FRILLISH +#if P_FAMILY_ALOMOMOLA static const u16 sAlomomolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -23534,7 +26041,9 @@ static const u16 sAlomomolaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ALOMOMOLA +#if P_FAMILY_JOLTIK static const u16 sJoltikTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -23592,7 +26101,9 @@ static const u16 sGalvantulaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_JOLTIK +#if P_FAMILY_FERROSEED static const u16 sFerroseedTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_DOUBLE_TEAM, @@ -23652,7 +26163,9 @@ static const u16 sFerrothornTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FERROSEED +#if P_FAMILY_KLINK static const u16 sKlinkTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -23722,7 +26235,9 @@ static const u16 sKlinklangTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KLINK +#if P_FAMILY_TYNAMO static const u16 sTynamoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, @@ -23794,7 +26309,9 @@ static const u16 sEelektrossTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TYNAMO +#if P_FAMILY_ELGYEM static const u16 sElgyemTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -23869,7 +26386,9 @@ static const u16 sBeheeyemTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ELGYEM +#if P_FAMILY_LITWICK static const u16 sLitwickTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -23970,7 +26489,9 @@ static const u16 sChandelureTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LITWICK +#if P_FAMILY_AXEW static const u16 sAxewTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24073,7 +26594,9 @@ static const u16 sHaxorusTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_AXEW +#if P_FAMILY_CUBCHOO static const u16 sCubchooTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24149,7 +26672,9 @@ static const u16 sBearticTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CUBCHOO +#if P_FAMILY_CRYOGONAL static const u16 sCryogonalTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -24178,7 +26703,9 @@ static const u16 sCryogonalTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CRYOGONAL +#if P_FAMILY_SHELMET static const u16 sShelmetTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -24227,7 +26754,9 @@ static const u16 sAccelgorTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHELMET +#if P_FAMILY_STUNFISK static const u16 sStunfiskTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -24262,6 +26791,33 @@ static const u16 sStunfiskTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GALARIAN_FORMS +static const u16 sStunfiskGalarianTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO static const u16 sMienfooTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24333,7 +26889,9 @@ static const u16 sMienshaoTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MIENFOO +#if P_FAMILY_DRUDDIGON static const u16 sDruddigonTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24374,7 +26932,9 @@ static const u16 sDruddigonTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DRUDDIGON +#if P_FAMILY_GOLETT static const u16 sGolettTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, @@ -24460,7 +27020,9 @@ static const u16 sGolurkTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GOLETT +#if P_FAMILY_PAWNIARD static const u16 sPawniardTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24528,6 +27090,57 @@ static const u16 sBisharpTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_9_CROSS_EVOS +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, +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT static const u16 sBouffalantTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24558,7 +27171,9 @@ static const u16 sBouffalantTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BOUFFALANT +#if P_FAMILY_RUFFLET static const u16 sRuffletTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24618,6 +27233,14 @@ static const u16 sBraviaryTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sBraviaryHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY static const u16 sVullabyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24682,7 +27305,9 @@ static const u16 sMandibuzzTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VULLABY +#if P_FAMILY_HEATMOR static const u16 sHeatmorTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24719,7 +27344,9 @@ static const u16 sHeatmorTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HEATMOR +#if P_FAMILY_DURANT static const u16 sDurantTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -24748,7 +27375,9 @@ static const u16 sDurantTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DURANT +#if P_FAMILY_DEINO static const u16 sDeinoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -24849,7 +27478,9 @@ static const u16 sHydreigonTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DEINO +#if P_FAMILY_LARVESTA static const u16 sLarvestaTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -24908,7 +27539,9 @@ static const u16 sVolcaronaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LARVESTA +#if P_FAMILY_COBALION static const u16 sCobalionTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -24939,7 +27572,9 @@ static const u16 sCobalionTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_COBALION +#if P_FAMILY_TERRAKION static const u16 sTerrakionTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -24972,7 +27607,9 @@ static const u16 sTerrakionTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TERRAKION +#if P_FAMILY_VIRIZION static const u16 sVirizionTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -25006,7 +27643,9 @@ static const u16 sVirizionTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VIRIZION +#if P_FAMILY_TORNADUS static const u16 sTornadusTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -25039,7 +27678,9 @@ static const u16 sTornadusTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TORNADUS +#if P_FAMILY_THUNDURUS static const u16 sThundurusTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -25075,7 +27716,9 @@ static const u16 sThundurusTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_THUNDURUS +#if P_FAMILY_RESHIRAM static const u16 sReshiramTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, @@ -25111,7 +27754,9 @@ static const u16 sReshiramTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_RESHIRAM +#if P_FAMILY_ZEKROM static const u16 sZekromTeachableLearnset[] = { MOVE_CUT, MOVE_DOUBLE_TEAM, @@ -25149,7 +27794,9 @@ static const u16 sZekromTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ZEKROM +#if P_FAMILY_LANDORUS static const u16 sLandorusTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -25184,7 +27831,9 @@ static const u16 sLandorusTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LANDORUS +#if P_FAMILY_KYUREM static const u16 sKyuremTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_CUT, @@ -25221,7 +27870,9 @@ static const u16 sKyuremTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KYUREM +#if P_FAMILY_KELDEO static const u16 sKeldeoTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -25255,7 +27906,9 @@ static const u16 sKeldeoTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KELDEO +#if P_FAMILY_MELOETTA static const u16 sMeloettaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CALM_MIND, @@ -25296,7 +27949,9 @@ static const u16 sMeloettaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MELOETTA +#if P_FAMILY_GENESECT static const u16 sGenesectTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, @@ -25331,9 +27986,9 @@ static const u16 sGenesectTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; -#endif +#endif //P_FAMILY_GENESECT -#if P_GEN_6_POKEMON == TRUE +#if P_FAMILY_CHESPIN static const u16 sChespinTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -25460,7 +28115,9 @@ static const u16 sChesnaughtTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHESPIN +#if P_FAMILY_FENNEKIN static const u16 sFennekinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -25569,7 +28226,9 @@ static const u16 sDelphoxTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FENNEKIN +#if P_FAMILY_FROAKIE static const u16 sFroakieTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -25680,7 +28339,9 @@ static const u16 sGreninjaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_BUNNELBY static const u16 sBunnelbyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -25757,7 +28418,9 @@ static const u16 sDiggersbyTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BUNNELBY +#if P_FAMILY_FLETCHLING static const u16 sFletchlingTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -25845,7 +28508,9 @@ static const u16 sTalonflameTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FLETCHLING +#if P_FAMILY_SCATTERBUG static const u16 sScatterbugTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -25886,7 +28551,9 @@ static const u16 sVivillonTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SCATTERBUG +#if P_FAMILY_LITLEO static const u16 sLitleoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -25951,7 +28618,9 @@ static const u16 sPyroarTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LITLEO +#if P_FAMILY_FLABEBE static const u16 sFlabebeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -26004,6 +28673,28 @@ static const u16 sFloetteTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sFloetteEternalFlowerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + static const u16 sFlorgesTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -26031,7 +28722,9 @@ static const u16 sFlorgesTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FLABEBE +#if P_FAMILY_SKIDDO static const u16 sSkiddoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -26100,7 +28793,9 @@ static const u16 sGogoatTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SKIDDO +#if P_FAMILY_PANCHAM static const u16 sPanchamTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -26185,7 +28880,9 @@ static const u16 sPangoroTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PANCHAM +#if P_FAMILY_FURFROU static const u16 sFurfrouTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -26213,7 +28910,9 @@ static const u16 sFurfrouTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FURFROU +#if P_FAMILY_ESPURR static const u16 sEspurrTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -26289,6 +28988,47 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sMeowsticFemaleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE static const u16 sHonedgeTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -26375,7 +29115,9 @@ static const u16 sAegislashTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HONEDGE +#if P_FAMILY_SPRITZEE static const u16 sSpritzeeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -26437,7 +29179,9 @@ static const u16 sAromatisseTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPRITZEE +#if P_FAMILY_SWIRLIX static const u16 sSwirlixTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -26500,7 +29244,9 @@ static const u16 sSlurpuffTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SWIRLIX +#if P_FAMILY_INKAY static const u16 sInkayTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -26571,7 +29317,9 @@ static const u16 sMalamarTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_INKAY +#if P_FAMILY_BINACLE static const u16 sBinacleTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -26658,7 +29406,9 @@ static const u16 sBarbaracleTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BINACLE +#if P_FAMILY_SKRELP static const u16 sSkrelpTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, @@ -26720,7 +29470,9 @@ static const u16 sDragalgeTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SKRELP +#if P_FAMILY_CLAUNCHER static const u16 sClauncherTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -26783,7 +29535,9 @@ static const u16 sClawitzerTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CLAUNCHER +#if P_FAMILY_HELIOPTILE static const u16 sHelioptileTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -26853,7 +29607,9 @@ static const u16 sHelioliskTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HELIOPTILE +#if P_FAMILY_TYRUNT static const u16 sTyruntTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -26916,7 +29672,9 @@ static const u16 sTyrantrumTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TYRUNT +#if P_FAMILY_AMAURA static const u16 sAmauraTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -26999,40 +29757,9 @@ static const u16 sAurorusTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_AMAURA -static const u16 sSylveonTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_HAWLUCHA static const u16 sHawluchaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -27069,7 +29796,9 @@ static const u16 sHawluchaTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HAWLUCHA +#if P_FAMILY_DEDENNE static const u16 sDedenneTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -27100,7 +29829,9 @@ static const u16 sDedenneTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DEDENNE +#if P_FAMILY_CARBINK static const u16 sCarbinkTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -27131,7 +29862,9 @@ static const u16 sCarbinkTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CARBINK +#if P_FAMILY_GOOMY static const u16 sGoomyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -27230,6 +29963,18 @@ static const u16 sGoodraTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sSliggooHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sGoodraHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI static const u16 sKlefkiTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -27260,7 +30005,9 @@ static const u16 sKlefkiTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KLEFKI +#if P_FAMILY_PHANTUMP static const u16 sPhantumpTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CUT, @@ -27329,7 +30076,9 @@ static const u16 sTrevenantTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PHANTUMP +#if P_FAMILY_PUMPKABOO static const u16 sPumpkabooTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -27400,7 +30149,9 @@ static const u16 sGourgeistTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PUMPKABOO +#if P_FAMILY_BERGMITE static const u16 sBergmiteTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -27469,6 +30220,14 @@ static const u16 sAvaluggTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sAvaluggHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT static const u16 sNoibatTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -27539,7 +30298,9 @@ static const u16 sNoivernTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NOIBAT +#if P_FAMILY_XERNEAS static const u16 sXerneasTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_CUT, @@ -27572,7 +30333,9 @@ static const u16 sXerneasTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_XERNEAS +#if P_FAMILY_YVELTAL static const u16 sYveltalTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CUT, @@ -27604,7 +30367,9 @@ static const u16 sYveltalTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_YVELTAL +#if P_FAMILY_ZYGARDE static const u16 sZygardeTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DIG, @@ -27633,7 +30398,9 @@ static const u16 sZygardeTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ZYGARDE +#if P_FAMILY_DIANCIE static const u16 sDiancieTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -27665,7 +30432,9 @@ static const u16 sDiancieTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DIANCIE +#if P_FAMILY_HOOPA static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CALM_MIND, @@ -27708,6 +30477,40 @@ static const u16 sHoopaConfinedTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sHoopaUnboundTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION static const u16 sVolcanionTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CUT, @@ -27742,9 +30545,9 @@ static const u16 sVolcanionTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; -#endif +#endif //P_FAMILY_VOLCANION -#if P_GEN_7_POKEMON == TRUE +#if P_FAMILY_ROWLET static const u16 sRowletTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -27818,6 +30621,14 @@ static const u16 sDecidueyeTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_HISUIAN_FORMS +static const u16 sDecidueyeHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN static const u16 sLittenTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULK_UP, @@ -27903,7 +30714,9 @@ static const u16 sIncineroarTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LITTEN +#if P_FAMILY_POPPLIO static const u16 sPopplioTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -27986,7 +30799,9 @@ static const u16 sPrimarinaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_POPPLIO +#if P_FAMILY_PIKIPEK static const u16 sPikipekTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -28062,7 +30877,9 @@ static const u16 sToucannonTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PIKIPEK +#if P_FAMILY_YUNGOOS static const u16 sYungoosTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -28118,7 +30935,9 @@ static const u16 sGumshoosTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_YUNGOOS +#if P_FAMILY_GRUBBIN static const u16 sGrubbinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -28194,7 +31013,9 @@ static const u16 sVikavoltTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GRUBBIN +#if P_FAMILY_CRABRAWLER static const u16 sCrabrawlerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -28258,7 +31079,9 @@ static const u16 sCrabominableTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CRABRAWLER +#if P_FAMILY_ORICORIO static const u16 sOricorioTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -28284,7 +31107,9 @@ static const u16 sOricorioTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ORICORIO +#if P_FAMILY_CUTIEFLY static const u16 sCutieflyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -28341,7 +31166,9 @@ static const u16 sRibombeeTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CUTIEFLY +#if P_FAMILY_ROCKRUFF static const u16 sRockruffTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -28389,6 +31216,46 @@ static const u16 sLycanrocMiddayTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sLycanrocMidnightTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; + +static const u16 sLycanrocDuskTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI static const u16 sWishiwashiTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, @@ -28415,7 +31282,9 @@ static const u16 sWishiwashiTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_MAREANIE static const u16 sMareanieTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -28470,7 +31339,9 @@ static const u16 sToxapexTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MAREANIE +#if P_FAMILY_MUDBRAY static const u16 sMudbrayTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -28522,7 +31393,9 @@ static const u16 sMudsdaleTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MUDBRAY +#if P_FAMILY_DEWPIDER static const u16 sDewpiderTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -28574,7 +31447,9 @@ static const u16 sAraquanidTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DEWPIDER +#if P_FAMILY_FOMANTIS static const u16 sFomantisTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -28623,7 +31498,9 @@ static const u16 sLurantisTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FOMANTIS +#if P_FAMILY_MORELULL static const u16 sMorelullTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -28673,7 +31550,9 @@ static const u16 sShiinoticTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MORELULL +#if P_FAMILY_SALANDIT static const u16 sSalanditTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -28727,7 +31606,9 @@ static const u16 sSalazzleTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SALANDIT +#if P_FAMILY_STUFFUL static const u16 sStuffulTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -28791,7 +31672,9 @@ static const u16 sBewearTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_STUFFUL +#if P_FAMILY_BOUNSWEET static const u16 sBounsweetTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -28860,7 +31743,9 @@ static const u16 sTsareenaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BOUNSWEET +#if P_FAMILY_COMFEY static const u16 sComfeyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -28888,7 +31773,9 @@ static const u16 sComfeyTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_COMFEY +#if P_FAMILY_ORANGURU static const u16 sOranguruTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CALM_MIND, @@ -28921,7 +31808,9 @@ static const u16 sOranguruTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ORANGURU +#if P_FAMILY_PASSIMIAN static const u16 sPassimianTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -28957,7 +31846,9 @@ static const u16 sPassimianTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PASSIMIAN +#if P_FAMILY_WIMPOD static const u16 sWimpodTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -29015,7 +31906,9 @@ static const u16 sGolisopodTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WIMPOD +#if P_FAMILY_SANDYGAST static const u16 sSandygastTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -29066,7 +31959,9 @@ static const u16 sPalossandTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SANDYGAST +#if P_FAMILY_PYUKUMUKU static const u16 sPyukumukuTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -29087,7 +31982,9 @@ static const u16 sPyukumukuTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PYUKUMUKU +#if P_FAMILY_TYPE_NULL static const u16 sTypeNullTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_DOUBLE_TEAM, @@ -29151,7 +32048,9 @@ static const u16 sSilvallyTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TYPE_NULL +#if P_FAMILY_MINIOR static const u16 sMiniorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -29185,7 +32084,9 @@ static const u16 sMiniorTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MINIOR +#if P_FAMILY_KOMALA static const u16 sKomalaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -29211,7 +32112,9 @@ static const u16 sKomalaTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KOMALA +#if P_FAMILY_TURTONATOR static const u16 sTurtonatorTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULK_UP, @@ -29245,7 +32148,9 @@ static const u16 sTurtonatorTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TURTONATOR +#if P_FAMILY_TOGEDEMARU static const u16 sTogedemaruTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -29271,7 +32176,9 @@ static const u16 sTogedemaruTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TOGEDEMARU +#if P_FAMILY_MIMIKYU static const u16 sMimikyuTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULK_UP, @@ -29305,7 +32212,9 @@ static const u16 sMimikyuTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MIMIKYU +#if P_FAMILY_BRUXISH static const u16 sBruxishTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -29341,7 +32250,9 @@ static const u16 sBruxishTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BRUXISH +#if P_FAMILY_DRAMPA static const u16 sDrampaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -29383,7 +32294,9 @@ static const u16 sDrampaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DRAMPA +#if P_FAMILY_DHELMISE static const u16 sDhelmiseTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -29413,7 +32326,9 @@ static const u16 sDhelmiseTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DHELMISE +#if P_FAMILY_JANGMO_O static const u16 sJangmoOTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -29512,7 +32427,9 @@ static const u16 sKommoOTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_JANGMO_O +#if P_FAMILY_TAPU_KOKO static const u16 sTapuKokoTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, @@ -29546,7 +32463,9 @@ static const u16 sTapuKokoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TAPU_KOKO +#if P_FAMILY_TAPU_LELE static const u16 sTapuLeleTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -29576,7 +32495,9 @@ static const u16 sTapuLeleTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TAPU_LELE +#if P_FAMILY_TAPU_BULU static const u16 sTapuBuluTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -29608,7 +32529,9 @@ static const u16 sTapuBuluTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TAPU_BULU +#if P_FAMILY_TAPU_FINI static const u16 sTapuFiniTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_CALM_MIND, @@ -29640,7 +32563,9 @@ static const u16 sTapuFiniTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TAPU_FINI +#if P_FAMILY_COSMOG static const u16 sCosmogTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -29721,7 +32646,9 @@ static const u16 sLunalaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_COSMOG +#if P_FAMILY_NIHILEGO static const u16 sNihilegoTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -29746,7 +32673,9 @@ static const u16 sNihilegoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NIHILEGO +#if P_FAMILY_BUZZWOLE static const u16 sBuzzwoleTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -29775,7 +32704,9 @@ static const u16 sBuzzwoleTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BUZZWOLE +#if P_FAMILY_PHEROMOSA static const u16 sPheromosaTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -29801,7 +32732,9 @@ static const u16 sPheromosaTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PHEROMOSA +#if P_FAMILY_XURKITREE static const u16 sXurkitreeTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -29829,7 +32762,9 @@ static const u16 sXurkitreeTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_XURKITREE +#if P_FAMILY_CELESTEELA static const u16 sCelesteelaTeachableLearnset[] = { MOVE_DOUBLE_TEAM, MOVE_EARTHQUAKE, @@ -29856,7 +32791,9 @@ static const u16 sCelesteelaTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CELESTEELA +#if P_FAMILY_KARTANA static const u16 sKartanaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -29878,7 +32815,9 @@ static const u16 sKartanaTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KARTANA +#if P_FAMILY_GUZZLORD static const u16 sGuzzlordTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DOUBLE_TEAM, @@ -29905,7 +32844,9 @@ static const u16 sGuzzlordTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GUZZLORD +#if P_FAMILY_NECROZMA static const u16 sNecrozmaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -29936,7 +32877,9 @@ static const u16 sNecrozmaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NECROZMA +#if P_FAMILY_MAGEARNA static const u16 sMagearnaTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_CALM_MIND, @@ -29961,7 +32904,9 @@ static const u16 sMagearnaTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MAGEARNA +#if P_FAMILY_MARSHADOW static const u16 sMarshadowTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -29991,7 +32936,9 @@ static const u16 sMarshadowTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MARSHADOW +#if P_FAMILY_POIPOLE static const u16 sPoipoleTeachableLearnset[] = { MOVE_FACADE, MOVE_FRUSTRATION, @@ -30035,7 +32982,9 @@ static const u16 sNaganadelTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_POIPOLE +#if P_FAMILY_STAKATAKA static const u16 sStakatakaTeachableLearnset[] = { MOVE_EARTHQUAKE, MOVE_FACADE, @@ -30058,7 +33007,9 @@ static const u16 sStakatakaTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_STAKATAKA +#if P_FAMILY_BLACEPHALON static const u16 sBlacephalonTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -30087,7 +33038,9 @@ static const u16 sBlacephalonTeachableLearnset[] = { MOVE_SWAGGER, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BLACEPHALON +#if P_FAMILY_ZERAORA static const u16 sZeraoraTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -30116,7 +33069,9 @@ static const u16 sZeraoraTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ZERAORA +#if P_FAMILY_MELTAN static const u16 sMeltanTeachableLearnset[] = { MOVE_HEADBUTT, MOVE_REST, @@ -30182,9 +33137,9 @@ static const u16 sMelmetalTeachableLearnset[] = { MOVE_HIDDEN_POWER, MOVE_UNAVAILABLE, }; -#endif +#endif //P_FAMILY_MELTAN -#if P_GEN_8_POKEMON == TRUE +#if P_FAMILY_GROOKEY static const u16 sGrookeyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -30251,7 +33206,9 @@ static const u16 sRillaboomTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GROOKEY +#if P_FAMILY_SCORBUNNY static const u16 sScorbunnyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -30319,7 +33276,9 @@ static const u16 sCinderaceTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SCORBUNNY +#if P_FAMILY_SOBBLE static const u16 sSobbleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, @@ -30388,7 +33347,9 @@ static const u16 sInteleonTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SOBBLE +#if P_FAMILY_SKWOVET static const u16 sSkwovetTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -30429,7 +33390,9 @@ static const u16 sGreedentTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SKWOVET +#if P_FAMILY_ROOKIDEE static const u16 sRookideeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -30487,7 +33450,9 @@ static const u16 sCorviknightTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ROOKIDEE +#if P_FAMILY_BLIPBUG static const u16 sBlipbugTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -30533,7 +33498,9 @@ static const u16 sOrbeetleTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BLIPBUG +#if P_FAMILY_NICKIT static const u16 sNickitTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -30569,7 +33536,9 @@ static const u16 sThievulTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NICKIT +#if P_FAMILY_GOSSIFLEUR static const u16 sGossifleurTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BULLET_SEED, @@ -30604,7 +33573,9 @@ static const u16 sEldegossTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GOSSIFLEUR +#if P_FAMILY_WOOLOO static const u16 sWoolooTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -30640,7 +33611,9 @@ static const u16 sDubwoolTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WOOLOO +#if P_FAMILY_CHEWTLE static const u16 sChewtleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIVE, @@ -30685,7 +33658,9 @@ static const u16 sDrednawTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHEWTLE +#if P_FAMILY_YAMPER static const u16 sYamperTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -30724,7 +33699,9 @@ static const u16 sBoltundTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_YAMPER +#if P_FAMILY_ROLYCOLY static const u16 sRolycolyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -30790,7 +33767,9 @@ static const u16 sCoalossalTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ROLYCOLY +#if P_FAMILY_APPLIN static const u16 sApplinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DEFENSE_CURL, @@ -30838,6 +33817,14 @@ static const u16 sAppletunTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#if P_GEN_9_CROSS_EVOS +static const u16 sDipplinTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA static const u16 sSilicobraTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, @@ -30871,7 +33858,9 @@ static const u16 sSandacondaTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SILICOBRA +#if P_FAMILY_CRAMORANT static const u16 sCramorantTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -30894,7 +33883,9 @@ static const u16 sCramorantTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CRAMORANT +#if P_FAMILY_ARROKUDA static const u16 sArrokudaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -30932,7 +33923,9 @@ static const u16 sBarraskewdaTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ARROKUDA +#if P_FAMILY_TOXEL static const u16 sToxelTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -30971,6 +33964,34 @@ static const u16 sToxtricityAmpedTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sToxtricityLowKeyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE static const u16 sSizzlipedeTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -31003,7 +34024,9 @@ static const u16 sCentiskorchTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SIZZLIPEDE +#if P_FAMILY_CLOBBOPUS static const u16 sClobbopusTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -31049,7 +34072,9 @@ static const u16 sGrapploctTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CLOBBOPUS +#if P_FAMILY_SINISTEA static const u16 sSinisteaTeachableLearnset[] = { MOVE_FACADE, MOVE_GIGA_DRAIN, @@ -31082,7 +34107,9 @@ static const u16 sPolteageistTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SINISTEA +#if P_FAMILY_HATENNA static const u16 sHatennaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -31142,7 +34169,9 @@ static const u16 sHattereneTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_HATENNA +#if P_FAMILY_IMPIDIMP static const u16 sImpidimpTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -31213,186 +34242,9 @@ static const u16 sGrimmsnarlTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IMPIDIMP -static const u16 sObstagoonTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_DIG, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sPerrserkerTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DIG, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sCursolaTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_GIGA_DRAIN, - MOVE_HAIL, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SANDSTORM, - MOVE_SHADOW_BALL, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - -static const u16 sSirfetchdTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_FACADE, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STEEL_WING, - MOVE_SUNNY_DAY, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sMrRimeTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_HAIL, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_METRONOME, - MOVE_MIMIC, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sRunerigusTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SANDSTORM, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_ENDURE, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_MILCERY static const u16 sMilceryTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -31424,7 +34276,9 @@ static const u16 sAlcremieTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MILCERY +#if P_FAMILY_FALINKS static const u16 sFalinksTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -31443,7 +34297,9 @@ static const u16 sFalinksTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FALINKS +#if P_FAMILY_PINCURCHIN static const u16 sPincurchinTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -31460,7 +34316,9 @@ static const u16 sPincurchinTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PINCURCHIN +#if P_FAMILY_SNOM static const u16 sSnomTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, @@ -31495,7 +34353,9 @@ static const u16 sFrosmothTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SNOM +#if P_FAMILY_STONJOURNER static const u16 sStonjournerTeachableLearnset[] = { MOVE_ATTRACT, MOVE_EARTHQUAKE, @@ -31515,7 +34375,9 @@ static const u16 sStonjournerTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_STONJOURNER +#if P_FAMILY_EISCUE static const u16 sEiscueTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, @@ -31537,7 +34399,9 @@ static const u16 sEiscueTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_EISCUE +#if P_FAMILY_INDEEDEE static const u16 sIndeedeeMaleTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, @@ -31556,6 +34420,29 @@ static const u16 sIndeedeeMaleTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sIndeedeeFemaleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO static const u16 sMorpekoTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -31578,7 +34465,9 @@ static const u16 sMorpekoTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MORPEKO +#if P_FAMILY_CUFANT static const u16 sCufantTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -31626,7 +34515,9 @@ static const u16 sCopperajahTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CUFANT +#if P_FAMILY_DRACOZOLT static const u16 sDracozoltTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_DRAGON_CLAW, @@ -31656,7 +34547,9 @@ static const u16 sDracozoltTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DRACOZOLT +#if P_FAMILY_ARCTOZOLT static const u16 sArctozoltTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_FACADE, @@ -31685,7 +34578,9 @@ static const u16 sArctozoltTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ARCTOZOLT +#if P_FAMILY_DRACOVISH static const u16 sDracovishTeachableLearnset[] = { MOVE_DIVE, MOVE_EARTHQUAKE, @@ -31706,7 +34601,9 @@ static const u16 sDracovishTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DRACOVISH +#if P_FAMILY_ARCTOVISH static const u16 sArctovishTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DIVE, @@ -31729,7 +34626,9 @@ static const u16 sArctovishTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ARCTOVISH +#if P_FAMILY_DURALUDON static const u16 sDuraludonTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -31755,7 +34654,9 @@ static const u16 sDuraludonTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DURALUDON +#if P_FAMILY_DREEPY static const u16 sDreepyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DOUBLE_TEAM, @@ -31825,7 +34726,9 @@ static const u16 sDragapultTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DREEPY +#if P_FAMILY_ZACIAN static const u16 sZacianTeachableLearnset[] = { MOVE_BRICK_BREAK, MOVE_DIG, @@ -31842,7 +34745,9 @@ static const u16 sZacianTeachableLearnset[] = { MOVE_SWORDS_DANCE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ZACIAN +#if P_FAMILY_ZAMAZENTA static const u16 sZamazentaTeachableLearnset[] = { MOVE_DIG, MOVE_FACADE, @@ -31861,7 +34766,9 @@ static const u16 sZamazentaTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ZAMAZENTA +#if P_FAMILY_ETERNATUS static const u16 sEternatusTeachableLearnset[] = { MOVE_FACADE, MOVE_FLAMETHROWER, @@ -31881,7 +34788,9 @@ static const u16 sEternatusTeachableLearnset[] = { MOVE_SUBSTITUTE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ETERNATUS +#if P_FAMILY_KUBFU static const u16 sKubfuTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -31938,1726 +34847,6 @@ static const u16 sUrshifuSingleStrikeStyleTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sZarudeTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_BULLET_SEED, - MOVE_DIG, - MOVE_FACADE, - MOVE_GIGA_DRAIN, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sRegielekiTeachableLearnset[] = { - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_SHOCK_WAVE, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sRegidragoTeachableLearnset[] = { - MOVE_DRAGON_CLAW, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_REFLECT, - MOVE_REST, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - -static const u16 sGlastrierTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_FACADE, - MOVE_HAIL, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_TAUNT, - MOVE_TORMENT, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sSpectrierTeachableLearnset[] = { - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_TAUNT, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sCalyrexTeachableLearnset[] = { - MOVE_BULLET_SEED, - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_GIGA_DRAIN, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REFLECT, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SKILL_SWAP, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_ENDURE, - MOVE_METRONOME, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sWyrdeerTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sKleavorTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sUrsalunaTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sUrsalunaBloodmoonTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sBasculegionTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sSneaslerTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sOverqwilTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sEnamorusTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; -#endif - -static const u16 sRattataAlolanTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_CUT, - MOVE_DIG, - MOVE_FACADE, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_TAUNT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sRaticateAlolanTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_BULK_UP, - MOVE_CUT, - MOVE_DIG, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_TAUNT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sRaichuAlolanTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_FACADE, - MOVE_FLASH, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REFLECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STRENGTH, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sSandshrewAlolanTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CUT, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STRENGTH, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sSandslashAlolanTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CUT, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STRENGTH, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sVulpixAlolanTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_DIG, - MOVE_FACADE, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REFLECT, - MOVE_REST, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sNinetalesAlolanTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REFLECT, - MOVE_REST, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sDiglettAlolanTeachableLearnset[] = { - MOVE_CUT, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_SLUDGE_BOMB, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sDugtrioAlolanTeachableLearnset[] = { - MOVE_CUT, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_SLUDGE_BOMB, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sMeowthAlolanTeachableLearnset[] = { - MOVE_CUT, - MOVE_FACADE, - MOVE_FLASH, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_TAUNT, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sPersianAlolanTeachableLearnset[] = { - MOVE_CUT, - MOVE_FACADE, - MOVE_FLASH, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_TAUNT, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sGeodudeAlolanTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_EARTHQUAKE, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STRENGTH, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sGravelerAlolanTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STRENGTH, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sGolemAlolanTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STRENGTH, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sGrimerAlolanTeachableLearnset[] = { - MOVE_DIG, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_PROTECT, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_STRENGTH, - MOVE_TAUNT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sMukAlolanTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_STRENGTH, - MOVE_TAUNT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sExeggutorAlolanTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FLAMETHROWER, - MOVE_FLASH, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REFLECT, - MOVE_REST, - MOVE_SOLAR_BEAM, - MOVE_SLUDGE_BOMB, - MOVE_STRENGTH, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sMarowakAlolanTeachableLearnset[] = { - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_SHADOW_BALL, - MOVE_STRENGTH, - MOVE_THUNDERBOLT, - MOVE_THUNDER, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sMeowthGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DIG, - MOVE_FACADE, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sPonytaGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REST, - MOVE_BODY_SLAM, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sRapidashGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REST, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sSlowpokeGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_DIVE, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HAIL, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sSlowbroGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_DIVE, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HAIL, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SLUDGE_BOMB, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sFarfetchdGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_FACADE, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STEEL_WING, - MOVE_SUNNY_DAY, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_FURY_CUTTER, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWORDS_DANCE, - MOVE_UNAVAILABLE, -}; - -static const u16 sWeezingGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HYPER_BEAM, - MOVE_OVERHEAT, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SLUDGE_BOMB, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_EXPLOSION, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - -static const u16 sMrMimeGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_HAIL, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_METRONOME, - MOVE_MIMIC, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sArticunoGalarianTeachableLearnset[] = { - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_FLY, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REFLECT, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_STEEL_WING, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sZapdosGalarianTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_FACADE, - MOVE_FLY, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_SMASH, - MOVE_STEEL_WING, - MOVE_TAUNT, - MOVE_COUNTER, - MOVE_ENDURE, - MOVE_MEGA_KICK, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sMoltresGalarianTeachableLearnset[] = { - MOVE_FACADE, - MOVE_FLY, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SHADOW_BALL, - MOVE_STEEL_WING, - MOVE_TAUNT, - MOVE_ENDURE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - -static const u16 sSlowkingGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_DIVE, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HAIL, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SLUDGE_BOMB, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_ICE_PUNCH, - MOVE_ICY_WIND, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sCorsolaGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_CALM_MIND, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_GIGA_DRAIN, - MOVE_HAIL, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SANDSTORM, - MOVE_SHADOW_BALL, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_WATER_PULSE, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - -static const u16 sZigzagoonGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DIG, - MOVE_FACADE, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sLinooneGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_DIG, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_SHADOW_BALL, - MOVE_SUNNY_DAY, - MOVE_SURF, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_BODY_SLAM, - MOVE_COUNTER, - MOVE_DOUBLE_EDGE, - MOVE_ENDURE, - MOVE_ICY_WIND, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -#if P_GEN_5_POKEMON == TRUE -static const u16 sDarumakaGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_DIG, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_FOCUS_PUNCH, - MOVE_ICE_BEAM, - MOVE_OVERHEAT, - MOVE_PROTECT, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - -static const u16 sDarmanitanGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BLIZZARD, - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FIRE_BLAST, - MOVE_FLAMETHROWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_OVERHEAT, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_BODY_SLAM, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - -static const u16 sYamaskGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SANDSTORM, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_THIEF, - MOVE_ENDURE, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_UNAVAILABLE, -}; - -static const u16 sStunfiskGalarianTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DIG, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_PROTECT, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_ROCK_TOMB, - MOVE_SANDSTORM, - MOVE_SLUDGE_BOMB, - MOVE_SURF, - MOVE_COUNTER, - MOVE_ENDURE, - MOVE_MUD_SLAP, - MOVE_ROCK_SLIDE, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; -#endif - -static const u16 sGrowlitheHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sArcanineHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sVoltorbHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sElectrodeHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sTyphlosionHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sQwilfishHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sSneaselHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -#if P_GEN_5_POKEMON == TRUE -static const u16 sSamurottHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sLilligantHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sZoruaHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sZoroarkHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sBraviaryHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; -#endif - -#if P_GEN_6_POKEMON == TRUE -static const u16 sSliggooHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sGoodraHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - -static const u16 sAvaluggHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; -#endif - -#if P_GEN_7_POKEMON == TRUE -static const u16 sDecidueyeHisuianTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; -#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, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_UNAVAILABLE, -}; - -static const u16 sDeoxysDefenseTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_UNAVAILABLE, -}; - -static const u16 sDeoxysSpeedTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_ICE_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_SMASH, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SOLAR_BEAM, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_WATER_PULSE, - MOVE_UNAVAILABLE, -}; - -#if P_GEN_4_POKEMON == TRUE -static const u16 sBurmySandyCloakTeachableLearnset[] = { - MOVE_HIDDEN_POWER, - MOVE_PROTECT, - MOVE_SNORE, - MOVE_UNAVAILABLE, -}; - -static const u16 sBurmyTrashCloakTeachableLearnset[] = { - MOVE_HIDDEN_POWER, - MOVE_PROTECT, - MOVE_SNORE, - MOVE_UNAVAILABLE, -}; - -static const u16 sWormadamSandyCloakTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROCK_TOMB, - MOVE_SAFEGUARD, - MOVE_SANDSTORM, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_MUD_SLAP, - MOVE_PSYCH_UP, - MOVE_ROLLOUT, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - -static const u16 sWormadamTrashCloakTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SKILL_SWAP, - MOVE_SUNNY_DAY, - MOVE_THIEF, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_ENDURE, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_UNAVAILABLE, -}; - -static const u16 sGiratinaOriginTeachableLearnset[] = { - MOVE_AERIAL_ACE, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DOUBLE_TEAM, - MOVE_DRAGON_CLAW, - MOVE_EARTHQUAKE, - MOVE_FACADE, - MOVE_FLY, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_SMASH, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_STEEL_WING, - MOVE_STRENGTH, - MOVE_SUNNY_DAY, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sShayminSkyTeachableLearnset[] = { - MOVE_BULLET_SEED, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; -#endif - -#if P_GEN_6_POKEMON == TRUE -static const u16 sFloetteEternalFlowerTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_GIGA_DRAIN, - MOVE_HIDDEN_POWER, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SOLAR_BEAM, - MOVE_SUNNY_DAY, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sHoopaUnboundTeachableLearnset[] = { - MOVE_BRICK_BREAK, - MOVE_CALM_MIND, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FOCUS_PUNCH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_TAUNT, - MOVE_THIEF, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sMeowsticFemaleTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_CUT, - MOVE_DIG, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FLASH, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_HYPER_BEAM, - MOVE_IRON_TAIL, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_RAIN_DANCE, - MOVE_REFLECT, - MOVE_REST, - MOVE_RETURN, - MOVE_SAFEGUARD, - MOVE_SECRET_POWER, - MOVE_SHADOW_BALL, - MOVE_SHOCK_WAVE, - MOVE_SKILL_SWAP, - MOVE_SNATCH, - MOVE_SUNNY_DAY, - MOVE_THUNDERBOLT, - MOVE_TORMENT, - MOVE_TOXIC, - MOVE_DREAM_EATER, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; -#endif - -#if P_GEN_7_POKEMON == TRUE -static const u16 sLycanrocMidnightTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_TOMB, - MOVE_TAUNT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; - -static const u16 sLycanrocDuskTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_BRICK_BREAK, - MOVE_BULK_UP, - MOVE_DOUBLE_TEAM, - MOVE_FACADE, - MOVE_FRUSTRATION, - MOVE_HIDDEN_POWER, - MOVE_IRON_TAIL, - MOVE_PROTECT, - MOVE_REST, - MOVE_RETURN, - MOVE_ROAR, - MOVE_ROCK_TOMB, - MOVE_TAUNT, - MOVE_TOXIC, - MOVE_UNAVAILABLE, -}; -#endif - -#if P_GEN_8_POKEMON == TRUE -static const u16 sToxtricityLowKeyTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_FACADE, - MOVE_HYPER_BEAM, - MOVE_PROTECT, - MOVE_REST, - MOVE_SHOCK_WAVE, - MOVE_SLUDGE_BOMB, - MOVE_TAUNT, - MOVE_THUNDER, - MOVE_THUNDERBOLT, - MOVE_TOXIC, - MOVE_ENDURE, - MOVE_FIRE_PUNCH, - MOVE_MEGA_KICK, - MOVE_MEGA_PUNCH, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWAGGER, - MOVE_SWIFT, - MOVE_THUNDER_PUNCH, - MOVE_THUNDER_WAVE, - MOVE_UNAVAILABLE, -}; - -static const u16 sIndeedeeFemaleTeachableLearnset[] = { - MOVE_ATTRACT, - MOVE_CALM_MIND, - MOVE_FACADE, - MOVE_LIGHT_SCREEN, - MOVE_PROTECT, - MOVE_PSYCHIC, - MOVE_REFLECT, - MOVE_REST, - MOVE_SAFEGUARD, - MOVE_SHADOW_BALL, - MOVE_ENDURE, - MOVE_METRONOME, - MOVE_PSYCH_UP, - MOVE_SLEEP_TALK, - MOVE_SNORE, - MOVE_SUBSTITUTE, - MOVE_SWIFT, - MOVE_UNAVAILABLE, -}; - static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, @@ -33690,7 +34879,151 @@ static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { MOVE_THUNDER_PUNCH, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KUBFU +#if P_FAMILY_ZARUDE +static const u16 sZarudeTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_DIG, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +static const u16 sRegielekiTeachableLearnset[] = { + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHOCK_WAVE, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +static const u16 sRegidragoTeachableLearnset[] = { + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +static const u16 sGlastrierTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +static const u16 sSpectrierTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_TAUNT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX +static const u16 sCalyrexTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +#if P_FUSION_FORMS static const u16 sCalyrexIceRiderTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BULLET_SEED, @@ -33751,9 +35084,16 @@ static const u16 sCalyrexShadowRiderTeachableLearnset[] = { MOVE_SWIFT, MOVE_UNAVAILABLE, }; -#endif +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX -#if P_GEN_9_POKEMON == TRUE +#if P_FAMILY_ENAMORUS +static const u16 sEnamorusTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO static const u16 sSprigatitoTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AGILITY, @@ -33888,7 +35228,9 @@ static const u16 sMeowscaradaTeachableLearnset[] = { MOVE_U_TURN, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SPRIGATITO +#if P_FAMILY_FUECOCO static const u16 sFuecocoTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_CRUNCH, @@ -34010,7 +35352,9 @@ static const u16 sSkeledirgeTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FUECOCO +#if P_FAMILY_QUAXLY static const u16 sQuaxlyTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -34115,7 +35459,9 @@ static const u16 sQuaquavalTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_QUAXLY +#if P_FAMILY_LECHONK static const u16 sLechonkTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_BULLDOZE, @@ -34217,7 +35563,9 @@ static const u16 sOinkologneFemaleTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_LECHONK +#if P_FAMILY_TAROUNTULA static const u16 sTarountulaTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_BUG_BUZZ, @@ -34287,7 +35635,9 @@ static const u16 sSpidopsTeachableLearnset[] = { MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TAROUNTULA +#if P_FAMILY_NYMBLE static const u16 sNymbleTeachableLearnset[] = { MOVE_AGILITY, MOVE_BUG_BUZZ, @@ -34344,7 +35694,9 @@ static const u16 sLokixTeachableLearnset[] = { MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NYMBLE +#if P_FAMILY_PAWMI static const u16 sPawmiTeachableLearnset[] = { MOVE_AGILITY, MOVE_BATON_PASS, @@ -34471,7 +35823,9 @@ static const u16 sPawmotTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_PAWMI +#if P_FAMILY_TANDEMAUS static const u16 sTandemausTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_AGILITY, @@ -34552,7 +35906,9 @@ static const u16 sMausholdTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TANDEMAUS +#if P_FAMILY_FIDOUGH static const u16 sFidoughTeachableLearnset[] = { MOVE_AGILITY, MOVE_BATON_PASS, @@ -34623,7 +35979,9 @@ static const u16 sDachsbunTeachableLearnset[] = { MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FIDOUGH +#if P_FAMILY_SMOLIV static const u16 sSmolivTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_CHARM, @@ -34711,7 +36069,9 @@ static const u16 sArbolivaTeachableLearnset[] = { MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SMOLIV +#if P_FAMILY_SQUAWKABILLY static const u16 sSquawkabillyTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_AIR_CUTTER, @@ -34744,7 +36104,9 @@ static const u16 sSquawkabillyTeachableLearnset[] = { MOVE_U_TURN, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SQUAWKABILLY +#if P_FAMILY_NACLI static const u16 sNacliTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_BULLDOZE, @@ -34854,7 +36216,9 @@ static const u16 sGarganaclTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_NACLI +#if P_FAMILY_CHARCADET static const u16 sCharcadetTeachableLearnset[] = { MOVE_CONFUSE_RAY, MOVE_ENDURE, @@ -34966,7 +36330,9 @@ static const u16 sCeruledgeTeachableLearnset[] = { MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHARCADET +#if P_FAMILY_TADBULB static const u16 sTadbulbTeachableLearnset[] = { MOVE_ACID_SPRAY, MOVE_CHARGE_BEAM, @@ -35028,7 +36394,9 @@ static const u16 sBelliboltTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TADBULB +#if P_FAMILY_WATTREL static const u16 sWattrelTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -35095,7 +36463,9 @@ static const u16 sKilowattrelTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WATTREL +#if P_FAMILY_MASCHIFF static const u16 sMaschiffTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_CHARM, @@ -35164,7 +36534,9 @@ static const u16 sMabosstiffTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MASCHIFF +#if P_FAMILY_SHROODLE static const u16 sShroodleTeachableLearnset[] = { MOVE_ACID_SPRAY, MOVE_ACROBATICS, @@ -35243,7 +36615,9 @@ static const u16 sGrafaiaiTeachableLearnset[] = { MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SHROODLE +#if P_FAMILY_BRAMBLIN static const u16 sBramblinTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_CONFUSE_RAY, @@ -35303,7 +36677,9 @@ static const u16 sBrambleghastTeachableLearnset[] = { MOVE_TRAILBLAZE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BRAMBLIN +#if P_FAMILY_TOEDSCOOL static const u16 sToedscoolTeachableLearnset[] = { MOVE_ACID_SPRAY, MOVE_BULLET_SEED, @@ -35385,7 +36761,9 @@ static const u16 sToedscruelTeachableLearnset[] = { MOVE_VENOSHOCK, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TOEDSCOOL +#if P_FAMILY_KLAWF static const u16 sKlawfTeachableLearnset[] = { MOVE_BODY_SLAM, MOVE_BRICK_BREAK, @@ -35427,7 +36805,9 @@ static const u16 sKlawfTeachableLearnset[] = { MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KLAWF +#if P_FAMILY_CAPSAKID static const u16 sCapsakidTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_CRUNCH, @@ -35493,7 +36873,9 @@ static const u16 sScovillainTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CAPSAKID +#if P_FAMILY_RELLOR static const u16 sRellorTeachableLearnset[] = { MOVE_BUG_BUZZ, MOVE_DIG, @@ -35570,7 +36952,9 @@ static const u16 sRabscaTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_RELLOR +#if P_FAMILY_FLITTLE static const u16 sFlittleTeachableLearnset[] = { MOVE_AGILITY, MOVE_BATON_PASS, @@ -35661,7 +37045,9 @@ static const u16 sEspathraTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FLITTLE +#if P_FAMILY_TINKATINK static const u16 sTinkatinkTeachableLearnset[] = { MOVE_DRAINING_KISS, MOVE_ENCORE, @@ -35764,7 +37150,9 @@ static const u16 sTinkatonTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TINKATINK +#if P_FAMILY_WIGLETT static const u16 sWiglettTeachableLearnset[] = { MOVE_AGILITY, MOVE_BLIZZARD, @@ -35828,7 +37216,9 @@ static const u16 sWugtrioTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WIGLETT +#if P_FAMILY_BOMBIRDIER static const u16 sBombirdierTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -35870,7 +37260,9 @@ static const u16 sBombirdierTeachableLearnset[] = { MOVE_U_TURN, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BOMBIRDIER +#if P_FAMILY_FINIZEN static const u16 sFinizenTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AGILITY, @@ -35950,7 +37342,9 @@ static const u16 sPalafinTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FINIZEN +#if P_FAMILY_VAROOM static const u16 sVaroomTeachableLearnset[] = { MOVE_ACID_SPRAY, MOVE_BODY_SLAM, @@ -36015,7 +37409,9 @@ static const u16 sRevavroomTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VAROOM +#if P_FAMILY_CYCLIZAR static const u16 sCyclizarTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -36055,7 +37451,9 @@ static const u16 sCyclizarTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CYCLIZAR +#if P_FAMILY_ORTHWORM static const u16 sOrthwormTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -36090,7 +37488,9 @@ static const u16 sOrthwormTeachableLearnset[] = { MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ORTHWORM +#if P_FAMILY_GLIMMET static const u16 sGlimmetTeachableLearnset[] = { MOVE_ACID_SPRAY, MOVE_CONFUSE_RAY, @@ -36160,7 +37560,9 @@ static const u16 sGlimmoraTeachableLearnset[] = { MOVE_VENOSHOCK, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GLIMMET +#if P_FAMILY_GREAVARD static const u16 sGreavardTeachableLearnset[] = { MOVE_BULLDOZE, MOVE_CHARM, @@ -36238,7 +37640,9 @@ static const u16 sHoundstoneTeachableLearnset[] = { MOVE_WILL_O_WISP, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GREAVARD +#if P_FAMILY_FLAMIGO static const u16 sFlamigoTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -36275,7 +37679,9 @@ static const u16 sFlamigoTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FLAMIGO +#if P_FAMILY_CETODDLE static const u16 sCetoddleTeachableLearnset[] = { MOVE_AMNESIA, MOVE_AVALANCHE, @@ -36347,7 +37753,9 @@ static const u16 sCetitanTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CETODDLE +#if P_FAMILY_VELUZA static const u16 sVeluzaTeachableLearnset[] = { MOVE_AGILITY, MOVE_BLIZZARD, @@ -36381,7 +37789,9 @@ static const u16 sVeluzaTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_VELUZA +#if P_FAMILY_DONDOZO static const u16 sDondozoTeachableLearnset[] = { MOVE_AVALANCHE, MOVE_BODY_PRESS, @@ -36415,7 +37825,9 @@ static const u16 sDondozoTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_DONDOZO +#if P_FAMILY_TATSUGIRI static const u16 sTatsugiriTeachableLearnset[] = { MOVE_BATON_PASS, MOVE_CHILLING_WATER, @@ -36443,281 +37855,9 @@ static const u16 sTatsugiriTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TATSUGIRI -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, -}; - +#if P_FAMILY_GREAT_TUSK static const u16 sGreatTuskTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -36763,7 +37903,9 @@ static const u16 sGreatTuskTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GREAT_TUSK +#if P_FAMILY_SCREAM_TAIL static const u16 sScreamTailTeachableLearnset[] = { MOVE_AMNESIA, MOVE_BATON_PASS, @@ -36830,7 +37972,9 @@ static const u16 sScreamTailTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SCREAM_TAIL +#if P_FAMILY_BRUTE_BONNET static const u16 sBruteBonnetTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -36870,7 +38014,9 @@ static const u16 sBruteBonnetTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_BRUTE_BONNET +#if P_FAMILY_FLUTTER_MANE static const u16 sFlutterManeTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_CHARGE_BEAM, @@ -36913,7 +38059,9 @@ static const u16 sFlutterManeTeachableLearnset[] = { MOVE_TRICK_ROOM, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FLUTTER_MANE +#if P_FAMILY_SLITHER_WING static const u16 sSlitherWingTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -36955,7 +38103,9 @@ static const u16 sSlitherWingTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SLITHER_WING +#if P_FAMILY_SANDY_SHOCKS static const u16 sSandyShocksTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -36996,7 +38146,9 @@ static const u16 sSandyShocksTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_SANDY_SHOCKS +#if P_FAMILY_IRON_TREADS static const u16 sIronTreadsTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -37037,7 +38189,9 @@ static const u16 sIronTreadsTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_TREADS +#if P_FAMILY_IRON_BUNDLE static const u16 sIronBundleTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AGILITY, @@ -37075,7 +38229,9 @@ static const u16 sIronBundleTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_BUNDLE +#if P_FAMILY_IRON_HANDS static const u16 sIronHandsTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -37119,7 +38275,9 @@ static const u16 sIronHandsTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_HANDS +#if P_FAMILY_IRON_JUGULIS static const u16 sIronJugulisTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AIR_CUTTER, @@ -37165,7 +38323,9 @@ static const u16 sIronJugulisTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_JUGULIS +#if P_FAMILY_IRON_MOTH static const u16 sIronMothTeachableLearnset[] = { MOVE_ACID_SPRAY, MOVE_ACROBATICS, @@ -37209,7 +38369,9 @@ static const u16 sIronMothTeachableLearnset[] = { MOVE_VENOSHOCK, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_MOTH +#if P_FAMILY_IRON_THORNS static const u16 sIronThornsTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BODY_PRESS, @@ -37274,7 +38436,9 @@ static const u16 sIronThornsTeachableLearnset[] = { MOVE_WILD_CHARGE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_THORNS +#if P_FAMILY_FRIGIBAX static const u16 sFrigibaxTeachableLearnset[] = { MOVE_AVALANCHE, MOVE_BLIZZARD, @@ -37379,7 +38543,9 @@ static const u16 sBaxcaliburTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FRIGIBAX +#if P_FAMILY_GIMMIGHOUL static const u16 sGimmighoulTeachableLearnset[] = { MOVE_CONFUSE_RAY, MOVE_ENDURE, @@ -37440,7 +38606,9 @@ static const u16 sGholdengoTeachableLearnset[] = { MOVE_TRICK, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_GIMMIGHOUL +#if P_FAMILY_WO_CHIEN static const u16 sWoChienTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -37480,7 +38648,9 @@ static const u16 sWoChienTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WO_CHIEN +#if P_FAMILY_CHIEN_PAO static const u16 sChienPaoTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -37513,7 +38683,9 @@ static const u16 sChienPaoTeachableLearnset[] = { MOVE_TERA_BLAST, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHIEN_PAO +#if P_FAMILY_TING_LU static const u16 sTingLuTeachableLearnset[] = { MOVE_BODY_PRESS, MOVE_BODY_SLAM, @@ -37550,7 +38722,9 @@ static const u16 sTingLuTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_TING_LU +#if P_FAMILY_CHI_YU static const u16 sChiYuTeachableLearnset[] = { MOVE_CONFUSE_RAY, MOVE_CRUNCH, @@ -37585,7 +38759,9 @@ static const u16 sChiYuTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_CHI_YU +#if P_FAMILY_ROARING_MOON static const u16 sRoaringMoonTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AERIAL_ACE, @@ -37639,7 +38815,9 @@ static const u16 sRoaringMoonTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_ROARING_MOON +#if P_FAMILY_IRON_VALIANT static const u16 sIronValiantTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_AGILITY, @@ -37702,7 +38880,9 @@ static const u16 sIronValiantTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_VALIANT +#if P_FAMILY_KORAIDON static const u16 sKoraidonTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AGILITY, @@ -37762,7 +38942,9 @@ static const u16 sKoraidonTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_KORAIDON +#if P_FAMILY_MIRAIDON static const u16 sMiraidonTeachableLearnset[] = { MOVE_ACROBATICS, MOVE_AGILITY, @@ -37811,7 +38993,9 @@ static const u16 sMiraidonTeachableLearnset[] = { MOVE_ZEN_HEADBUTT, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MIRAIDON +#if P_FAMILY_WALKING_WAKE static const u16 sWalkingWakeTeachableLearnset[] = { MOVE_AGILITY, MOVE_BODY_SLAM, @@ -37850,7 +39034,9 @@ static const u16 sWalkingWakeTeachableLearnset[] = { MOVE_WATER_PULSE, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_WALKING_WAKE +#if P_FAMILY_IRON_LEAVES static const u16 sIronLeavesTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_AGILITY, @@ -37893,11 +39079,9 @@ static const u16 sIronLeavesTeachableLearnset[] = { MOVE_X_SCISSOR, MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_IRON_LEAVES -static const u16 sDipplinTeachableLearnset[] = { - MOVE_UNAVAILABLE, -}; - +#if P_FAMILY_POLTCHAGEIST static const u16 sPoltchageistTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -37905,20 +39089,28 @@ static const u16 sPoltchageistTeachableLearnset[] = { static const u16 sSinistchaTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_POLTCHAGEIST +#if P_FAMILY_OKIDOGI static const u16 sOkidogiTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_OKIDOGI +#if P_FAMILY_MUNKIDORI static const u16 sMunkidoriTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_MUNKIDORI +#if P_FAMILY_FEZANDIPITI static const u16 sFezandipitiTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +#endif //P_FAMILY_FEZANDIPITI +#if P_FAMILY_OGERPON static const u16 sOgerponTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -#endif +#endif //P_FAMILY_OGERPON 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 a7d03e09e1..0000000000 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ /dev/null @@ -1,1589 +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_TAUROS_PALDEAN_COMBAT_BREED] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [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_WOOPER_PALDEAN] = { .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(43, 36), .y_offset = 15 }, - [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(56, 54), .y_offset = 4 }, - [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(46, 62), .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(51, 52), .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(42, 56), .y_offset = 5 }, - [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(49, 56), .y_offset = 5 }, - [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(60, 60), .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_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 }, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = { .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_URSALUNA_BLOODMOON] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 3 }, - [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 -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_FLORAGATO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_MEOWSCARADA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FUECOCO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_CROCALOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SKELEDIRGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_QUAXLY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_QUAXWELL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_QUAQUAVAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_LECHONK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_OINKOLOGNE_MALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_OINKOLOGNE_FEMALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_TAROUNTULA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_SPIDOPS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_NYMBLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_LOKIX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_PAWMI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PAWMO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_PAWMOT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_TANDEMAUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_FIDOUGH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_DACHSBUN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_SMOLIV] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_DOLLIV] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ARBOLIVA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_NACLI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_NACLSTACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GARGANACL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_CHARCADET] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ARMAROUGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_CERULEDGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_TADBULB] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_BELLIBOLT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_WATTREL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_KILOWATTREL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_MASCHIFF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_MABOSSTIFF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_SHROODLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_GRAFAIAI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_BRAMBLIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_BRAMBLEGHAST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_TOEDSCOOL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_TOEDSCRUEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_KLAWF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 20 }, - [SPECIES_CAPSAKID] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_SCOVILLAIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_RELLOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_RABSCA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLITTLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_ESPATHRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_TINKATINK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_TINKATUFF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_TINKATON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_WIGLETT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_WUGTRIO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_BOMBIRDIER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_FINIZEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_PALAFIN_ZERO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_PALAFIN_HERO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_VAROOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_REVAVROOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_CYCLIZAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_ORTHWORM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GLIMMET] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_GLIMMORA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_GREAVARD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_HOUNDSTONE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_FLAMIGO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_CETODDLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_CETITAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_VELUZA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_DONDOZO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_TATSUGIRI_CURLY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 17 }, - [SPECIES_TATSUGIRI_DROOPY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 17 }, - [SPECIES_TATSUGIRI_STRETCHY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 17 }, - [SPECIES_ANNIHILAPE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_CLODSIRE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_FARIGIRAF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_KINGAMBIT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GREAT_TUSK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_SCREAM_TAIL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BRUTE_BONNET] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_FLUTTER_MANE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_SLITHER_WING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SANDY_SHOCKS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_IRON_TREADS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_IRON_BUNDLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_IRON_HANDS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_IRON_JUGULIS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_IRON_MOTH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_IRON_THORNS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FRIGIBAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_ARCTIBAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_BAXCALIBUR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_GIMMIGHOUL_CHEST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GIMMIGHOUL_ROAMING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GHOLDENGO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_WO_CHIEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_CHIEN_PAO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_TING_LU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_CHI_YU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ROARING_MOON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_IRON_VALIANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KORAIDON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MIRAIDON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WALKING_WAKE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_IRON_LEAVES] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_DIPPLIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_POLTCHAGEIST_ARTISAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_SINISTCHA_UNREMARKABLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_SINISTCHA_MASTERPIECE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_OKIDOGI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_MUNKIDORI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FEZANDIPITI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_OGERPON_TEAL_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_OGERPON_WELLSPRING_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_OGERPON_HEARTHFLAME_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_OGERPON_CORNERSTONE_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 16 }, - [SPECIES_OGERPON_TEAL_MASK_TERA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = { .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 }, - // 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 0ebcf172f4..0000000000 --- a/src/data/pokemon_graphics/back_pic_table.h +++ /dev/null @@ -1,1664 +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(TAUROS_PALDEAN_COMBAT_BREED, gMonBackPic_TaurosPaldeanCombatBreed), - SPECIES_SPRITE(TAUROS_PALDEAN_BLAZE_BREED, gMonBackPic_TaurosPaldeanBlazeBreed), - SPECIES_SPRITE(TAUROS_PALDEAN_AQUA_BREED, gMonBackPic_TaurosPaldeanAquaBreed), - 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(WOOPER_PALDEAN, gMonBackPic_WooperPaldean), - 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_STRAWBERRY_VANILLA_CREAM, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonBackPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_BERRY_VANILLA_CREAM, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_CREAM, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_MATCHA_CREAM, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_MINT_CREAM, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_LEMON_CREAM, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_SALTED_CREAM, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_SWIRL, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonBackPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_LOVE_VANILLA_CREAM, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_CREAM, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_MATCHA_CREAM, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_MINT_CREAM, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_LEMON_CREAM, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_SALTED_CREAM, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_SWIRL, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonBackPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_STAR_VANILLA_CREAM, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_RUBY_CREAM, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_MATCHA_CREAM, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_MINT_CREAM, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_LEMON_CREAM, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_SALTED_CREAM, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_RUBY_SWIRL, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_CARAMEL_SWIRL, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_RAINBOW_SWIRL, gMonBackPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_CLOVER_VANILLA_CREAM, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_CREAM, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_MATCHA_CREAM, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_MINT_CREAM, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_LEMON_CREAM, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_SALTED_CREAM, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_SWIRL, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonBackPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_FLOWER_VANILLA_CREAM, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_CREAM, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_MATCHA_CREAM, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_MINT_CREAM, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_LEMON_CREAM, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_SALTED_CREAM, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_SWIRL, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonBackPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_RIBBON_VANILLA_CREAM, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_CREAM, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_MATCHA_CREAM, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_MINT_CREAM, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_LEMON_CREAM, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_SALTED_CREAM, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_SWIRL, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonBackPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonBackPic_AlcremieRibbon), - 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(URSALUNA_BLOODMOON, gMonBackPic_UrsalunaBloodmoon), - 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_7_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(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 - -#if P_GEN_9_POKEMON == TRUE - SPECIES_SPRITE(SPRIGATITO, gMonBackPic_Sprigatito), - SPECIES_SPRITE(FLORAGATO, gMonBackPic_Floragato), - SPECIES_SPRITE(MEOWSCARADA, gMonBackPic_Meowscarada), - SPECIES_SPRITE(FUECOCO, gMonBackPic_Fuecoco), - SPECIES_SPRITE(CROCALOR, gMonBackPic_Crocalor), - SPECIES_SPRITE(SKELEDIRGE, gMonBackPic_Skeledirge), - SPECIES_SPRITE(QUAXLY, gMonBackPic_Quaxly), - SPECIES_SPRITE(QUAXWELL, gMonBackPic_Quaxwell), - SPECIES_SPRITE(QUAQUAVAL, gMonBackPic_Quaquaval), - SPECIES_SPRITE(LECHONK, gMonBackPic_Lechonk), - SPECIES_SPRITE(OINKOLOGNE_MALE, gMonBackPic_OinkologneMale), - SPECIES_SPRITE(OINKOLOGNE_FEMALE, gMonBackPic_OinkologneFemale), - SPECIES_SPRITE(TAROUNTULA, gMonBackPic_Tarountula), - SPECIES_SPRITE(SPIDOPS, gMonBackPic_Spidops), - SPECIES_SPRITE(NYMBLE, gMonBackPic_Nymble), - SPECIES_SPRITE(LOKIX, gMonBackPic_Lokix), - SPECIES_SPRITE(PAWMI, gMonBackPic_Pawmi), - SPECIES_SPRITE(PAWMO, gMonBackPic_Pawmo), - SPECIES_SPRITE(PAWMOT, gMonBackPic_Pawmot), - SPECIES_SPRITE(TANDEMAUS, gMonBackPic_Tandemaus), - SPECIES_SPRITE(MAUSHOLD_FAMILY_OF_THREE, gMonBackPic_MausholdFamilyOfThree), - SPECIES_SPRITE(MAUSHOLD_FAMILY_OF_FOUR, gMonBackPic_MausholdFamilyOfFour), - SPECIES_SPRITE(FIDOUGH, gMonBackPic_Fidough), - SPECIES_SPRITE(DACHSBUN, gMonBackPic_Dachsbun), - SPECIES_SPRITE(SMOLIV, gMonBackPic_Smoliv), - SPECIES_SPRITE(DOLLIV, gMonBackPic_Dolliv), - SPECIES_SPRITE(ARBOLIVA, gMonBackPic_Arboliva), - SPECIES_SPRITE(SQUAWKABILLY_GREEN_PLUMAGE, gMonBackPic_Squawkabilly), - SPECIES_SPRITE(SQUAWKABILLY_BLUE_PLUMAGE, gMonBackPic_Squawkabilly), - SPECIES_SPRITE(SQUAWKABILLY_YELLOW_PLUMAGE, gMonBackPic_Squawkabilly), - SPECIES_SPRITE(SQUAWKABILLY_WHITE_PLUMAGE, gMonBackPic_Squawkabilly), - SPECIES_SPRITE(NACLI, gMonBackPic_Nacli), - SPECIES_SPRITE(NACLSTACK, gMonBackPic_Naclstack), - SPECIES_SPRITE(GARGANACL, gMonBackPic_Garganacl), - SPECIES_SPRITE(CHARCADET, gMonBackPic_Charcadet), - SPECIES_SPRITE(ARMAROUGE, gMonBackPic_Armarouge), - SPECIES_SPRITE(CERULEDGE, gMonBackPic_Ceruledge), - SPECIES_SPRITE(TADBULB, gMonBackPic_Tadbulb), - SPECIES_SPRITE(BELLIBOLT, gMonBackPic_Bellibolt), - SPECIES_SPRITE(WATTREL, gMonBackPic_Wattrel), - SPECIES_SPRITE(KILOWATTREL, gMonBackPic_Kilowattrel), - SPECIES_SPRITE(MASCHIFF, gMonBackPic_Maschiff), - SPECIES_SPRITE(MABOSSTIFF, gMonBackPic_Mabosstiff), - SPECIES_SPRITE(SHROODLE, gMonBackPic_Shroodle), - SPECIES_SPRITE(GRAFAIAI, gMonBackPic_Grafaiai), - SPECIES_SPRITE(BRAMBLIN, gMonBackPic_Bramblin), - SPECIES_SPRITE(BRAMBLEGHAST, gMonBackPic_Brambleghast), - SPECIES_SPRITE(TOEDSCOOL, gMonBackPic_Toedscool), - SPECIES_SPRITE(TOEDSCRUEL, gMonBackPic_Toedscruel), - SPECIES_SPRITE(KLAWF, gMonBackPic_Klawf), - SPECIES_SPRITE(CAPSAKID, gMonBackPic_Capsakid), - SPECIES_SPRITE(SCOVILLAIN, gMonBackPic_Scovillain), - SPECIES_SPRITE(RELLOR, gMonBackPic_Rellor), - SPECIES_SPRITE(RABSCA, gMonBackPic_Rabsca), - SPECIES_SPRITE(FLITTLE, gMonBackPic_Flittle), - SPECIES_SPRITE(ESPATHRA, gMonBackPic_Espathra), - SPECIES_SPRITE(TINKATINK, gMonBackPic_Tinkatink), - SPECIES_SPRITE(TINKATUFF, gMonBackPic_Tinkatuff), - SPECIES_SPRITE(TINKATON, gMonBackPic_Tinkaton), - SPECIES_SPRITE(WIGLETT, gMonBackPic_Wiglett), - SPECIES_SPRITE(WUGTRIO, gMonBackPic_Wugtrio), - SPECIES_SPRITE(BOMBIRDIER, gMonBackPic_Bombirdier), - SPECIES_SPRITE(FINIZEN, gMonBackPic_Finizen), - SPECIES_SPRITE(PALAFIN_ZERO, gMonBackPic_PalafinZero), - SPECIES_SPRITE(PALAFIN_HERO, gMonBackPic_PalafinHero), - SPECIES_SPRITE(VAROOM, gMonBackPic_Varoom), - SPECIES_SPRITE(REVAVROOM, gMonBackPic_Revavroom), - SPECIES_SPRITE(CYCLIZAR, gMonBackPic_Cyclizar), - SPECIES_SPRITE(ORTHWORM, gMonBackPic_Orthworm), - SPECIES_SPRITE(GLIMMET, gMonBackPic_Glimmet), - SPECIES_SPRITE(GLIMMORA, gMonBackPic_Glimmora), - SPECIES_SPRITE(GREAVARD, gMonBackPic_Greavard), - SPECIES_SPRITE(HOUNDSTONE, gMonBackPic_Houndstone), - SPECIES_SPRITE(FLAMIGO, gMonBackPic_Flamigo), - SPECIES_SPRITE(CETODDLE, gMonBackPic_Cetoddle), - SPECIES_SPRITE(CETITAN, gMonBackPic_Cetitan), - SPECIES_SPRITE(VELUZA, gMonBackPic_Veluza), - SPECIES_SPRITE(DONDOZO, gMonBackPic_Dondozo), - SPECIES_SPRITE(TATSUGIRI_CURLY, gMonBackPic_TatsugiriCurly), - SPECIES_SPRITE(TATSUGIRI_DROOPY, gMonBackPic_TatsugiriDroopy), - SPECIES_SPRITE(TATSUGIRI_STRETCHY, gMonBackPic_TatsugiriStretchy), - SPECIES_SPRITE(ANNIHILAPE, gMonBackPic_Annihilape), - SPECIES_SPRITE(CLODSIRE, gMonBackPic_Clodsire), - SPECIES_SPRITE(FARIGIRAF, gMonBackPic_Farigiraf), - SPECIES_SPRITE(DUDUNSPARCE_TWO_SEGMENT, gMonBackPic_DudunsparceTwoSegment), - SPECIES_SPRITE(DUDUNSPARCE_THREE_SEGMENT, gMonBackPic_DudunsparceThreeSegment), - SPECIES_SPRITE(KINGAMBIT, gMonBackPic_Kingambit), - SPECIES_SPRITE(GREAT_TUSK, gMonBackPic_GreatTusk), - SPECIES_SPRITE(SCREAM_TAIL, gMonBackPic_ScreamTail), - SPECIES_SPRITE(BRUTE_BONNET, gMonBackPic_BruteBonnet), - SPECIES_SPRITE(FLUTTER_MANE, gMonBackPic_FlutterMane), - SPECIES_SPRITE(SLITHER_WING, gMonBackPic_SlitherWing), - SPECIES_SPRITE(SANDY_SHOCKS, gMonBackPic_SandyShocks), - SPECIES_SPRITE(IRON_TREADS, gMonBackPic_IronTreads), - SPECIES_SPRITE(IRON_BUNDLE, gMonBackPic_IronBundle), - SPECIES_SPRITE(IRON_HANDS, gMonBackPic_IronHands), - SPECIES_SPRITE(IRON_JUGULIS, gMonBackPic_IronJugulis), - SPECIES_SPRITE(IRON_MOTH, gMonBackPic_IronMoth), - SPECIES_SPRITE(IRON_THORNS, gMonBackPic_IronThorns), - SPECIES_SPRITE(FRIGIBAX, gMonBackPic_Frigibax), - SPECIES_SPRITE(ARCTIBAX, gMonBackPic_Arctibax), - SPECIES_SPRITE(BAXCALIBUR, gMonBackPic_Baxcalibur), - SPECIES_SPRITE(GIMMIGHOUL_CHEST, gMonBackPic_GimmighoulChest), - SPECIES_SPRITE(GIMMIGHOUL_ROAMING, gMonBackPic_GimmighoulRoaming), - SPECIES_SPRITE(GHOLDENGO, gMonBackPic_Gholdengo), - SPECIES_SPRITE(WO_CHIEN, gMonBackPic_WoChien), - SPECIES_SPRITE(CHIEN_PAO, gMonBackPic_ChienPao), - SPECIES_SPRITE(TING_LU, gMonBackPic_TingLu), - SPECIES_SPRITE(CHI_YU, gMonBackPic_ChiYu), - SPECIES_SPRITE(ROARING_MOON, gMonBackPic_RoaringMoon), - SPECIES_SPRITE(IRON_VALIANT, gMonBackPic_IronValiant), - SPECIES_SPRITE(KORAIDON, gMonBackPic_Koraidon), - SPECIES_SPRITE(MIRAIDON, gMonBackPic_Miraidon), - SPECIES_SPRITE(WALKING_WAKE, gMonBackPic_WalkingWake), - SPECIES_SPRITE(IRON_LEAVES, gMonBackPic_IronLeaves), - SPECIES_SPRITE(DIPPLIN, gMonBackPic_Dipplin), - SPECIES_SPRITE(POLTCHAGEIST_COUNTERFEIT, gMonBackPic_Poltchageist), - SPECIES_SPRITE(POLTCHAGEIST_ARTISAN, gMonBackPic_Poltchageist), - SPECIES_SPRITE(SINISTCHA_UNREMARKABLE, gMonBackPic_Sinistcha), - SPECIES_SPRITE(SINISTCHA_MASTERPIECE, gMonBackPic_Sinistcha), - SPECIES_SPRITE(OKIDOGI, gMonBackPic_Okidogi), - SPECIES_SPRITE(MUNKIDORI, gMonBackPic_Munkidori), - SPECIES_SPRITE(FEZANDIPITI, gMonBackPic_Fezandipiti), - SPECIES_SPRITE(OGERPON_TEAL_MASK, gMonBackPic_OgerponTealMask), - SPECIES_SPRITE(OGERPON_WELLSPRING_MASK, gMonBackPic_OgerponWellspringMask), - SPECIES_SPRITE(OGERPON_HEARTHFLAME_MASK, gMonBackPic_OgerponHearthflameMask), - SPECIES_SPRITE(OGERPON_CORNERSTONE_MASK, gMonBackPic_OgerponCornerstoneMask), - // SPECIES_SPRITE(OGERPON_TEAL_MASK_TERA, gMonBackPic_OgerponTealMaskTera), - // SPECIES_SPRITE(OGERPON_WELLSPRING_MASK_TERA, gMonBackPic_OgerponWellspringMaskTera), - // SPECIES_SPRITE(OGERPON_HEARTHFLAME_MASK_TERA, gMonBackPic_OgerponHearthflameMaskTera), - // SPECIES_SPRITE(OGERPON_CORNERSTONE_MASK_TERA, gMonBackPic_OgerponCornerstoneMaskTera), -#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 004e1be917..0000000000 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ /dev/null @@ -1,287 +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, -#if P_GEN_9_POKEMON == TRUE - [SPECIES_TADBULB] = 12, - [SPECIES_BRAMBLIN] = 1, - [SPECIES_BRAMBLEGHAST] = 1, - [SPECIES_BOMBIRDIER] = 11, - [SPECIES_GLIMMET] = 1, - [SPECIES_GLIMMORA] = 10, - [SPECIES_VELUZA] = 1, - [SPECIES_DONDOZO] = 1, - [SPECIES_FLUTTER_MANE] = 5, - [SPECIES_IRON_JUGULIS] = 7, - [SPECIES_IRON_MOTH] = 4, - [SPECIES_CHI_YU] = 2, - [SPECIES_ROARING_MOON] = 20, -#endif - [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 b3dd284a3a..0000000000 --- a/src/data/pokemon_graphics/footprint_table.h +++ /dev/null @@ -1,1112 +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_TAUROS_PALDEAN_COMBAT_BREED] = gMonFootprint_Tauros, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = gMonFootprint_Tauros, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = 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_WOOPER_PALDEAN] = 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_ALCREMIE_STRAWBERRY_RUBY_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = gMonFootprint_Alcremie, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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 -#if P_GEN_9_POKEMON == TRUE - //[SPECIES_SPRIGATITO] = gMonFootprint_Sprigatito, - //[SPECIES_FLORAGATO] = gMonFootprint_Floragato, - //[SPECIES_MEOWSCARADA] = gMonFootprint_Meowscarada, - //[SPECIES_FUECOCO] = gMonFootprint_Fuecoco, - //[SPECIES_CROCALOR] = gMonFootprint_Crocalor, - //[SPECIES_SKELEDIRGE] = gMonFootprint_Skeledirge, - //[SPECIES_QUAXLY] = gMonFootprint_Quaxly, - //[SPECIES_QUAXWELL] = gMonFootprint_Quaxwell, - //[SPECIES_QUAQUAVAL] = gMonFootprint_Quaquaval, - //[SPECIES_LECHONK] = gMonFootprint_Lechonk, - //[SPECIES_OINKOLOGNE_MALE] = gMonFootprint_Oinkologne, - //[SPECIES_OINKOLOGNE_FEMALE] = gMonFootprint_Oinkologne, - //[SPECIES_TAROUNTULA] = gMonFootprint_Tarountula, - //[SPECIES_SPIDOPS] = gMonFootprint_Spidops, - //[SPECIES_NYMBLE] = gMonFootprint_Nymble, - //[SPECIES_LOKIX] = gMonFootprint_Lokix, - //[SPECIES_PAWMI] = gMonFootprint_Pawmi, - //[SPECIES_PAWMO] = gMonFootprint_Pawmo, - //[SPECIES_PAWMOT] = gMonFootprint_Pawmot, - //[SPECIES_TANDEMAUS] = gMonFootprint_Tandemaus, - //[SPECIES_MAUSHOLD_FAMILY_OF_THREE] = gMonFootprint_Maushold, - //[SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = gMonFootprint_Maushold, - //[SPECIES_FIDOUGH] = gMonFootprint_Fidough, - //[SPECIES_DACHSBUN] = gMonFootprint_Dachsbun, - //[SPECIES_SMOLIV] = gMonFootprint_Smoliv, - //[SPECIES_DOLLIV] = gMonFootprint_Dolliv, - //[SPECIES_ARBOLIVA] = gMonFootprint_Arboliva, - //[SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = gMonFootprint_Squawkabilly, - //[SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = gMonFootprint_Squawkabilly, - //[SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = gMonFootprint_Squawkabilly, - //[SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = gMonFootprint_Squawkabilly, - //[SPECIES_NACLI] = gMonFootprint_Nacli, - //[SPECIES_NACLSTACK] = gMonFootprint_Naclstack, - //[SPECIES_GARGANACL] = gMonFootprint_Garganacl, - //[SPECIES_CHARCADET] = gMonFootprint_Charcadet, - //[SPECIES_ARMAROUGE] = gMonFootprint_Armarouge, - //[SPECIES_CERULEDGE] = gMonFootprint_Ceruledge, - //[SPECIES_TADBULB] = gMonFootprint_Tadbulb, - //[SPECIES_BELLIBOLT] = gMonFootprint_Bellibolt, - //[SPECIES_WATTREL] = gMonFootprint_Wattrel, - //[SPECIES_KILOWATTREL] = gMonFootprint_Kilowattrel, - //[SPECIES_MASCHIFF] = gMonFootprint_Maschiff, - //[SPECIES_MABOSSTIFF] = gMonFootprint_Mabosstiff, - //[SPECIES_SHROODLE] = gMonFootprint_Shroodle, - //[SPECIES_GRAFAIAI] = gMonFootprint_Grafaiai, - //[SPECIES_BRAMBLIN] = gMonFootprint_Bramblin, - //[SPECIES_BRAMBLEGHAST] = gMonFootprint_Brambleghast, - //[SPECIES_TOEDSCOOL] = gMonFootprint_Toedscool, - //[SPECIES_TOEDSCRUEL] = gMonFootprint_Toedscruel, - //[SPECIES_KLAWF] = gMonFootprint_Klawf, - //[SPECIES_CAPSAKID] = gMonFootprint_Capsakid, - //[SPECIES_SCOVILLAIN] = gMonFootprint_Scovillain, - //[SPECIES_RELLOR] = gMonFootprint_Rellor, - //[SPECIES_RABSCA] = gMonFootprint_Rabsca, - //[SPECIES_FLITTLE] = gMonFootprint_Flittle, - //[SPECIES_ESPATHRA] = gMonFootprint_Espathra, - //[SPECIES_TINKATINK] = gMonFootprint_Tinkatink, - //[SPECIES_TINKATUFF] = gMonFootprint_Tinkatuff, - //[SPECIES_TINKATON] = gMonFootprint_Tinkaton, - //[SPECIES_WIGLETT] = gMonFootprint_Wiglett, - //[SPECIES_WUGTRIO] = gMonFootprint_Wugtrio, - //[SPECIES_BOMBIRDIER] = gMonFootprint_Bombirdier, - //[SPECIES_FINIZEN] = gMonFootprint_Finizen, - //[SPECIES_PALAFIN_ZERO] = gMonFootprint_Palafin, - //[SPECIES_PALAFIN_HERO] = gMonFootprint_Palafin, - //[SPECIES_VAROOM] = gMonFootprint_Varoom, - //[SPECIES_REVAVROOM] = gMonFootprint_Revavroom, - //[SPECIES_CYCLIZAR] = gMonFootprint_Cyclizar, - //[SPECIES_ORTHWORM] = gMonFootprint_Orthworm, - //[SPECIES_GLIMMET] = gMonFootprint_Glimmet, - //[SPECIES_GLIMMORA] = gMonFootprint_Glimmora, - //[SPECIES_GREAVARD] = gMonFootprint_Greavard, - //[SPECIES_HOUNDSTONE] = gMonFootprint_Houndstone, - //[SPECIES_FLAMIGO] = gMonFootprint_Flamigo, - //[SPECIES_CETODDLE] = gMonFootprint_Cetoddle, - //[SPECIES_CETITAN] = gMonFootprint_Cetitan, - //[SPECIES_VELUZA] = gMonFootprint_Veluza, - //[SPECIES_DONDOZO] = gMonFootprint_Dondozo, - //[SPECIES_TATSUGIRI_CURLY] = gMonFootprint_Tatsugiri, - //[SPECIES_TATSUGIRI_DROOPY] = gMonFootprint_Tatsugiri, - //[SPECIES_TATSUGIRI_STRETCHY] = gMonFootprint_Tatsugiri, - //[SPECIES_ANNIHILAPE] = gMonFootprint_Annihilape, - //[SPECIES_CLODSIRE] = gMonFootprint_Clodsire, - //[SPECIES_FARIGIRAF] = gMonFootprint_Farigiraf, - //[SPECIES_DUDUNSPARCE_TWO_SEGMENT] = gMonFootprint_Dudunsparce, - //[SPECIES_DUDUNSPARCE_THREE_SEGMENT] = gMonFootprint_Dudunsparce, - //[SPECIES_KINGAMBIT] = gMonFootprint_Kingambit, - //[SPECIES_GREAT_TUSK] = gMonFootprint_GreatTusk, - //[SPECIES_SCREAM_TAIL] = gMonFootprint_ScreamTail, - //[SPECIES_BRUTE_BONNET] = gMonFootprint_BruteBonnet, - //[SPECIES_FLUTTER_MANE] = gMonFootprint_FlutterMane, - //[SPECIES_SLITHER_WING] = gMonFootprint_SlitherWing, - //[SPECIES_SANDY_SHOCKS] = gMonFootprint_SandyShocks, - //[SPECIES_IRON_TREADS] = gMonFootprint_IronTreads, - //[SPECIES_IRON_BUNDLE] = gMonFootprint_IronBundle, - //[SPECIES_IRON_HANDS] = gMonFootprint_IronHands, - //[SPECIES_IRON_JUGULIS] = gMonFootprint_IronJugulis, - //[SPECIES_IRON_MOTH] = gMonFootprint_IronMoth, - //[SPECIES_IRON_THORNS] = gMonFootprint_IronThorns, - //[SPECIES_FRIGIBAX] = gMonFootprint_Frigibax, - //[SPECIES_ARCTIBAX] = gMonFootprint_Arctibax, - //[SPECIES_BAXCALIBUR] = gMonFootprint_Baxcalibur, - //[SPECIES_GIMMIGHOUL_CHEST] = gMonFootprint_Gimmighoul, - //[SPECIES_GIMMIGHOUL_ROAMING] = gMonFootprint_Gimmighoul, - //[SPECIES_GHOLDENGO] = gMonFootprint_Gholdengo, - //[SPECIES_WO_CHIEN] = gMonFootprint_WoChien, - //[SPECIES_CHIEN_PAO] = gMonFootprint_ChienPao, - //[SPECIES_TING_LU] = gMonFootprint_TingLu, - //[SPECIES_CHI_YU] = gMonFootprint_ChiYu, - //[SPECIES_ROARING_MOON] = gMonFootprint_RoaringMoon, - //[SPECIES_IRON_VALIANT] = gMonFootprint_IronValiant, - //[SPECIES_KORAIDON] = gMonFootprint_Koraidon, - //[SPECIES_MIRAIDON] = gMonFootprint_Miraidon, - //[SPECIES_WALKING_WAKE] = gMonFootprint_WalkingWake, - //[SPECIES_IRON_LEAVES] = gMonFootprint_IronLeaves, - //[SPECIES_DIPPLIN] = gMonFootprint_Dipplin, - //[SPECIES_POLTCHAGEIST_COUNTERFEIT] = gMonFootprint_Poltchageist, - //[SPECIES_POLTCHAGEIST_ARTISAN] = gMonFootprint_Poltchageist, - //[SPECIES_SINISTCHA_UNREMARKABLE] = gMonFootprint_Sinistcha, - //[SPECIES_SINISTCHA_MASTERPIECE] = gMonFootprint_Sinistcha, - //[SPECIES_OKIDOGI] = gMonFootprint_Okidogi, - //[SPECIES_MUNKIDORI] = gMonFootprint_Munkidori, - //[SPECIES_FEZANDIPITI] = gMonFootprint_Fezandipiti, - //[SPECIES_OGERPON_TEAL_MASK] = gMonFootprint_Ogerpon, - //[SPECIES_OGERPON_WELLSPRING_MASK] = gMonFootprint_Ogerpon, - //[SPECIES_OGERPON_HEARTHFLAME_MASK] = gMonFootprint_Ogerpon, - //[SPECIES_OGERPON_CORNERSTONE_MASK] = gMonFootprint_Ogerpon, - //[SPECIES_OGERPON_TEAL_MASK_TERA] = gMonFootprint_Ogerpon, - //[SPECIES_OGERPON_WELLSPRING_MASK_TERA] = gMonFootprint_Ogerpon, - //[SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = gMonFootprint_Ogerpon, - //[SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = gMonFootprint_Ogerpon, -#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 5227946fa4..92c8c7729c 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -5,7 +5,7 @@ static const union AnimCmd sAnim_##name##_1[] = \ ANIMCMD_END, \ } -#define PLACEHOLDER_TWO_FRAME_ANIMATION(name) \ +#define PLACEHOLDER_ANIM_TWO_FRAMES(name) \ static const union AnimCmd sAnim_##name##_1[] = \ { \ ANIMCMD_FRAME(0, 30), \ @@ -22,6 +22,7 @@ static const union AnimCmd sAnim_None_1[] = ANIMCMD_END, }; +#if P_FAMILY_BULBASAUR static const union AnimCmd sAnim_Bulbasaur_1[] = { ANIMCMD_FRAME(0, 30), @@ -46,6 +47,16 @@ static const union AnimCmd sAnim_Venusaur_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(VenusaurMega); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(VenusaurGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER static const union AnimCmd sAnim_Charmander_1[] = { ANIMCMD_FRAME(0, 2), @@ -69,6 +80,20 @@ static const union AnimCmd sAnim_Charizard_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardMegaX); +#endif //P_MEGA_EVOLUTIONS + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardMegaY); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE static const union AnimCmd sAnim_Squirtle_1[] = { ANIMCMD_FRAME(1, 11), @@ -95,6 +120,16 @@ static const union AnimCmd sAnim_Blastoise_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(BlastoiseMega); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(BlastoiseGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE static const union AnimCmd sAnim_Caterpie_1[] = { ANIMCMD_FRAME(1, 15), @@ -133,6 +168,12 @@ static const union AnimCmd sAnim_Butterfree_1[] = ANIMCMD_END, }; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(ButterfreeGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE static const union AnimCmd sAnim_Weedle_1[] = { ANIMCMD_FRAME(0, 5), @@ -173,6 +214,12 @@ static const union AnimCmd sAnim_Beedrill_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(BeedrillMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY static const union AnimCmd sAnim_Pidgey_1[] = { ANIMCMD_FRAME(0, 5), @@ -195,11 +242,15 @@ static const union AnimCmd sAnim_Pidgeot_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(PidgeotMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA static const union AnimCmd sAnim_Rattata_1[] = { ANIMCMD_FRAME(1, 11), @@ -226,6 +277,14 @@ static const union AnimCmd sAnim_Raticate_1[] = ANIMCMD_END, }; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(RattataAlolan); + +PLACEHOLDER_ANIM_SINGLE_FRAME(RaticateAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW static const union AnimCmd sAnim_Spearow_1[] = { ANIMCMD_FRAME(1, 11), @@ -247,7 +306,9 @@ static const union AnimCmd sAnim_Fearow_1[] = ANIMCMD_FRAME(0, 7), ANIMCMD_END, }; +#endif //P_FAMILY_SPEAROW +#if P_FAMILY_EKANS static const union AnimCmd sAnim_Ekans_1[] = { ANIMCMD_FRAME(1, 8), @@ -266,6 +327,22 @@ static const union AnimCmd sAnim_Arbok_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Pichu_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +PLACEHOLDER_ANIM_SINGLE_FRAME(PichuSpikyEared); +#endif //P_GEN_2_CROSS_EVOS static const union AnimCmd sAnim_Pikachu_1[] = { @@ -276,14 +353,24 @@ static const union AnimCmd sAnim_Pikachu_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Pikachu_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +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); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuGigantamax); +#endif //P_GIGANTAMAX_FORMS static const union AnimCmd sAnim_Raichu_1[] = { @@ -295,15 +382,12 @@ static const union AnimCmd sAnim_Raichu_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Raichu_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(RaichuAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU +#if P_FAMILY_SANDSHREW static const union AnimCmd sAnim_Sandshrew_1[] = { ANIMCMD_FRAME(0, 10), @@ -314,15 +398,6 @@ static const union AnimCmd sAnim_Sandshrew_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Sandshrew_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Sandslash_1[] = { ANIMCMD_FRAME(0, 10), @@ -333,15 +408,13 @@ static const union AnimCmd sAnim_Sandslash_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Sandslash_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(SandshrewAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandslashAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW +#if P_FAMILY_NIDORAN static const union AnimCmd sAnim_NidoranF_1[] = { ANIMCMD_FRAME(0, 5), @@ -394,6 +467,19 @@ static const union AnimCmd sAnim_Nidoking_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Cleffa_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS static const union AnimCmd sAnim_Clefairy_1[] = { @@ -410,7 +496,9 @@ static const union AnimCmd sAnim_Clefable_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_CLEFAIRY +#if P_FAMILY_VULPIX static const union AnimCmd sAnim_Vulpix_1[] = { ANIMCMD_FRAME(0, 15), @@ -421,15 +509,6 @@ static const union AnimCmd sAnim_Vulpix_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Vulpix_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Ninetales_1[] = { ANIMCMD_FRAME(0, 15), @@ -440,14 +519,24 @@ static const union AnimCmd sAnim_Ninetales_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Ninetales_2[] = +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(VulpixAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(NinetalesAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Igglybuff_1[] = { - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_GEN_2_CROSS_EVOS static const union AnimCmd sAnim_Jigglypuff_1[] = { @@ -459,15 +548,6 @@ static const union AnimCmd sAnim_Jigglypuff_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Jigglypuff_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Wigglytuff_1[] = { ANIMCMD_FRAME(0, 15), @@ -477,16 +557,9 @@ static const union AnimCmd sAnim_Wigglytuff_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_JIGGLYPUFF -static const union AnimCmd sAnim_Wigglytuff_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_ZUBAT static const union AnimCmd sAnim_Zubat_1[] = { ANIMCMD_FRAME(0, 3), @@ -529,6 +602,32 @@ static const union AnimCmd sAnim_Golbat_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Crobat_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_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH static const union AnimCmd sAnim_Oddish_1[] = { ANIMCMD_FRAME(0, 11), @@ -557,6 +656,31 @@ static const union AnimCmd sAnim_Vileplume_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Bellossom_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS static const union AnimCmd sAnim_Paras_1[] = { ANIMCMD_FRAME(1, 5), @@ -588,7 +712,9 @@ static const union AnimCmd sAnim_Parasect_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_PARAS +#if P_FAMILY_VENONAT static const union AnimCmd sAnim_Venonat_1[] = { ANIMCMD_FRAME(1, 5), @@ -626,7 +752,9 @@ static const union AnimCmd sAnim_Venomoth_1[] = ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; +#endif //P_FAMILY_VENONAT +#if P_FAMILY_DIGLETT static const union AnimCmd sAnim_Diglett_1[] = { ANIMCMD_FRAME(0, 25), @@ -650,6 +778,13 @@ static const union AnimCmd sAnim_Dugtrio_1[] = ANIMCMD_END, }; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(DiglettAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(DugtrioAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH static const union AnimCmd sAnim_Meowth_1[] = { ANIMCMD_FRAME(1, 8), @@ -668,6 +803,22 @@ static const union AnimCmd sAnim_Persian_1[] = ANIMCMD_END, }; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(PersianAlolan); +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Perrserker); +#endif //P_GALARIAN_FORMS + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK static const union AnimCmd sAnim_Psyduck_1[] = { ANIMCMD_FRAME(0, 15), @@ -678,15 +829,6 @@ static const union AnimCmd sAnim_Psyduck_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Psyduck_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Golduck_1[] = { ANIMCMD_FRAME(0, 15), @@ -696,16 +838,9 @@ static const union AnimCmd sAnim_Golduck_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_PSYDUCK -static const union AnimCmd sAnim_Golduck_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_MANKEY static const union AnimCmd sAnim_Mankey_1[] = { ANIMCMD_FRAME(1, 5), @@ -729,6 +864,12 @@ static const union AnimCmd sAnim_Primeape_1[] = ANIMCMD_END, }; +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Annihilape); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE static const union AnimCmd sAnim_Growlithe_1[] = { ANIMCMD_FRAME(1, 8), @@ -747,6 +888,13 @@ static const union AnimCmd sAnim_Arcanine_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(GrowlitheHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ArcanineHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG static const union AnimCmd sAnim_Poliwag_1[] = { ANIMCMD_FRAME(0, 20), @@ -772,6 +920,21 @@ static const union AnimCmd sAnim_Poliwrath_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Politoed_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA static const union AnimCmd sAnim_Abra_1[] = { ANIMCMD_FRAME(0, 7), @@ -798,6 +961,12 @@ static const union AnimCmd sAnim_Alakazam_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AlakazamMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP static const union AnimCmd sAnim_Machop_1[] = { ANIMCMD_FRAME(0, 6), @@ -828,6 +997,12 @@ static const union AnimCmd sAnim_Machamp_1[] = ANIMCMD_END, }; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MachampGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT static const union AnimCmd sAnim_Bellsprout_1[] = { ANIMCMD_FRAME(0, 5), @@ -859,7 +1034,9 @@ static const union AnimCmd sAnim_Victreebel_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_BELLSPROUT +#if P_FAMILY_TENTACOOL static const union AnimCmd sAnim_Tentacool_1[] = { ANIMCMD_FRAME(0, 8), @@ -879,7 +1056,9 @@ static const union AnimCmd sAnim_Tentacruel_1[] = ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_TENTACOOL +#if P_FAMILY_GEODUDE static const union AnimCmd sAnim_Geodude_1[] = { ANIMCMD_FRAME(0, 15), @@ -908,6 +1087,14 @@ static const union AnimCmd sAnim_Golem_1[] = ANIMCMD_END, }; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(GeodudeAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GravelerAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GolemAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA static const union AnimCmd sAnim_Ponyta_1[] = { ANIMCMD_FRAME(1, 30), @@ -923,6 +1110,13 @@ static const union AnimCmd sAnim_Rapidash_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(PonytaGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(RapidashGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE static const union AnimCmd sAnim_Slowpoke_1[] = { ANIMCMD_FRAME(0, 20), @@ -938,6 +1132,30 @@ static const union AnimCmd sAnim_Slowbro_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Slowking_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowbroMega); +#endif //P_MEGA_EVOLUTIONS + +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowpokeGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowbroGalarian); +#if P_GEN_2_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowkingGalarian); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE static const union AnimCmd sAnim_Magnemite_1[] = { ANIMCMD_FRAME(0, 28), @@ -960,6 +1178,20 @@ static const union AnimCmd sAnim_Magneton_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Magnezone_1[] = +{ + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD static const union AnimCmd sAnim_Farfetchd_1[] = { ANIMCMD_FRAME(1, 5), @@ -977,6 +1209,13 @@ static const union AnimCmd sAnim_Farfetchd_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(FarfetchdGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sirfetchd); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO static const union AnimCmd sAnim_Doduo_1[] = { ANIMCMD_FRAME(0, 18), @@ -995,16 +1234,18 @@ static const union AnimCmd sAnim_Dodrio_1[] = ANIMCMD_FRAME(1, 12), ANIMCMD_FRAME(0, 12), ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_DODUO +#if P_FAMILY_SEEL static const union AnimCmd sAnim_Seel_1[] = { - ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; @@ -1015,7 +1256,9 @@ static const union AnimCmd sAnim_Dewgong_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_SEEL +#if P_FAMILY_GRIMER static const union AnimCmd sAnim_Grimer_1[] = { ANIMCMD_FRAME(0, 10), @@ -1026,15 +1269,6 @@ static const union AnimCmd sAnim_Grimer_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Grimer_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Muk_1[] = { ANIMCMD_FRAME(0, 10), @@ -1045,15 +1279,13 @@ static const union AnimCmd sAnim_Muk_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Muk_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(GrimerAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(MukAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER +#if P_FAMILY_SHELLDER static const union AnimCmd sAnim_Shellder_1[] = { ANIMCMD_FRAME(1, 5), @@ -1065,30 +1297,24 @@ static const union AnimCmd sAnim_Shellder_1[] = static const union AnimCmd sAnim_Cloyster_1[] = { - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_SHELLDER +#if P_FAMILY_GASTLY static const union AnimCmd sAnim_Gastly_1[] = { - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; @@ -1110,14 +1336,41 @@ static const union AnimCmd sAnim_Gengar_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(GengarMega); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(GengarGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX static const union AnimCmd sAnim_Onix_1[] = { ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Steelix_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 21), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(SteelixMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE static const union AnimCmd sAnim_Drowzee_1[] = { ANIMCMD_FRAME(1, 12), @@ -1140,32 +1393,33 @@ static const union AnimCmd sAnim_Hypno_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_DROWZEE +#if P_FAMILY_KRABBY static const union AnimCmd sAnim_Krabby_1[] = { - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; static const union AnimCmd sAnim_Kingler_1[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 14), ANIMCMD_END, }; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(KinglerGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB static const union AnimCmd sAnim_Voltorb_1[] = { ANIMCMD_FRAME(0, 4), @@ -1178,14 +1432,20 @@ static const union AnimCmd sAnim_Voltorb_1[] = static const union AnimCmd sAnim_Electrode_1[] = { - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 34), + ANIMCMD_FRAME(1, 34), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(VoltorbHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ElectrodeHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE static const union AnimCmd sAnim_Exeggcute_1[] = { ANIMCMD_FRAME(0, 10), @@ -1207,14 +1467,20 @@ static const union AnimCmd sAnim_Exeggutor_1[] = ANIMCMD_END, }; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_TWO_FRAMES(ExeggutorAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE static const union AnimCmd sAnim_Cubone_1[] = { - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_LOOP(1), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; @@ -1229,34 +1495,84 @@ static const union AnimCmd sAnim_Marowak_1[] = ANIMCMD_END, }; +#if P_ALOLAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MarowakAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Tyrogue_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS + static const union AnimCmd sAnim_Hitmonlee_1[] = { - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; static const union AnimCmd sAnim_Hitmonchan_1[] = { - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 4), + ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Hitmontop_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 26), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG static const union AnimCmd sAnim_Lickitung_1[] = { - ANIMCMD_FRAME(0, 28), - ANIMCMD_FRAME(1, 32), + ANIMCMD_FRAME(1, 16), ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Lickilicky_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 50), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING static const union AnimCmd sAnim_Koffing_1[] = { ANIMCMD_FRAME(0, 10), @@ -1267,15 +1583,6 @@ static const union AnimCmd sAnim_Koffing_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Koffing_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Weezing_1[] = { ANIMCMD_FRAME(0, 10), @@ -1286,15 +1593,12 @@ static const union AnimCmd sAnim_Weezing_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Weezing_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(WeezingGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING +#if P_FAMILY_RHYHORN static const union AnimCmd sAnim_Rhyhorn_1[] = { ANIMCMD_FRAME(0, 11), @@ -1305,33 +1609,36 @@ static const union AnimCmd sAnim_Rhyhorn_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Rhyhorn_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Rhydon_1[] = { - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 48), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; -static const union AnimCmd sAnim_Rhydon_2[] = +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Rhyperior_1[] = { + ANIMCMD_FRAME(0, 50), + ANIMCMD_FRAME(1, 25), ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Happiny_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS static const union AnimCmd sAnim_Chansey_1[] = { @@ -1341,21 +1648,42 @@ static const union AnimCmd sAnim_Chansey_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Blissey_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA static const union AnimCmd sAnim_Tangela_1[] = { - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(0, 40), + ANIMCMD_FRAME(1, 24), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Tangrowth_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN static const union AnimCmd sAnim_Kangaskhan_1[] = { ANIMCMD_FRAME(1, 10), @@ -1365,6 +1693,12 @@ static const union AnimCmd sAnim_Kangaskhan_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(KangaskhanMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA static const union AnimCmd sAnim_Horsea_1[] = { ANIMCMD_FRAME(0, 11), @@ -1375,15 +1709,6 @@ static const union AnimCmd sAnim_Horsea_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Horsea_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Seadra_1[] = { ANIMCMD_FRAME(0, 11), @@ -1394,15 +1719,20 @@ static const union AnimCmd sAnim_Seadra_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Seadra_2[] = +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Kingdra_1[] = { - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA +#if P_FAMILY_GOLDEEN static const union AnimCmd sAnim_Goldeen_1[] = { ANIMCMD_FRAME(0, 16), @@ -1426,7 +1756,9 @@ static const union AnimCmd sAnim_Seaking_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_GOLDEEN +#if P_FAMILY_STARYU static const union AnimCmd sAnim_Staryu_1[] = { ANIMCMD_FRAME(0, 11), @@ -1437,15 +1769,6 @@ static const union AnimCmd sAnim_Staryu_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Staryu_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Starmie_1[] = { ANIMCMD_FRAME(0, 11), @@ -1455,15 +1778,21 @@ static const union AnimCmd sAnim_Starmie_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_STARYU -static const union AnimCmd sAnim_Starmie_2[] = +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_MimeJr_1[] = { - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_GEN_4_CROSS_EVOS static const union AnimCmd sAnim_MrMime_1[] = { @@ -1476,6 +1805,13 @@ static const union AnimCmd sAnim_MrMime_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MrMimeGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(MrRime); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER static const union AnimCmd sAnim_Scyther_1[] = { ANIMCMD_FRAME(1, 5), @@ -1489,6 +1825,34 @@ static const union AnimCmd sAnim_Scyther_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Scizor_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(ScizorMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Kleavor); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Smoochum_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS + static const union AnimCmd sAnim_Jynx_1[] = { ANIMCMD_FRAME(1, 40), @@ -1498,6 +1862,18 @@ static const union AnimCmd sAnim_Jynx_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Elekid_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS static const union AnimCmd sAnim_Electabuzz_1[] = { @@ -1509,6 +1885,29 @@ static const union AnimCmd sAnim_Electabuzz_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Electivire_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Magby_1[] = +{ + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS + static const union AnimCmd sAnim_Magmar_1[] = { ANIMCMD_FRAME(1, 40), @@ -1516,6 +1915,17 @@ static const union AnimCmd sAnim_Magmar_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Magmortar_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR static const union AnimCmd sAnim_Pinsir_1[] = { ANIMCMD_FRAME(0, 11), @@ -1526,15 +1936,12 @@ static const union AnimCmd sAnim_Pinsir_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Pinsir_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(PinsirMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PINSIR +#if P_FAMILY_TAUROS static const union AnimCmd sAnim_Tauros_1[] = { ANIMCMD_FRAME(1, 10), @@ -1544,6 +1951,12 @@ static const union AnimCmd sAnim_Tauros_1[] = ANIMCMD_END, }; +#if P_PALDEAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(TaurosPaldean); +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP static const union AnimCmd sAnim_Magikarp_1[] = { ANIMCMD_FRAME(0, 8), @@ -1566,6 +1979,12 @@ static const union AnimCmd sAnim_Gyarados_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(GyaradosMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS static const union AnimCmd sAnim_Lapras_1[] = { ANIMCMD_FRAME(1, 30), @@ -1573,6 +1992,12 @@ static const union AnimCmd sAnim_Lapras_1[] = ANIMCMD_END, }; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(LaprasGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO static const union AnimCmd sAnim_Ditto_1[] = { ANIMCMD_FRAME(1, 10), @@ -1581,7 +2006,9 @@ static const union AnimCmd sAnim_Ditto_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_DITTO +#if P_FAMILY_EEVEE static const union AnimCmd sAnim_Eevee_1[] = { ANIMCMD_FRAME(1, 33), @@ -1589,6 +2016,10 @@ static const union AnimCmd sAnim_Eevee_1[] = ANIMCMD_END, }; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(EeveeGigantamax); +#endif //P_GIGANTAMAX_FORMS + static const union AnimCmd sAnim_Vaporeon_1[] = { ANIMCMD_FRAME(1, 40), @@ -1610,6 +2041,53 @@ static const union AnimCmd sAnim_Flareon_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Espeon_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Umbreon_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Leafeon_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Glaceon_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 36), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS +static const union AnimCmd sAnim_Sylveon_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON static const union AnimCmd sAnim_Porygon_1[] = { ANIMCMD_FRAME(1, 10), @@ -1619,6 +2097,31 @@ static const union AnimCmd sAnim_Porygon_1[] = ANIMCMD_END, }; +#if P_GEN_2_CROSS_EVOS +static const union AnimCmd sAnim_Porygon2_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Porygon_Z_1[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 40), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE static const union AnimCmd sAnim_Omanyte_1[] = { ANIMCMD_FRAME(1, 10), @@ -1640,7 +2143,9 @@ static const union AnimCmd sAnim_Omastar_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_OMANYTE +#if P_FAMILY_KABUTO static const union AnimCmd sAnim_Kabuto_1[] = { ANIMCMD_FRAME(1, 8), @@ -1662,7 +2167,9 @@ static const union AnimCmd sAnim_Kabutops_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_KABUTO +#if P_FAMILY_AERODACTYL static const union AnimCmd sAnim_Aerodactyl_1[] = { ANIMCMD_FRAME(1, 10), @@ -1672,6 +2179,22 @@ static const union AnimCmd sAnim_Aerodactyl_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AerodactylMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Munchlax_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS + static const union AnimCmd sAnim_Snorlax_1[] = { ANIMCMD_FRAME(1, 50), @@ -1680,6 +2203,12 @@ static const union AnimCmd sAnim_Snorlax_1[] = ANIMCMD_END, }; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(SnorlaxGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO static const union AnimCmd sAnim_Articuno_1[] = { ANIMCMD_FRAME(1, 25), @@ -1689,6 +2218,12 @@ static const union AnimCmd sAnim_Articuno_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(ArticunoGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS static const union AnimCmd sAnim_Zapdos_1[] = { ANIMCMD_FRAME(1, 10), @@ -1698,6 +2233,12 @@ static const union AnimCmd sAnim_Zapdos_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(ZapdosGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES static const union AnimCmd sAnim_Moltres_1[] = { ANIMCMD_FRAME(1, 3), @@ -1735,6 +2276,12 @@ static const union AnimCmd sAnim_Moltres_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MoltresGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI static const union AnimCmd sAnim_Dratini_1[] = { ANIMCMD_FRAME(0, 15), @@ -1759,7 +2306,9 @@ static const union AnimCmd sAnim_Dragonite_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_DRATINI +#if P_FAMILY_MEWTWO static const union AnimCmd sAnim_Mewtwo_1[] = { ANIMCMD_FRAME(1, 15), @@ -1767,6 +2316,16 @@ static const union AnimCmd sAnim_Mewtwo_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(MewtwoMegaX); +#endif //P_MEGA_EVOLUTIONS + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(MewtwoMegaY); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW static const union AnimCmd sAnim_Mew_1[] = { ANIMCMD_FRAME(1, 50), @@ -1774,7 +2333,9 @@ static const union AnimCmd sAnim_Mew_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_MEW +#if P_FAMILY_CHIKORITA static const union AnimCmd sAnim_Chikorita_1[] = { ANIMCMD_FRAME(0, 15), @@ -1796,7 +2357,9 @@ static const union AnimCmd sAnim_Meganium_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_CHIKORITA +#if P_FAMILY_CYNDAQUIL static const union AnimCmd sAnim_Cyndaquil_1[] = { ANIMCMD_FRAME(1, 10), @@ -1820,6 +2383,12 @@ static const union AnimCmd sAnim_Typhlosion_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(TyphlosionHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE static const union AnimCmd sAnim_Totodile_1[] = { ANIMCMD_FRAME(1, 8), @@ -1846,7 +2415,9 @@ static const union AnimCmd sAnim_Feraligatr_1[] = ANIMCMD_FRAME(0, 40), ANIMCMD_END, }; +#endif //P_FAMILY_TOTODILE +#if P_FAMILY_SENTRET static const union AnimCmd sAnim_Sentret_1[] = { ANIMCMD_FRAME(1, 15), @@ -1862,7 +2433,9 @@ static const union AnimCmd sAnim_Furret_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_SENTRET +#if P_FAMILY_HOOTHOOT static const union AnimCmd sAnim_Hoothoot_1[] = { ANIMCMD_FRAME(1, 7), @@ -1886,7 +2459,9 @@ static const union AnimCmd sAnim_Noctowl_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_HOOTHOOT +#if P_FAMILY_LEDYBA static const union AnimCmd sAnim_Ledyba_1[] = { ANIMCMD_FRAME(1, 10), @@ -1904,7 +2479,9 @@ static const union AnimCmd sAnim_Ledian_1[] = ANIMCMD_FRAME(0, 25), ANIMCMD_END, }; +#endif //P_FAMILY_LEDYBA +#if P_FAMILY_SPINARAK static const union AnimCmd sAnim_Spinarak_1[] = { ANIMCMD_FRAME(1, 6), @@ -1926,29 +2503,9 @@ static const union AnimCmd sAnim_Ariados_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SPINARAK -static const union AnimCmd sAnim_Crobat_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_END, -}; - +#if P_FAMILY_CHINCHOU static const union AnimCmd sAnim_Chinchou_1[] = { ANIMCMD_FRAME(0, 11), @@ -1959,15 +2516,6 @@ static const union AnimCmd sAnim_Chinchou_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Chinchou_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Lanturn_1[] = { ANIMCMD_FRAME(0, 11), @@ -1977,63 +2525,9 @@ static const union AnimCmd sAnim_Lanturn_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CHINCHOU -static const union AnimCmd sAnim_Lanturn_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Pichu_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Pichu_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cleffa_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Igglybuff_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Igglybuff_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_TOGEPI static const union AnimCmd sAnim_Togepi_1[] = { ANIMCMD_FRAME(1, 50), @@ -2050,6 +2544,22 @@ static const union AnimCmd sAnim_Togetic_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Togekiss_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU static const union AnimCmd sAnim_Natu_1[] = { ANIMCMD_FRAME(0, 15), @@ -2060,15 +2570,6 @@ static const union AnimCmd sAnim_Natu_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Natu_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Xatu_1[] = { ANIMCMD_FRAME(0, 15), @@ -2080,16 +2581,9 @@ static const union AnimCmd sAnim_Xatu_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_NATU -static const union AnimCmd sAnim_Xatu_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_MAREEP static const union AnimCmd sAnim_Mareep_1[] = { ANIMCMD_FRAME(1, 10), @@ -2119,26 +2613,25 @@ static const union AnimCmd sAnim_Ampharos_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Bellossom_1[] = +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AmpharosMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +static const union AnimCmd sAnim_Azurill_1[] = { - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), ANIMCMD_END, }; +#endif //P_GEN_3_CROSS_EVOS static const union AnimCmd sAnim_Marill_1[] = { @@ -2157,6 +2650,20 @@ static const union AnimCmd sAnim_Azumarill_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Bonsly_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS static const union AnimCmd sAnim_Sudowoodo_1[] = { @@ -2168,18 +2675,9 @@ static const union AnimCmd sAnim_Sudowoodo_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_SUDOWOODO -static const union AnimCmd sAnim_Politoed_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - +#if P_FAMILY_HOPPIP static const union AnimCmd sAnim_Hoppip_1[] = { ANIMCMD_FRAME(1, 25), @@ -2212,7 +2710,9 @@ static const union AnimCmd sAnim_Jumpluff_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_HOPPIP +#if P_FAMILY_AIPOM static const union AnimCmd sAnim_Aipom_1[] = { ANIMCMD_FRAME(1, 35), @@ -2220,6 +2720,18 @@ static const union AnimCmd sAnim_Aipom_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Ambipom_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN static const union AnimCmd sAnim_Sunkern_1[] = { ANIMCMD_FRAME(1, 8), @@ -2238,7 +2750,9 @@ static const union AnimCmd sAnim_Sunflora_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_SUNKERN +#if P_FAMILY_YANMA static const union AnimCmd sAnim_Yanma_1[] = { ANIMCMD_FRAME(1, 2), @@ -2266,6 +2780,41 @@ static const union AnimCmd sAnim_Yanma_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Yanmega_1[] = +{ + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 3), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER static const union AnimCmd sAnim_Wooper_1[] = { ANIMCMD_FRAME(0, 15), @@ -2281,21 +2830,13 @@ static const union AnimCmd sAnim_Quagsire_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Espeon_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Umbreon_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; +#if P_PALDEAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(WooperPaldean); +PLACEHOLDER_ANIM_SINGLE_FRAME(Clodsire); +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER +#if P_FAMILY_MURKROW static const union AnimCmd sAnim_Murkrow_1[] = { ANIMCMD_FRAME(1, 15), @@ -2303,14 +2844,19 @@ static const union AnimCmd sAnim_Murkrow_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Slowking_1[] = +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Honchkrow_1[] = { - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(0, 21), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW +#if P_FAMILY_MISDREAVUS static const union AnimCmd sAnim_Misdreavus_1[] = { ANIMCMD_FRAME(1, 10), @@ -2326,6 +2872,25 @@ static const union AnimCmd sAnim_Misdreavus_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Mismagius_1[] = +{ + ANIMCMD_FRAME(1, 10), + 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, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN static const union AnimCmd sAnim_Unown_1[] = { ANIMCMD_FRAME(0, 30), @@ -2333,6 +2898,20 @@ static const union AnimCmd sAnim_Unown_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +static const union AnimCmd sAnim_Wynaut_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_GEN_3_CROSS_EVOS static const union AnimCmd sAnim_Wobbuffet_1[] = { @@ -2343,17 +2922,9 @@ static const union AnimCmd sAnim_Wobbuffet_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_WOBBUFFET -static const union AnimCmd sAnim_Wobbuffet_2[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - +#if P_FAMILY_GIRAFARIG static const union AnimCmd sAnim_Girafarig_1[] = { ANIMCMD_FRAME(0, 30), @@ -2362,15 +2933,12 @@ static const union AnimCmd sAnim_Girafarig_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Girafarig_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Farigiraf); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG +#if P_FAMILY_PINECO static const union AnimCmd sAnim_Pineco_1[] = { ANIMCMD_FRAME(1, 10), @@ -2392,7 +2960,9 @@ static const union AnimCmd sAnim_Forretress_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_PINECO +#if P_FAMILY_DUNSPARCE static const union AnimCmd sAnim_Dunsparce_1[] = { ANIMCMD_FRAME(1, 10), @@ -2402,6 +2972,12 @@ static const union AnimCmd sAnim_Dunsparce_1[] = ANIMCMD_END, }; +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Dudunsparce); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR static const union AnimCmd sAnim_Gligar_1[] = { ANIMCMD_FRAME(1, 17), @@ -2409,16 +2985,19 @@ static const union AnimCmd sAnim_Gligar_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Steelix_1[] = +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Gliscor_1[] = { - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 21), - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 21), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 40), ANIMCMD_END, }; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR +#if P_FAMILY_SNUBBULL static const union AnimCmd sAnim_Snubbull_1[] = { ANIMCMD_FRAME(1, 32), @@ -2432,7 +3011,9 @@ static const union AnimCmd sAnim_Granbull_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_SNUBBULL +#if P_FAMILY_QWILFISH static const union AnimCmd sAnim_Qwilfish_1[] = { ANIMCMD_FRAME(1, 8), @@ -2445,13 +3026,13 @@ static const union AnimCmd sAnim_Qwilfish_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Scizor_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(QwilfishHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Overqwil); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH +#if P_FAMILY_SHUCKLE static const union AnimCmd sAnim_Shuckle_1[] = { ANIMCMD_FRAME(1, 50), @@ -2459,7 +3040,9 @@ static const union AnimCmd sAnim_Shuckle_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_SHUCKLE +#if P_FAMILY_HERACROSS static const union AnimCmd sAnim_Heracross_1[] = { ANIMCMD_FRAME(0, 15), @@ -2470,6 +3053,12 @@ static const union AnimCmd sAnim_Heracross_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(HeracrossMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL static const union AnimCmd sAnim_Sneasel_1[] = { ANIMCMD_FRAME(1, 8), @@ -2481,6 +3070,22 @@ static const union AnimCmd sAnim_Sneasel_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Weavile_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(SneaselHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sneasler); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA static const union AnimCmd sAnim_Teddiursa_1[] = { ANIMCMD_FRAME(1, 30), @@ -2495,6 +3100,13 @@ static const union AnimCmd sAnim_Ursaring_1[] = ANIMCMD_END, }; +#if P_GEN_8_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Ursaluna); +PLACEHOLDER_ANIM_SINGLE_FRAME(UrsalunaBloodmoon); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA static const union AnimCmd sAnim_Slugma_1[] = { ANIMCMD_FRAME(0, 10), @@ -2505,15 +3117,6 @@ static const union AnimCmd sAnim_Slugma_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Slugma_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Magcargo_1[] = { ANIMCMD_FRAME(0, 10), @@ -2523,16 +3126,9 @@ static const union AnimCmd sAnim_Magcargo_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SLUGMA -static const union AnimCmd sAnim_Magcargo_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_SWINUB static const union AnimCmd sAnim_Swinub_1[] = { ANIMCMD_FRAME(1, 10), @@ -2551,6 +3147,18 @@ static const union AnimCmd sAnim_Piloswine_1[] = ANIMCMD_END, }; +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Mamoswine_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 30), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA static const union AnimCmd sAnim_Corsola_1[] = { ANIMCMD_FRAME(0, 11), @@ -2561,15 +3169,13 @@ static const union AnimCmd sAnim_Corsola_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Corsola_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(CorsolaGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cursola); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA +#if P_FAMILY_REMORAID static const union AnimCmd sAnim_Remoraid_1[] = { ANIMCMD_FRAME(0, 30), @@ -2586,13 +3192,28 @@ static const union AnimCmd sAnim_Octillery_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_REMORAID +#if P_FAMILY_DELIBIRD static const union AnimCmd sAnim_Delibird_1[] = { ANIMCMD_FRAME(1, 15), ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Mantyke_1[] = +{ + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS static const union AnimCmd sAnim_Mantine_1[] = { @@ -2602,14 +3223,18 @@ static const union AnimCmd sAnim_Mantine_1[] = ANIMCMD_FRAME(0, 40), ANIMCMD_END, }; +#endif //P_FAMILY_MANTINE +#if P_FAMILY_SKARMORY static const union AnimCmd sAnim_Skarmory_1[] = { ANIMCMD_FRAME(1, 40), ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_SKARMORY +#if P_FAMILY_HOUNDOUR static const union AnimCmd sAnim_Houndour_1[] = { ANIMCMD_FRAME(1, 40), @@ -2624,25 +3249,12 @@ static const union AnimCmd sAnim_Houndoom_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Kingdra_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kingdra_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(HoundoomMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HOUNDOUR +#if P_FAMILY_PHANPY static const union AnimCmd sAnim_Phanpy_1[] = { ANIMCMD_FRAME(0, 15), @@ -2655,15 +3267,6 @@ static const union AnimCmd sAnim_Phanpy_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Phanpy_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Donphan_1[] = { ANIMCMD_FRAME(0, 10), @@ -2671,17 +3274,9 @@ static const union AnimCmd sAnim_Donphan_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_PHANPY -static const union AnimCmd sAnim_Porygon2_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - +#if P_FAMILY_STANTLER static const union AnimCmd sAnim_Stantler_1[] = { ANIMCMD_FRAME(1, 15), @@ -2689,6 +3284,12 @@ static const union AnimCmd sAnim_Stantler_1[] = ANIMCMD_END, }; +#if P_GEN_8_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Wyrdeer); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE static const union AnimCmd sAnim_Smeargle_1[] = { ANIMCMD_FRAME(1, 12), @@ -2697,69 +3298,18 @@ static const union AnimCmd sAnim_Smeargle_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SMEARGLE -static const union AnimCmd sAnim_Tyrogue_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Hitmontop_1[] = -{ - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_FRAME(1, 4), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Smoochum_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Elekid_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Magby_1[] = -{ - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - +#if P_FAMILY_MILTANK static const union AnimCmd sAnim_Miltank_1[] = { ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_MILTANK -static const union AnimCmd sAnim_Blissey_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - +#if P_FAMILY_RAIKOU static const union AnimCmd sAnim_Raikou_1[] = { ANIMCMD_FRAME(0, 1), @@ -2767,21 +3317,27 @@ static const union AnimCmd sAnim_Raikou_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_RAIKOU +#if P_FAMILY_ENTEI static const union AnimCmd sAnim_Entei_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_ENTEI +#if P_FAMILY_SUICUNE static const union AnimCmd sAnim_Suicune_1[] = { ANIMCMD_FRAME(1, 40), ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_SUICUNE +#if P_FAMILY_LARVITAR static const union AnimCmd sAnim_Larvitar_1[] = { ANIMCMD_FRAME(1, 10), @@ -2806,6 +3362,12 @@ static const union AnimCmd sAnim_Tyranitar_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(TyranitarMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA static const union AnimCmd sAnim_Lugia_1[] = { ANIMCMD_FRAME(1, 5), @@ -2822,14 +3384,18 @@ static const union AnimCmd sAnim_Lugia_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_LUGIA +#if P_FAMILY_HO_OH static const union AnimCmd sAnim_HoOh_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_HO_OH +#if P_FAMILY_CELEBI static const union AnimCmd sAnim_Celebi_1[] = { ANIMCMD_FRAME(1, 30), @@ -2838,15 +3404,9 @@ static const union AnimCmd sAnim_Celebi_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_CELEBI -static const union AnimCmd sAnim_OldUnownB_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - +#if P_FAMILY_TREECKO static const union AnimCmd sAnim_Treecko_1[] = { ANIMCMD_FRAME(0, 6), @@ -2875,6 +3435,12 @@ static const union AnimCmd sAnim_Sceptile_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(SceptileMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC static const union AnimCmd sAnim_Torchic_1[] = { ANIMCMD_FRAME(0, 7), @@ -2905,27 +3471,12 @@ static const union AnimCmd sAnim_Blaziken_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Blaziken_2[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Blaziken_3[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(2, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Blaziken_4[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(BlazikenMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP static const union AnimCmd sAnim_Mudkip_1[] = { ANIMCMD_FRAME(0, 10), @@ -2960,6 +3511,12 @@ static const union AnimCmd sAnim_Swampert_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(SwampertMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA static const union AnimCmd sAnim_Poochyena_1[] = { ANIMCMD_FRAME(0, 10), @@ -2977,7 +3534,9 @@ static const union AnimCmd sAnim_Mightyena_1[] = ANIMCMD_FRAME(0, 6), ANIMCMD_END, }; +#endif //P_FAMILY_POOCHYENA +#if P_FAMILY_ZIGZAGOON static const union AnimCmd sAnim_Zigzagoon_1[] = { ANIMCMD_FRAME(0, 27), @@ -2998,6 +3557,14 @@ static const union AnimCmd sAnim_Linoone_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(ZigzagoonGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(LinooneGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Obstagoon); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE static const union AnimCmd sAnim_Wurmple_1[] = { ANIMCMD_FRAME(0, 22), @@ -3014,12 +3581,6 @@ static const union AnimCmd sAnim_Silcoon_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Silcoon_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Beautifly_1[] = { ANIMCMD_FRAME(0, 2), @@ -3034,12 +3595,6 @@ static const union AnimCmd sAnim_Beautifly_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Beautifly_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Cascoon_1[] = { ANIMCMD_FRAME(0, 10), @@ -3050,12 +3605,6 @@ static const union AnimCmd sAnim_Cascoon_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Cascoon_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Dustox_1[] = { ANIMCMD_FRAME(0, 1), @@ -3075,13 +3624,9 @@ static const union AnimCmd sAnim_Dustox_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_WURMPLE -static const union AnimCmd sAnim_Dustox_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; - +#if P_FAMILY_LOTAD static const union AnimCmd sAnim_Lotad_1[] = { ANIMCMD_FRAME(0, 22), @@ -3111,7 +3656,9 @@ static const union AnimCmd sAnim_Ludicolo_1[] = ANIMCMD_FRAME(0, 22), ANIMCMD_END, }; +#endif //P_FAMILY_LOTAD +#if P_FAMILY_SEEDOT static const union AnimCmd sAnim_Seedot_1[] = { ANIMCMD_FRAME(0, 10), @@ -3147,7 +3694,191 @@ static const union AnimCmd sAnim_Shiftry_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SEEDOT +#if P_FAMILY_TAILLOW +static const union AnimCmd sAnim_Taillow_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + 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, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Swellow_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL +static const union AnimCmd sAnim_Wingull_1[] = +{ + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 23), + ANIMCMD_FRAME(0, 13), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Pelipper_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +static const union AnimCmd sAnim_Ralts_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Kirlia_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 39), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Gardevoir_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(GardevoirMega); +#endif //P_MEGA_EVOLUTIONS + +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Gallade_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(GalladeMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT +static const union AnimCmd sAnim_Surskit_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 8), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Masquerain_1[] = +{ + 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, +}; +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH +static const union AnimCmd sAnim_Shroomish_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Breloom_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 7), + ANIMCMD_END, +}; +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH +static const union AnimCmd sAnim_Slakoth_1[] = +{ + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Vigoroth_1[] = +{ + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 13), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Slaking_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA static const union AnimCmd sAnim_Nincada_1[] = { ANIMCMD_FRAME(0, 15), @@ -3190,123 +3921,365 @@ static const union AnimCmd sAnim_Shedinja_1[] = ANIMCMD_FRAME(0, 11), ANIMCMD_END, }; +#endif //P_FAMILY_NINCADA -static const union AnimCmd sAnim_Taillow_1[] = +#if P_FAMILY_WHISMUR +static const union AnimCmd sAnim_Whismur_1[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 15), - 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, 1), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), ANIMCMD_END, }; -static const union AnimCmd sAnim_Swellow_1[] = +static const union AnimCmd sAnim_Loudred_1[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 33), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Exploud_1[] = +{ + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA +static const union AnimCmd sAnim_Makuhita_1[] = +{ + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Hariyama_1[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS +static const union AnimCmd sAnim_Nosepass_1[] = +{ + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 27), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Probopass_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY +static const union AnimCmd sAnim_Skitty_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Delcatty_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 46), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +static const union AnimCmd sAnim_Sableye_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(SableyeMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +static const union AnimCmd sAnim_Mawile_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, 10), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(MawileMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON +static const union AnimCmd sAnim_Aron_1[] = +{ + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 33), + ANIMCMD_FRAME(1, 33), ANIMCMD_FRAME(0, 11), ANIMCMD_END, }; -static const union AnimCmd sAnim_Shroomish_1[] = +static const union AnimCmd sAnim_Lairon_1[] = { - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 29), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 29), + ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_Breloom_1[] = +static const union AnimCmd sAnim_Aggron_1[] = { - ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AggronMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE +static const union AnimCmd sAnim_Meditite_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 2), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Medicham_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(MedichamMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE +static const union AnimCmd sAnim_Electrike_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Manectric_1[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 33), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(ManectricMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE +static const union AnimCmd sAnim_Plusle_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN +static const union AnimCmd sAnim_Minun_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE +static const union AnimCmd sAnim_Volbeat_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Illumise_1[] = +{ + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 22), + ANIMCMD_FRAME(0, 11), + ANIMCMD_END, +}; +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Budew_1[] = +{ + ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS + +static const union AnimCmd sAnim_Roselia_1[] = +{ + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 22), + ANIMCMD_END, +}; + +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Roserade_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN +static const union AnimCmd sAnim_Gulpin_1[] = +{ + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 14), + ANIMCMD_FRAME(1, 14), + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Swalot_1[] = +{ + ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 7), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_GULPIN -static const union AnimCmd sAnim_Spinda_1[] = -{ - ANIMCMD_FRAME(0, 17), - ANIMCMD_FRAME(1, 23), - ANIMCMD_FRAME(0, 17), - ANIMCMD_FRAME(1, 23), - ANIMCMD_FRAME(0, 13), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Wingull_1[] = -{ - ANIMCMD_FRAME(0, 17), - ANIMCMD_FRAME(1, 23), - ANIMCMD_FRAME(0, 13), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Pelipper_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Surskit_1[] = +#if P_FAMILY_CARVANHA +static const union AnimCmd sAnim_Carvanha_1[] = { ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -static const union AnimCmd sAnim_Surskit_2[] = +static const union AnimCmd sAnim_Sharpedo_1[] = { - ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 22), ANIMCMD_END, }; -static const union AnimCmd sAnim_Masquerain_1[] = -{ - 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_Masquerain_2[] = -{ - ANIMCMD_FRAME(1, 1), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(SharpedoMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_CARVANHA +#if P_FAMILY_WAILMER static const union AnimCmd sAnim_Wailmer_1[] = { ANIMCMD_FRAME(0, 22), @@ -3326,34 +4299,100 @@ static const union AnimCmd sAnim_Wailord_1[] = ANIMCMD_FRAME(0, 33), ANIMCMD_END, }; +#endif //P_FAMILY_WAILMER -static const union AnimCmd sAnim_Skitty_1[] = +#if P_FAMILY_NUMEL +static const union AnimCmd sAnim_Numel_1[] = { ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 40), ANIMCMD_END, }; -static const union AnimCmd sAnim_Delcatty_1[] = +static const union AnimCmd sAnim_Camerupt_1[] = { - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 46), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kecleon_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; -static const union AnimCmd sAnim_Baltoy_1[] = +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(CameruptMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL +static const union AnimCmd sAnim_Torkoal_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK +static const union AnimCmd sAnim_Spoink_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 10), + 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, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Grumpig_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA +static const union AnimCmd sAnim_Spinda_1[] = +{ + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 23), + ANIMCMD_FRAME(0, 17), + ANIMCMD_FRAME(1, 23), + ANIMCMD_FRAME(0, 13), + ANIMCMD_END, +}; +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH +static const union AnimCmd sAnim_Trapinch_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Vibrava_1[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(1, 15), @@ -3365,8 +4404,26 @@ static const union AnimCmd sAnim_Baltoy_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Claydol_1[] = +static const union AnimCmd sAnim_Flygon_1[] = { + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA +static const union AnimCmd sAnim_Cacnea_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(1, 15), ANIMCMD_FRAME(0, 15), @@ -3377,19 +4434,7 @@ static const union AnimCmd sAnim_Claydol_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Nosepass_1[] = -{ - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 27), - ANIMCMD_FRAME(1, 27), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Torkoal_1[] = +static const union AnimCmd sAnim_Cacturne_1[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_FRAME(1, 15), @@ -3398,9 +4443,13 @@ static const union AnimCmd sAnim_Torkoal_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_CACNEA -static const union AnimCmd sAnim_Sableye_1[] = +#if P_FAMILY_SWABLU +static const union AnimCmd sAnim_Swablu_1[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(0, 10), @@ -3409,6 +4458,74 @@ static const union AnimCmd sAnim_Sableye_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_Altaria_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AltariaMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE +static const union AnimCmd sAnim_Zangoose_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER +static const union AnimCmd sAnim_Seviper_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE +static const union AnimCmd sAnim_Lunatone_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK +static const union AnimCmd sAnim_Solrock_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH static const union AnimCmd sAnim_Barboach_1[] = { ANIMCMD_FRAME(0, 15), @@ -3444,17 +4561,9 @@ static const union AnimCmd sAnim_Whiscash_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_BARBOACH -static const union AnimCmd sAnim_Luvdisc_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - +#if P_FAMILY_CORPHISH static const union AnimCmd sAnim_Corphish_1[] = { ANIMCMD_FRAME(0, 15), @@ -3476,7 +4585,83 @@ static const union AnimCmd sAnim_Crawdaunt_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_CORPHISH +#if P_FAMILY_BALTOY +static const union AnimCmd sAnim_Baltoy_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 50), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Claydol_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP +static const union AnimCmd sAnim_Lileep_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Cradily_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH +static const union AnimCmd sAnim_Anorith_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Armaldo_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS static const union AnimCmd sAnim_Feebas_1[] = { ANIMCMD_FRAME(0, 15), @@ -3501,643 +4686,6 @@ static const union AnimCmd sAnim_Milotic_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Carvanha_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sharpedo_1[] = -{ - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Trapinch_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Vibrava_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Flygon_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Makuhita_1[] = -{ - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 7), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Hariyama_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Electrike_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 17), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Manectric_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Numel_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 40), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Camerupt_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Spheal_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 43), - ANIMCMD_FRAME(1, 60), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sealeo_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Walrein_1[] = -{ - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cacnea_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cacturne_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Snorunt_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Glalie_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Lunatone_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Lunatone_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Solrock_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Solrock_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Azurill_1[] = -{ - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Spoink_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 10), - 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, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Grumpig_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Plusle_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Minun_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Mawile_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, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Meditite_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Medicham_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Swablu_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Swablu_2[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(2, 8), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Altaria_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Altaria_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Wynaut_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Duskull_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dusclops_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Roselia_1[] = -{ - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Slakoth_1[] = -{ - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Vigoroth_1[] = -{ - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 13), - ANIMCMD_FRAME(1, 7), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Slaking_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Gulpin_1[] = -{ - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 14), - ANIMCMD_FRAME(1, 14), - ANIMCMD_FRAME(0, 4), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Swalot_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Tropius_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Whismur_1[] = -{ - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Loudred_1[] = -{ - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 33), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Exploud_1[] = -{ - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 9), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Clamperl_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Huntail_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Gorebyss_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Absol_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Shuppet_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Banette_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Seviper_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Zangoose_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Relicanth_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Aron_1[] = -{ - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Lairon_1[] = -{ - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 29), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 29), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Aggron_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_CastformNormal_1[] = { ANIMCMD_FRAME(0, 12), @@ -4179,97 +4727,276 @@ static const union AnimCmd sAnim_CastformSnowy_1[] = ANIMCMD_FRAME(0, 12), ANIMCMD_END, }; +#endif //P_FAMILY_FEEBAS -static const union AnimCmd sAnim_Volbeat_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 11), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Illumise_1[] = -{ - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 22), - ANIMCMD_FRAME(0, 11), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Lileep_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cradily_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Anorith_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Armaldo_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Ralts_1[] = -{ - ANIMCMD_FRAME(0, 8), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 8), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kirlia_1[] = +#if P_FAMILY_KECLEON +static const union AnimCmd sAnim_Kecleon_1[] = { ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 39), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET +static const union AnimCmd sAnim_Shuppet_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; -static const union AnimCmd sAnim_Gardevoir_1[] = +static const union AnimCmd sAnim_Banette_1[] = { + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(BanetteMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL +static const union AnimCmd sAnim_Duskull_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Dusclops_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Dusknoir_1[] = +{ + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 9), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS +static const union AnimCmd sAnim_Tropius_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Chingling_1[] = +{ + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 12), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS + +static const union AnimCmd sAnim_Chimecho_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +static const union AnimCmd sAnim_Absol_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AbsolMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const union AnimCmd sAnim_Snorunt_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Glalie_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(GlalieMega); +#endif //P_MEGA_EVOLUTIONS + +#if P_GEN_4_CROSS_EVOS +static const union AnimCmd sAnim_Froslass_1[] = +{ + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL +static const union AnimCmd sAnim_Spheal_1[] = +{ + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 43), + ANIMCMD_FRAME(1, 60), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Sealeo_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Walrein_1[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL +static const union AnimCmd sAnim_Clamperl_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Huntail_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_Gorebyss_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH +static const union AnimCmd sAnim_Relicanth_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC +static const union AnimCmd sAnim_Luvdisc_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON static const union AnimCmd sAnim_Bagon_1[] = { ANIMCMD_FRAME(0, 15), @@ -4300,6 +5027,12 @@ static const union AnimCmd sAnim_Salamence_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(SalamenceMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM static const union AnimCmd sAnim_Beldum_1[] = { ANIMCMD_FRAME(0, 10), @@ -4330,6 +5063,12 @@ static const union AnimCmd sAnim_Metagross_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(MetagrossMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK static const union AnimCmd sAnim_Regirock_1[] = { ANIMCMD_FRAME(0, 10), @@ -4339,16 +5078,9 @@ static const union AnimCmd sAnim_Regirock_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_REGIROCK -static const union AnimCmd sAnim_Regirock_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_REGICE static const union AnimCmd sAnim_Regice_1[] = { ANIMCMD_FRAME(0, 20), @@ -4358,7 +5090,9 @@ static const union AnimCmd sAnim_Regice_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_REGICE +#if P_FAMILY_REGISTEEL static const union AnimCmd sAnim_Registeel_1[] = { ANIMCMD_FRAME(0, 10), @@ -4368,73 +5102,9 @@ static const union AnimCmd sAnim_Registeel_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_REGISTEEL -static const union AnimCmd sAnim_Registeel_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kyogre_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kyogre_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Groudon_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Groudon_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Rayquaza_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 8), - ANIMCMD_FRAME(0, 22), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(0, 6), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Rayquaza_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_LATIAS static const union AnimCmd sAnim_Latias_1[] = { ANIMCMD_FRAME(0, 10), @@ -4445,15 +5115,12 @@ static const union AnimCmd sAnim_Latias_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Latias_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(LatiasMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIAS +#if P_FAMILY_LATIOS static const union AnimCmd sAnim_Latios_1[] = { ANIMCMD_FRAME(0, 10), @@ -4464,15 +5131,60 @@ static const union AnimCmd sAnim_Latios_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Latios_2[] = +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(LatiosMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +static const union AnimCmd sAnim_Kyogre_1[] = { - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#if P_PRIMAL_REVERSIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(KyogrePrimal); +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +static const union AnimCmd sAnim_Groudon_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +#if P_PRIMAL_REVERSIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(GroudonPrimal); +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +static const union AnimCmd sAnim_Rayquaza_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 22), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(0, 6), + ANIMCMD_END, +}; + +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(RayquazaMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI static const union AnimCmd sAnim_Jirachi_1[] = { ANIMCMD_FRAME(0, 10), @@ -4487,16 +5199,9 @@ static const union AnimCmd sAnim_Jirachi_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_JIRACHI -static const union AnimCmd sAnim_Jirachi_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_DEOXYS static const union AnimCmd sAnim_DeoxysNormal_1[] = { ANIMCMD_FRAME(0, 16), @@ -4507,246 +5212,38 @@ static const union AnimCmd sAnim_DeoxysNormal_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Chimecho_1[] = +static const union AnimCmd sAnim_DeoxysAttack_1[] = { - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 26), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -static const union AnimCmd sAnim_Egg_1[] = +static const union AnimCmd sAnim_DeoxysDefense_1[] = { - ANIMCMD_FRAME(0, 6), - ANIMCMD_FRAME(1, 6), - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 26), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -static const union AnimCmd sAnim_UnownB_1[] = +static const union AnimCmd sAnim_DeoxysSpeed_1[] = { - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 16), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 26), + ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; +#endif //P_FAMILY_DEOXYS -static const union AnimCmd sAnim_UnownC_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownD_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownE_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownF_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownG_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownH_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownI_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownJ_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownK_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownL_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownM_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownN_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownO_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownP_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownQ_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownR_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownS_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownT_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownU_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownV_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownW_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownX_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownY_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownZ_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownEMark_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UnownQMark_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -#if P_GEN_4_POKEMON == TRUE +#if P_FAMILY_TURTWIG static const union AnimCmd sAnim_Turtwig_1[] = { ANIMCMD_FRAME(0, 15), @@ -4769,7 +5266,9 @@ static const union AnimCmd sAnim_Torterra_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_TURTWIG +#if P_FAMILY_CHIMCHAR static const union AnimCmd sAnim_Chimchar_1[] = { ANIMCMD_FRAME(1, 8), @@ -4798,7 +5297,9 @@ static const union AnimCmd sAnim_Infernape_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CHIMCHAR +#if P_FAMILY_PIPLUP static const union AnimCmd sAnim_Piplup_1[] = { ANIMCMD_FRAME(0, 30), @@ -4828,7 +5329,9 @@ static const union AnimCmd sAnim_Empoleon_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_PIPLUP +#if P_FAMILY_STARLY static const union AnimCmd sAnim_Starly_1[] = { ANIMCMD_FRAME(0, 5), @@ -4852,7 +5355,9 @@ static const union AnimCmd sAnim_Staraptor_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_STARLY +#if P_FAMILY_BIDOOF static const union AnimCmd sAnim_Bidoof_1[] = { ANIMCMD_FRAME(0, 5), @@ -4874,16 +5379,9 @@ static const union AnimCmd sAnim_Bibarel_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_BIDOOF -static const union AnimCmd sAnim_Bibarel_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_KRICKETOT static const union AnimCmd sAnim_Kricketot_1[] = { ANIMCMD_FRAME(0, 5), @@ -4916,7 +5414,9 @@ static const union AnimCmd sAnim_Kricketune_1[] = ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; +#endif //P_FAMILY_KRICKETOT +#if P_FAMILY_SHINX static const union AnimCmd sAnim_Shinx_1[] = { ANIMCMD_FRAME(0, 20), @@ -4941,31 +5441,9 @@ static const union AnimCmd sAnim_Luxray_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_SHINX -static const union AnimCmd sAnim_Luxray_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Budew_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Roserade_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_CRANIDOS static const union AnimCmd sAnim_Cranidos_1[] = { ANIMCMD_FRAME(1, 32), @@ -4982,7 +5460,9 @@ static const union AnimCmd sAnim_Rampardos_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_CRANIDOS +#if P_FAMILY_SHIELDON static const union AnimCmd sAnim_Shieldon_1[] = { ANIMCMD_FRAME(0, 20), @@ -4998,7 +5478,9 @@ static const union AnimCmd sAnim_Bastiodon_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_SHIELDON +#if P_FAMILY_BURMY static const union AnimCmd sAnim_Burmy_1[] = { ANIMCMD_FRAME(1, 32), @@ -5033,7 +5515,9 @@ static const union AnimCmd sAnim_Mothim_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_BURMY +#if P_FAMILY_COMBEE static const union AnimCmd sAnim_Combee_1[] = { ANIMCMD_FRAME(0, 10), @@ -5059,7 +5543,9 @@ static const union AnimCmd sAnim_Vespiquen_1[] = ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_COMBEE +#if P_FAMILY_PACHIRISU static const union AnimCmd sAnim_Pachirisu_1[] = { ANIMCMD_FRAME(0, 5), @@ -5073,7 +5559,9 @@ static const union AnimCmd sAnim_Pachirisu_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_PACHIRISU +#if P_FAMILY_BUIZEL static const union AnimCmd sAnim_Buizel_1[] = { ANIMCMD_FRAME(0, 12), @@ -5092,7 +5580,9 @@ static const union AnimCmd sAnim_Floatzel_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_BUIZEL +#if P_FAMILY_CHERUBI static const union AnimCmd sAnim_Cherubi_1[] = { ANIMCMD_FRAME(0, 5), @@ -5117,15 +5607,6 @@ static const union AnimCmd sAnim_CherrimOvercast_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_CherrimOvercast_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_CherrimSunshine_1[] = { ANIMCMD_FRAME(1, 6), @@ -5136,7 +5617,9 @@ static const union AnimCmd sAnim_CherrimSunshine_1[] = ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_SHELLOS static const union AnimCmd sAnim_Shellos_1[] = { ANIMCMD_FRAME(0, 1), @@ -5155,15 +5638,9 @@ static const union AnimCmd sAnim_Gastrodon_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_SHELLOS -static const union AnimCmd sAnim_Ambipom_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - +#if P_FAMILY_DRIFLOON static const union AnimCmd sAnim_Drifloon_1[] = { ANIMCMD_FRAME(1, 25), @@ -5183,7 +5660,9 @@ static const union AnimCmd sAnim_Drifblim_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_DRIFLOON +#if P_FAMILY_BUNEARY static const union AnimCmd sAnim_Buneary_1[] = { ANIMCMD_FRAME(1, 35), @@ -5199,30 +5678,12 @@ static const union AnimCmd sAnim_Lopunny_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Mismagius_1[] = -{ - ANIMCMD_FRAME(1, 10), - 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, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Honchkrow_1[] = -{ - ANIMCMD_FRAME(0, 21), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(LopunnyMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BUNEARY +#if P_FAMILY_GLAMEOW static const union AnimCmd sAnim_Glameow_1[] = { ANIMCMD_FRAME(0, 12), @@ -5242,20 +5703,9 @@ static const union AnimCmd sAnim_Purugly_1[] = ANIMCMD_FRAME(0, 50), ANIMCMD_END, }; +#endif //P_FAMILY_GLAMEOW -static const union AnimCmd sAnim_Chingling_1[] = -{ - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 12), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - +#if P_FAMILY_STUNKY static const union AnimCmd sAnim_Stunky_1[] = { ANIMCMD_FRAME(0, 15), @@ -5273,7 +5723,9 @@ static const union AnimCmd sAnim_Skuntank_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_STUNKY +#if P_FAMILY_BRONZOR static const union AnimCmd sAnim_Bronzor_1[] = { ANIMCMD_FRAME(1, 9), @@ -5298,45 +5750,9 @@ static const union AnimCmd sAnim_Bronzong_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_BRONZOR -static const union AnimCmd sAnim_Bronzong_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Bonsly_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MimeJr_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Happiny_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_CHATOT static const union AnimCmd sAnim_Chatot_1[] = { ANIMCMD_FRAME(0, 5), @@ -5363,7 +5779,9 @@ static const union AnimCmd sAnim_Spiritomb_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CHATOT +#if P_FAMILY_GIBLE static const union AnimCmd sAnim_Gible_1[] = { ANIMCMD_FRAME(0, 20), @@ -5390,14 +5808,12 @@ static const union AnimCmd sAnim_Garchomp_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Munchlax_1[] = -{ - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(GarchompMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_GIBLE +#if P_FAMILY_RIOLU static const union AnimCmd sAnim_Riolu_1[] = { ANIMCMD_FRAME(0, 3), @@ -5414,6 +5830,12 @@ static const union AnimCmd sAnim_Lucario_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(LucarioMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS static const union AnimCmd sAnim_Hippopotas_1[] = { ANIMCMD_FRAME(0, 1), @@ -5428,7 +5850,9 @@ static const union AnimCmd sAnim_Hippowdon_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_HIPPOPOTAS +#if P_FAMILY_SKORUPI static const union AnimCmd sAnim_Skorupi_1[] = { ANIMCMD_FRAME(1, 5), @@ -5463,7 +5887,9 @@ static const union AnimCmd sAnim_Drapion_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_SKORUPI +#if P_FAMILY_CROAGUNK static const union AnimCmd sAnim_Croagunk_1[] = { ANIMCMD_FRAME(0, 3), @@ -5482,7 +5908,9 @@ static const union AnimCmd sAnim_Toxicroak_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CROAGUNK +#if P_FAMILY_CARNIVINE static const union AnimCmd sAnim_Carnivine_1[] = { ANIMCMD_FRAME(1, 5), @@ -5499,7 +5927,9 @@ static const union AnimCmd sAnim_Carnivine_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_CARNIVINE +#if P_FAMILY_FINNEON static const union AnimCmd sAnim_Finneon_1[] = { ANIMCMD_FRAME(1, 12), @@ -5523,16 +5953,9 @@ static const union AnimCmd sAnim_Lumineon_1[] = ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_FINNEON -static const union AnimCmd sAnim_Mantyke_1[] = -{ - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - +#if P_FAMILY_SNOVER static const union AnimCmd sAnim_Snover_1[] = { ANIMCMD_FRAME(0, 5), @@ -5549,208 +5972,12 @@ static const union AnimCmd sAnim_Abomasnow_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Weavile_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Magnezone_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Lickilicky_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 50), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Rhyperior_1[] = -{ - ANIMCMD_FRAME(0, 50), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Tangrowth_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Electivire_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Magmortar_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Togekiss_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Yanmega_1[] = -{ - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 3), - ANIMCMD_FRAME(0, 3), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Leafeon_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Glaceon_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 36), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Gliscor_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 40), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Mamoswine_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 30), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PORYGON_Z_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 40), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Gallade_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Probopass_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Probopass_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dusknoir_1[] = -{ - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(0, 9), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Froslass_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AbomasnowMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SNOVER +#if P_FAMILY_ROTOM static const union AnimCmd sAnim_Rotom_1[] = { ANIMCMD_FRAME(0, 15), @@ -5761,15 +5988,6 @@ static const union AnimCmd sAnim_Rotom_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Rotom_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_RotomHeat_1[] = { ANIMCMD_FRAME(0, 30), @@ -5833,7 +6051,9 @@ static const union AnimCmd sAnim_RotomMow_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_ROTOM +#if P_FAMILY_UXIE static const union AnimCmd sAnim_Uxie_1[] = { ANIMCMD_FRAME(1, 50), @@ -5841,7 +6061,9 @@ static const union AnimCmd sAnim_Uxie_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_UXIE +#if P_FAMILY_MESPRIT static const union AnimCmd sAnim_Mesprit_1[] = { ANIMCMD_FRAME(1, 12), @@ -5854,7 +6076,9 @@ static const union AnimCmd sAnim_Mesprit_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_MESPRIT +#if P_FAMILY_AZELF static const union AnimCmd sAnim_Azelf_1[] = { ANIMCMD_FRAME(1, 50), @@ -5862,7 +6086,9 @@ static const union AnimCmd sAnim_Azelf_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_AZELF +#if P_FAMILY_DIALGA static const union AnimCmd sAnim_Dialga_1[] = { ANIMCMD_FRAME(1, 40), @@ -5870,6 +6096,10 @@ static const union AnimCmd sAnim_Dialga_1[] = ANIMCMD_END, }; +PLACEHOLDER_ANIM_SINGLE_FRAME(DialgaOrigin); +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA static const union AnimCmd sAnim_Palkia_1[] = { ANIMCMD_FRAME(1, 20), @@ -5877,6 +6107,10 @@ static const union AnimCmd sAnim_Palkia_1[] = ANIMCMD_END, }; +PLACEHOLDER_ANIM_SINGLE_FRAME(PalkiaOrigin); +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN static const union AnimCmd sAnim_Heatran_1[] = { ANIMCMD_FRAME(1, 50), @@ -5884,7 +6118,9 @@ static const union AnimCmd sAnim_Heatran_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_HEATRAN +#if P_FAMILY_REGIGIGAS static const union AnimCmd sAnim_Regigigas_1[] = { ANIMCMD_FRAME(1, 40), @@ -5900,6 +6136,18 @@ static const union AnimCmd sAnim_GiratinaAltered_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_GiratinaOrigin_1[] = +{ + ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_CRESSELIA static const union AnimCmd sAnim_Cresselia_1[] = { ANIMCMD_FRAME(1, 15), @@ -5910,7 +6158,9 @@ static const union AnimCmd sAnim_Cresselia_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_CRESSELIA +#if P_FAMILY_MANAPHY static const union AnimCmd sAnim_Phione_1[] = { ANIMCMD_FRAME(0, 20), @@ -5926,7 +6176,9 @@ static const union AnimCmd sAnim_Manaphy_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_MANAPHY +#if P_FAMILY_DARKRAI static const union AnimCmd sAnim_Darkrai_1[] = { ANIMCMD_FRAME(1, 50), @@ -5934,7 +6186,9 @@ static const union AnimCmd sAnim_Darkrai_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_DARKRAI +#if P_FAMILY_SHAYMIN static const union AnimCmd sAnim_ShayminLand_1[] = { ANIMCMD_FRAME(0, 20), @@ -5943,6 +6197,16 @@ static const union AnimCmd sAnim_ShayminLand_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_ShayminSky_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 36), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS static const union AnimCmd sAnim_Arceus_1[] = { ANIMCMD_FRAME(0, 12), @@ -5950,8 +6214,9 @@ static const union AnimCmd sAnim_Arceus_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; -#endif -#if P_GEN_5_POKEMON == TRUE +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI static const union AnimCmd sAnim_Victini_1[] = { ANIMCMD_FRAME(0, 2), @@ -5959,7 +6224,9 @@ static const union AnimCmd sAnim_Victini_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_VICTINI +#if P_FAMILY_SNIVY static const union AnimCmd sAnim_Snivy_1[] = { ANIMCMD_FRAME(0, 1), @@ -5989,16 +6256,9 @@ static const union AnimCmd sAnim_Serperior_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SNIVY -static const union AnimCmd sAnim_Serperior_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_TEPIG static const union AnimCmd sAnim_Tepig_1[] = { ANIMCMD_FRAME(0, 27), @@ -6043,7 +6303,9 @@ static const union AnimCmd sAnim_Emboar_1[] = ANIMCMD_FRAME(0, 4), ANIMCMD_END, }; +#endif //P_FAMILY_TEPIG +#if P_FAMILY_OSHAWOTT static const union AnimCmd sAnim_Oshawott_1[] = { ANIMCMD_FRAME(0, 13), @@ -6073,6 +6335,12 @@ static const union AnimCmd sAnim_Samurott_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(SamurottHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT static const union AnimCmd sAnim_Patrat_1[] = { ANIMCMD_FRAME(1, 32), @@ -6091,7 +6359,9 @@ static const union AnimCmd sAnim_Watchog_1[] = ANIMCMD_FRAME(0, 50), ANIMCMD_END, }; +#endif //P_FAMILY_PATRAT +#if P_FAMILY_LILLIPUP static const union AnimCmd sAnim_Lillipup_1[] = { ANIMCMD_FRAME(0, 13), @@ -6124,7 +6394,9 @@ static const union AnimCmd sAnim_Stoutland_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_LILLIPUP +#if P_FAMILY_PURRLOIN static const union AnimCmd sAnim_Purrloin_1[] = { ANIMCMD_FRAME(0, 9), @@ -6140,7 +6412,9 @@ static const union AnimCmd sAnim_Liepard_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_PURRLOIN +#if P_FAMILY_PANSAGE static const union AnimCmd sAnim_Pansage_1[] = { ANIMCMD_FRAME(0, 10), @@ -6158,7 +6432,9 @@ static const union AnimCmd sAnim_Simisage_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_PANSAGE +#if P_FAMILY_PANSEAR static const union AnimCmd sAnim_Pansear_1[] = { ANIMCMD_FRAME(1, 32), @@ -6175,16 +6451,9 @@ static const union AnimCmd sAnim_Simisear_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_PANSEAR -static const union AnimCmd sAnim_Simisear_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_PANPOUR static const union AnimCmd sAnim_Panpour_1[] = { ANIMCMD_FRAME(0, 12), @@ -6199,7 +6468,9 @@ static const union AnimCmd sAnim_Simipour_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_PANPOUR +#if P_FAMILY_MUNNA static const union AnimCmd sAnim_Munna_1[] = { ANIMCMD_FRAME(1, 12), @@ -6222,16 +6493,9 @@ static const union AnimCmd sAnim_Musharna_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_MUNNA -static const union AnimCmd sAnim_Musharna_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_PIDOVE static const union AnimCmd sAnim_Pidove_1[] = { ANIMCMD_FRAME(0, 2), @@ -6255,7 +6519,9 @@ static const union AnimCmd sAnim_Unfezant_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_PIDOVE +#if P_FAMILY_BLITZLE static const union AnimCmd sAnim_Blitzle_1[] = { ANIMCMD_FRAME(1, 8), @@ -6274,7 +6540,9 @@ static const union AnimCmd sAnim_Zebstrika_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_BLITZLE +#if P_FAMILY_ROGGENROLA static const union AnimCmd sAnim_Roggenrola_1[] = { ANIMCMD_FRAME(0, 20), @@ -6301,7 +6569,9 @@ static const union AnimCmd sAnim_Gigalith_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_ROGGENROLA +#if P_FAMILY_WOOBAT static const union AnimCmd sAnim_Woobat_1[] = { ANIMCMD_FRAME(0, 5), @@ -6336,7 +6606,9 @@ static const union AnimCmd sAnim_Swoobat_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_WOOBAT +#if P_FAMILY_DRILBUR static const union AnimCmd sAnim_Drilbur_1[] = { ANIMCMD_FRAME(0, 10), @@ -6347,15 +6619,6 @@ static const union AnimCmd sAnim_Drilbur_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Drilbur_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Excadrill_1[] = { ANIMCMD_FRAME(1, 10), @@ -6364,7 +6627,9 @@ static const union AnimCmd sAnim_Excadrill_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_DRILBUR +#if P_FAMILY_AUDINO static const union AnimCmd sAnim_Audino_1[] = { ANIMCMD_FRAME(0, 1), @@ -6373,6 +6638,12 @@ static const union AnimCmd sAnim_Audino_1[] = ANIMCMD_END, }; +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(AudinoMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR static const union AnimCmd sAnim_Timburr_1[] = { ANIMCMD_FRAME(0, 20), @@ -6399,7 +6670,9 @@ static const union AnimCmd sAnim_Conkeldurr_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_TIMBURR +#if P_FAMILY_TYMPOLE static const union AnimCmd sAnim_Tympole_1[] = { ANIMCMD_FRAME(1, 35), @@ -6428,7 +6701,9 @@ static const union AnimCmd sAnim_Seismitoad_1[] = ANIMCMD_FRAME(0, 11), ANIMCMD_END, }; +#endif //P_FAMILY_TYMPOLE +#if P_FAMILY_THROH static const union AnimCmd sAnim_Throh_1[] = { ANIMCMD_FRAME(1, 10), @@ -6437,14 +6712,18 @@ static const union AnimCmd sAnim_Throh_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_THROH +#if P_FAMILY_SAWK static const union AnimCmd sAnim_Sawk_1[] = { ANIMCMD_FRAME(1, 45), ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SAWK +#if P_FAMILY_SEWADDLE static const union AnimCmd sAnim_Sewaddle_1[] = { ANIMCMD_FRAME(0, 11), @@ -6455,15 +6734,6 @@ static const union AnimCmd sAnim_Sewaddle_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Sewaddle_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Swadloon_1[] = { ANIMCMD_FRAME(1, 10), @@ -6480,7 +6750,9 @@ static const union AnimCmd sAnim_Leavanny_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_SEWADDLE +#if P_FAMILY_VENIPEDE static const union AnimCmd sAnim_Venipede_1[] = { ANIMCMD_FRAME(0, 5), @@ -6510,7 +6782,9 @@ static const union AnimCmd sAnim_Scolipede_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_VENIPEDE +#if P_FAMILY_COTTONEE static const union AnimCmd sAnim_Cottonee_1[] = { ANIMCMD_FRAME(0, 5), @@ -6532,7 +6806,9 @@ static const union AnimCmd sAnim_Whimsicott_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_COTTONEE +#if P_FAMILY_PETILIL static const union AnimCmd sAnim_Petilil_1[] = { ANIMCMD_FRAME(0, 10), @@ -6551,6 +6827,12 @@ static const union AnimCmd sAnim_Lilligant_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(LilligantHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN static const union AnimCmd sAnim_Basculin_1[] = { ANIMCMD_FRAME(1, 8), @@ -6562,6 +6844,12 @@ static const union AnimCmd sAnim_Basculin_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(Basculegion); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE static const union AnimCmd sAnim_Sandile_1[] = { ANIMCMD_FRAME(0, 20), @@ -6586,16 +6874,9 @@ static const union AnimCmd sAnim_Krookodile_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SANDILE -static const union AnimCmd sAnim_Krookodile_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_DARUMAKA static const union AnimCmd sAnim_Darumaka_1[] = { ANIMCMD_FRAME(1, 50), @@ -6613,6 +6894,21 @@ static const union AnimCmd sAnim_DarmanitanStandardMode_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_DarmanitanZenMode_1[] = +{ + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 20), + ANIMCMD_END, +}; + +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(DarumakaGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarianStandardMode); +PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarianZenMode); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS static const union AnimCmd sAnim_Maractus_1[] = { ANIMCMD_FRAME(0, 10), @@ -6624,7 +6920,9 @@ static const union AnimCmd sAnim_Maractus_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_MARACTUS +#if P_FAMILY_DWEBBLE static const union AnimCmd sAnim_Dwebble_1[] = { ANIMCMD_FRAME(0, 5), @@ -6649,7 +6947,9 @@ static const union AnimCmd sAnim_Crustle_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_DWEBBLE +#if P_FAMILY_SCRAGGY static const union AnimCmd sAnim_Scraggy_1[] = { ANIMCMD_FRAME(0, 5), @@ -6665,7 +6965,9 @@ static const union AnimCmd sAnim_Scrafty_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SCRAGGY +#if P_FAMILY_SIGILYPH static const union AnimCmd sAnim_Sigilyph_1[] = { ANIMCMD_FRAME(1, 7), @@ -6678,7 +6980,9 @@ static const union AnimCmd sAnim_Sigilyph_1[] = ANIMCMD_FRAME(0, 7), ANIMCMD_END, }; +#endif //P_FAMILY_SIGILYPH +#if P_FAMILY_YAMASK static const union AnimCmd sAnim_Yamask_1[] = { ANIMCMD_FRAME(0, 10), @@ -6697,6 +7001,13 @@ static const union AnimCmd sAnim_Cofagrigus_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(YamaskGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Runerigus); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA static const union AnimCmd sAnim_Tirtouga_1[] = { ANIMCMD_FRAME(1, 30), @@ -6720,7 +7031,9 @@ static const union AnimCmd sAnim_Carracosta_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_TIRTOUGA +#if P_FAMILY_ARCHEN static const union AnimCmd sAnim_Archen_1[] = { ANIMCMD_FRAME(0, 2), @@ -6741,7 +7054,9 @@ static const union AnimCmd sAnim_Archeops_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_ARCHEN +#if P_FAMILY_TRUBBISH static const union AnimCmd sAnim_Trubbish_1[] = { ANIMCMD_FRAME(0, 15), @@ -6758,6 +7073,12 @@ static const union AnimCmd sAnim_Garbodor_1[] = ANIMCMD_END, }; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(GarbodorGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA static const union AnimCmd sAnim_Zorua_1[] = { ANIMCMD_FRAME(0, 15), @@ -6778,6 +7099,13 @@ static const union AnimCmd sAnim_Zoroark_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(ZoruaHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZoroarkHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO static const union AnimCmd sAnim_Minccino_1[] = { ANIMCMD_FRAME(0, 20), @@ -6795,7 +7123,9 @@ static const union AnimCmd sAnim_Cinccino_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_MINCCINO +#if P_FAMILY_GOTHITA static const union AnimCmd sAnim_Gothita_1[] = { ANIMCMD_FRAME(1, 10), @@ -6815,15 +7145,6 @@ static const union AnimCmd sAnim_Gothorita_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Gothorita_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Gothitelle_1[] = { ANIMCMD_FRAME(1, 10), @@ -6832,7 +7153,9 @@ static const union AnimCmd sAnim_Gothitelle_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_GOTHITA +#if P_FAMILY_SOLOSIS static const union AnimCmd sAnim_Solosis_1[] = { ANIMCMD_FRAME(1, 5), @@ -6860,7 +7183,9 @@ static const union AnimCmd sAnim_Reuniclus_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SOLOSIS +#if P_FAMILY_DUCKLETT static const union AnimCmd sAnim_Ducklett_1[] = { ANIMCMD_FRAME(0, 15), @@ -6879,7 +7204,9 @@ static const union AnimCmd sAnim_Swanna_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_DUCKLETT +#if P_FAMILY_VANILLITE static const union AnimCmd sAnim_Vanillite_1[] = { ANIMCMD_FRAME(0, 10), @@ -6905,7 +7232,9 @@ static const union AnimCmd sAnim_Vanilluxe_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_VANILLITE +#if P_FAMILY_DEERLING static const union AnimCmd sAnim_Deerling_1[] = { ANIMCMD_FRAME(1, 15), @@ -6920,7 +7249,9 @@ static const union AnimCmd sAnim_Sawsbuck_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_DEERLING +#if P_FAMILY_EMOLGA static const union AnimCmd sAnim_Emolga_1[] = { ANIMCMD_FRAME(0, 21), @@ -6929,7 +7260,9 @@ static const union AnimCmd sAnim_Emolga_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_EMOLGA +#if P_FAMILY_KARRABLAST static const union AnimCmd sAnim_Karrablast_1[] = { ANIMCMD_FRAME(1, 32), @@ -6944,7 +7277,9 @@ static const union AnimCmd sAnim_Escavalier_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_KARRABLAST +#if P_FAMILY_FOONGUS static const union AnimCmd sAnim_Foongus_1[] = { ANIMCMD_FRAME(0, 15), @@ -6955,15 +7290,6 @@ static const union AnimCmd sAnim_Foongus_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Foongus_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Amoonguss_1[] = { ANIMCMD_FRAME(1, 8), @@ -6974,7 +7300,9 @@ static const union AnimCmd sAnim_Amoonguss_1[] = ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_FOONGUS +#if P_FAMILY_FRILLISH static const union AnimCmd sAnim_Frillish_1[] = { ANIMCMD_FRAME(1, 30), @@ -6993,7 +7321,9 @@ static const union AnimCmd sAnim_Jellicent_1[] = ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_FRILLISH +#if P_FAMILY_ALOMOMOLA static const union AnimCmd sAnim_Alomomola_1[] = { ANIMCMD_FRAME(1, 50), @@ -7001,7 +7331,9 @@ static const union AnimCmd sAnim_Alomomola_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_ALOMOMOLA +#if P_FAMILY_JOLTIK static const union AnimCmd sAnim_Joltik_1[] = { ANIMCMD_FRAME(0, 15), @@ -7024,7 +7356,9 @@ static const union AnimCmd sAnim_Galvantula_1[] = ANIMCMD_FRAME(0, 6), ANIMCMD_END, }; +#endif //P_FAMILY_JOLTIK +#if P_FAMILY_FERROSEED static const union AnimCmd sAnim_Ferroseed_1[] = { ANIMCMD_FRAME(0, 5), @@ -7044,16 +7378,9 @@ static const union AnimCmd sAnim_Ferrothorn_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_FERROSEED -static const union AnimCmd sAnim_Ferrothorn_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_KLINK static const union AnimCmd sAnim_Klink_1[] = { ANIMCMD_FRAME(1, 10), @@ -7080,7 +7407,9 @@ static const union AnimCmd sAnim_Klinklang_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_KLINK +#if P_FAMILY_TYNAMO static const union AnimCmd sAnim_Tynamo_1[] = { ANIMCMD_FRAME(1, 5), @@ -7122,7 +7451,9 @@ static const union AnimCmd sAnim_Eelektross_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_TYNAMO +#if P_FAMILY_ELGYEM static const union AnimCmd sAnim_Elgyem_1[] = { ANIMCMD_FRAME(1, 12), @@ -7142,7 +7473,9 @@ static const union AnimCmd sAnim_Beheeyem_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_ELGYEM +#if P_FAMILY_LITWICK static const union AnimCmd sAnim_Litwick_1[] = { ANIMCMD_FRAME(1, 10), @@ -7168,7 +7501,9 @@ static const union AnimCmd sAnim_Chandelure_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_LITWICK +#if P_FAMILY_AXEW static const union AnimCmd sAnim_Axew_1[] = { ANIMCMD_FRAME(1, 40), @@ -7191,7 +7526,9 @@ static const union AnimCmd sAnim_Haxorus_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_AXEW +#if P_FAMILY_CUBCHOO static const union AnimCmd sAnim_Cubchoo_1[] = { ANIMCMD_FRAME(0, 20), @@ -7208,7 +7545,9 @@ static const union AnimCmd sAnim_Beartic_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CUBCHOO +#if P_FAMILY_CRYOGONAL static const union AnimCmd sAnim_Cryogonal_1[] = { ANIMCMD_FRAME(0, 11), @@ -7218,16 +7557,9 @@ static const union AnimCmd sAnim_Cryogonal_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CRYOGONAL -static const union AnimCmd sAnim_Cryogonal_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_SHELMET static const union AnimCmd sAnim_Shelmet_1[] = { ANIMCMD_FRAME(0, 15), @@ -7244,7 +7576,9 @@ static const union AnimCmd sAnim_Accelgor_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_SHELMET +#if P_FAMILY_STUNFISK static const union AnimCmd sAnim_Stunfisk_1[] = { ANIMCMD_FRAME(1, 40), @@ -7252,6 +7586,12 @@ static const union AnimCmd sAnim_Stunfisk_1[] = ANIMCMD_END, }; +#if P_GALARIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(StunfiskGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO static const union AnimCmd sAnim_Mienfoo_1[] = { ANIMCMD_FRAME(1, 20), @@ -7270,7 +7610,9 @@ static const union AnimCmd sAnim_Mienshao_1[] = ANIMCMD_FRAME(0, 50), ANIMCMD_END, }; +#endif //P_FAMILY_MIENFOO +#if P_FAMILY_DRUDDIGON static const union AnimCmd sAnim_Druddigon_1[] = { ANIMCMD_FRAME(0, 22), @@ -7282,7 +7624,9 @@ static const union AnimCmd sAnim_Druddigon_1[] = ANIMCMD_FRAME(0, 11), ANIMCMD_END, }; +#endif //P_FAMILY_DRUDDIGON +#if P_FAMILY_GOLETT static const union AnimCmd sAnim_Golett_1[] = { ANIMCMD_FRAME(0, 20), @@ -7297,7 +7641,9 @@ static const union AnimCmd sAnim_Golurk_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_GOLETT +#if P_FAMILY_PAWNIARD static const union AnimCmd sAnim_Pawniard_1[] = { ANIMCMD_FRAME(1, 5), @@ -7318,6 +7664,12 @@ static const union AnimCmd sAnim_Bisharp_1[] = ANIMCMD_END, }; +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Kingambit); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT static const union AnimCmd sAnim_Bouffalant_1[] = { ANIMCMD_FRAME(0, 28), @@ -7325,7 +7677,9 @@ static const union AnimCmd sAnim_Bouffalant_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_BOUFFALANT +#if P_FAMILY_RUFFLET static const union AnimCmd sAnim_Rufflet_1[] = { ANIMCMD_FRAME(0, 5), @@ -7344,6 +7698,12 @@ static const union AnimCmd sAnim_Braviary_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(BraviaryHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY static const union AnimCmd sAnim_Vullaby_1[] = { ANIMCMD_FRAME(0, 20), @@ -7359,14 +7719,18 @@ static const union AnimCmd sAnim_Mandibuzz_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_VULLABY +#if P_FAMILY_HEATMOR static const union AnimCmd sAnim_Heatmor_1[] = { ANIMCMD_FRAME(1, 40), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_HEATMOR +#if P_FAMILY_DURANT static const union AnimCmd sAnim_Durant_1[] = { ANIMCMD_FRAME(0, 2), @@ -7388,7 +7752,9 @@ static const union AnimCmd sAnim_Durant_1[] = ANIMCMD_FRAME(0, 2), ANIMCMD_END, }; +#endif //P_FAMILY_DURANT +#if P_FAMILY_DEINO static const union AnimCmd sAnim_Deino_1[] = { ANIMCMD_FRAME(0, 20), @@ -7416,7 +7782,9 @@ static const union AnimCmd sAnim_Hydreigon_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_DEINO +#if P_FAMILY_LARVESTA static const union AnimCmd sAnim_Larvesta_1[] = { ANIMCMD_FRAME(0, 5), @@ -7441,7 +7809,9 @@ static const union AnimCmd sAnim_Volcarona_1[] = ANIMCMD_FRAME(0, 25), ANIMCMD_END, }; +#endif //P_FAMILY_LARVESTA +#if P_FAMILY_COBALION static const union AnimCmd sAnim_Cobalion_1[] = { ANIMCMD_FRAME(0, 1), @@ -7449,7 +7819,9 @@ static const union AnimCmd sAnim_Cobalion_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_COBALION +#if P_FAMILY_TERRAKION static const union AnimCmd sAnim_Terrakion_1[] = { ANIMCMD_FRAME(0, 15), @@ -7461,16 +7833,9 @@ static const union AnimCmd sAnim_Terrakion_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_TERRAKION -static const union AnimCmd sAnim_Terrakion_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - +#if P_FAMILY_VIRIZION static const union AnimCmd sAnim_Virizion_1[] = { ANIMCMD_FRAME(1, 15), @@ -7505,6 +7870,16 @@ static const union AnimCmd sAnim_TornadusIncarnate_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_TornadusTherian_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + static const union AnimCmd sAnim_ThundurusIncarnate_1[] = { ANIMCMD_FRAME(1, 2), @@ -7532,13 +7907,38 @@ static const union AnimCmd sAnim_ThundurusIncarnate_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_ThundurusTherian_1[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_RESHIRAM static const union AnimCmd sAnim_Reshiram_1[] = { ANIMCMD_FRAME(1, 40), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_RESHIRAM +#if P_FAMILY_ZEKROM static const union AnimCmd sAnim_Zekrom_1[] = { ANIMCMD_FRAME(1, 40), @@ -7573,6 +7973,18 @@ static const union AnimCmd sAnim_LandorusIncarnate_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_LandorusTherian_1[] = +{ + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_KYUREM static const union AnimCmd sAnim_Kyurem_1[] = { ANIMCMD_FRAME(1, 10), @@ -7582,6 +7994,24 @@ static const union AnimCmd sAnim_Kyurem_1[] = ANIMCMD_END, }; +#if P_FUSION_FORMS +static const union AnimCmd sAnim_KyuremWhite_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS +static const union AnimCmd sAnim_KyuremBlack_1[] = +{ + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; +#endif //P_FUSION_FORMS + static const union AnimCmd sAnim_KeldeoOrdinary_1[] = { ANIMCMD_FRAME(1, 32), @@ -7589,6 +8019,14 @@ static const union AnimCmd sAnim_KeldeoOrdinary_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_KeldeoResolute_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 36), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + static const union AnimCmd sAnim_MeloettaAria_1[] = { ANIMCMD_FRAME(0, 15), @@ -7601,15 +8039,19 @@ static const union AnimCmd sAnim_MeloettaAria_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_MeloettaAria_2[] = +static const union AnimCmd sAnim_MeloettaPirouette_1[] = { - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_KYUREM +#if P_FAMILY_GENESECT static const union AnimCmd sAnim_Genesect_1[] = { ANIMCMD_FRAME(1, 5), @@ -7622,8 +8064,9 @@ static const union AnimCmd sAnim_Genesect_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -#endif -#if P_GEN_6_POKEMON == TRUE +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN static const union AnimCmd sAnim_Chespin_1[] = { ANIMCMD_FRAME(0, 8), @@ -7644,15 +8087,6 @@ static const union AnimCmd sAnim_Quilladin_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Quilladin_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Chesnaught_1[] = { ANIMCMD_FRAME(1, 50), @@ -7660,7 +8094,9 @@ static const union AnimCmd sAnim_Chesnaught_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CHESPIN +#if P_FAMILY_FENNEKIN static const union AnimCmd sAnim_Fennekin_1[] = { ANIMCMD_FRAME(0, 15), @@ -7692,7 +8128,9 @@ static const union AnimCmd sAnim_Delphox_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_FENNEKIN +#if P_FAMILY_FROAKIE static const union AnimCmd sAnim_Froakie_1[] = { ANIMCMD_FRAME(0, 13), @@ -7728,13 +8166,13 @@ static const union AnimCmd sAnim_GreninjaAsh_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_BUNNELBY 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, }; @@ -7744,56 +8182,41 @@ static const union AnimCmd sAnim_Diggersby_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_BUNNELBY +#if P_FAMILY_FLETCHLING 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_END, -}; - -static const union AnimCmd sAnim_Talonflame_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(1, 55), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_FLETCHLING +#if P_FAMILY_SCATTERBUG static const union AnimCmd sAnim_Scatterbug_1[] = { ANIMCMD_FRAME(0, 5), @@ -7825,7 +8248,9 @@ static const union AnimCmd sAnim_Vivillon_1[] = ANIMCMD_FRAME(0, 50), ANIMCMD_END, }; +#endif //P_FAMILY_SCATTERBUG +#if P_FAMILY_LITLEO static const union AnimCmd sAnim_Litleo_1[] = { ANIMCMD_FRAME(0, 10), @@ -7840,55 +8265,35 @@ static const union AnimCmd sAnim_Pyroar_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_LITLEO +#if P_FAMILY_FLABEBE 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_END, -}; - -static const union AnimCmd sAnim_Flabebe_2[] = -{ + ANIMCMD_FRAME(1, 27), ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(1, 23), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; 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_END, -}; - -static const union AnimCmd sAnim_Florges_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_FLABEBE +#if P_FAMILY_SKIDDO static const union AnimCmd sAnim_Skiddo_1[] = { ANIMCMD_FRAME(1, 15), @@ -7903,7 +8308,9 @@ static const union AnimCmd sAnim_Gogoat_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_SKIDDO +#if P_FAMILY_PANCHAM static const union AnimCmd sAnim_Pancham_1[] = { ANIMCMD_FRAME(1, 8), @@ -7925,7 +8332,9 @@ static const union AnimCmd sAnim_Pangoro_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_PANCHAM +#if P_FAMILY_FURFROU static const union AnimCmd sAnim_Furfrou_1[] = { ANIMCMD_FRAME(0, 27), @@ -7935,7 +8344,9 @@ static const union AnimCmd sAnim_Furfrou_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_FURFROU +#if P_FAMILY_ESPURR static const union AnimCmd sAnim_Espurr_1[] = { ANIMCMD_FRAME(0, 15), @@ -7955,7 +8366,9 @@ static const union AnimCmd sAnim_Meowstic_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_ESPURR +#if P_FAMILY_HONEDGE static const union AnimCmd sAnim_Honedge_1[] = { ANIMCMD_FRAME(1, 50), @@ -7974,15 +8387,6 @@ static const union AnimCmd sAnim_Doublade_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Doublade_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_AegislashShield_1[] = { ANIMCMD_FRAME(0, 18), @@ -7993,6 +8397,18 @@ static const union AnimCmd sAnim_AegislashShield_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_AegislashBlade_1[] = +{ + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 18), + ANIMCMD_FRAME(1, 18), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE static const union AnimCmd sAnim_Spritzee_1[] = { ANIMCMD_FRAME(1, 15), @@ -8010,7 +8426,9 @@ static const union AnimCmd sAnim_Aromatisse_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_SPRITZEE +#if P_FAMILY_SWIRLIX static const union AnimCmd sAnim_Swirlix_1[] = { ANIMCMD_FRAME(0, 10), @@ -8032,7 +8450,9 @@ static const union AnimCmd sAnim_Slurpuff_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_SWIRLIX +#if P_FAMILY_INKAY static const union AnimCmd sAnim_Inkay_1[] = { ANIMCMD_FRAME(1, 25), @@ -8050,7 +8470,9 @@ static const union AnimCmd sAnim_Malamar_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_INKAY +#if P_FAMILY_BINACLE static const union AnimCmd sAnim_Binacle_1[] = { ANIMCMD_FRAME(1, 8), @@ -8068,7 +8490,9 @@ static const union AnimCmd sAnim_Barbaracle_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_BINACLE +#if P_FAMILY_SKRELP static const union AnimCmd sAnim_Skrelp_1[] = { ANIMCMD_FRAME(1, 10), @@ -8090,7 +8514,9 @@ static const union AnimCmd sAnim_Dragalge_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_SKRELP +#if P_FAMILY_CLAUNCHER static const union AnimCmd sAnim_Clauncher_1[] = { ANIMCMD_FRAME(0, 15), @@ -8113,7 +8539,9 @@ static const union AnimCmd sAnim_Clawitzer_1[] = ANIMCMD_FRAME(0, 6), ANIMCMD_END, }; +#endif //P_FAMILY_CLAUNCHER +#if P_FAMILY_HELIOPTILE static const union AnimCmd sAnim_Helioptile_1[] = { ANIMCMD_FRAME(1, 50), @@ -8129,7 +8557,9 @@ static const union AnimCmd sAnim_Heliolisk_1[] = ANIMCMD_FRAME(0, 30), ANIMCMD_END, }; +#endif //P_FAMILY_HELIOPTILE +#if P_FAMILY_TYRUNT static const union AnimCmd sAnim_Tyrunt_1[] = { ANIMCMD_FRAME(1, 10), @@ -8145,13 +8575,20 @@ static const union AnimCmd sAnim_Tyrantrum_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_TYRUNT +#if P_FAMILY_AMAURA 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, }; @@ -8162,15 +8599,9 @@ static const union AnimCmd sAnim_Aurorus_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_AMAURA -static const union AnimCmd sAnim_Sylveon_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - +#if P_FAMILY_HAWLUCHA static const union AnimCmd sAnim_Hawlucha_1[] = { ANIMCMD_FRAME(0, 28), @@ -8178,7 +8609,9 @@ static const union AnimCmd sAnim_Hawlucha_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_HAWLUCHA +#if P_FAMILY_DEDENNE static const union AnimCmd sAnim_Dedenne_1[] = { ANIMCMD_FRAME(1, 50), @@ -8186,13 +8619,25 @@ static const union AnimCmd sAnim_Dedenne_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_DEDENNE +#if P_FAMILY_CARBINK static const union AnimCmd sAnim_Carbink_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_CARBINK +#if P_FAMILY_GOOMY static const union AnimCmd sAnim_Goomy_1[] = { ANIMCMD_FRAME(0, 28), @@ -8219,6 +8664,13 @@ static const union AnimCmd sAnim_Goodra_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(SliggooHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(GoodraHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI static const union AnimCmd sAnim_Klefki_1[] = { ANIMCMD_FRAME(0, 5), @@ -8232,7 +8684,9 @@ static const union AnimCmd sAnim_Klefki_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_KLEFKI +#if P_FAMILY_PHANTUMP static const union AnimCmd sAnim_Phantump_1[] = { ANIMCMD_FRAME(0, 20), @@ -8251,7 +8705,9 @@ static const union AnimCmd sAnim_Trevenant_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_PHANTUMP +#if P_FAMILY_PUMPKABOO static const union AnimCmd sAnim_Pumpkaboo_1[] = { ANIMCMD_FRAME(1, 12), @@ -8272,7 +8728,9 @@ static const union AnimCmd sAnim_Gourgeist_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_PUMPKABOO +#if P_FAMILY_BERGMITE static const union AnimCmd sAnim_Bergmite_1[] = { ANIMCMD_FRAME(0, 11), @@ -8283,15 +8741,6 @@ static const union AnimCmd sAnim_Bergmite_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Bergmite_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - static const union AnimCmd sAnim_Avalugg_1[] = { ANIMCMD_FRAME(1, 10), @@ -8301,6 +8750,12 @@ static const union AnimCmd sAnim_Avalugg_1[] = ANIMCMD_END, }; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(AvaluggHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT static const union AnimCmd sAnim_Noibat_1[] = { ANIMCMD_FRAME(1, 12), @@ -8320,7 +8775,9 @@ static const union AnimCmd sAnim_Noivern_1[] = ANIMCMD_FRAME(0, 20), ANIMCMD_END, }; +#endif //P_FAMILY_NOIBAT +#if P_FAMILY_XERNEAS static const union AnimCmd sAnim_Xerneas_1[] = { ANIMCMD_FRAME(0, 12), @@ -8328,7 +8785,9 @@ static const union AnimCmd sAnim_Xerneas_1[] = ANIMCMD_FRAME(0, 15), ANIMCMD_END, }; +#endif //P_FAMILY_XERNEAS +#if P_FAMILY_YVELTAL static const union AnimCmd sAnim_Yveltal_1[] = { ANIMCMD_FRAME(1, 20), @@ -8337,7 +8796,9 @@ static const union AnimCmd sAnim_Yveltal_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_YVELTAL +#if P_FAMILY_ZYGARDE static const union AnimCmd sAnim_Zygarde50_1[] = { ANIMCMD_FRAME(0, 10), @@ -8346,6 +8807,24 @@ static const union AnimCmd sAnim_Zygarde50_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_Zygarde10_1[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ZygardeComplete_1[] = +{ + ANIMCMD_FRAME(0, 12), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 15), + ANIMCMD_END, +}; +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE static const union AnimCmd sAnim_Diancie_1[] = { ANIMCMD_FRAME(0, 20), @@ -8354,7 +8833,13 @@ static const union AnimCmd sAnim_Diancie_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Hoopa_1[] = +#if P_MEGA_EVOLUTIONS +PLACEHOLDER_ANIM_SINGLE_FRAME(DiancieMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +static const union AnimCmd sAnim_HoopaConfined_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(1, 15), @@ -8368,14 +8853,24 @@ static const union AnimCmd sAnim_Hoopa_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_HoopaUnbound_1[] = +{ + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 10), + ANIMCMD_END, +}; +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION static const union AnimCmd sAnim_Volcanion_1[] = { ANIMCMD_FRAME(1, 45), ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -#endif -#if P_GEN_7_POKEMON == TRUE +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET static const union AnimCmd sAnim_Rowlet_1[] = { ANIMCMD_FRAME(1, 30), @@ -8397,42 +8892,24 @@ static const union AnimCmd sAnim_Decidueye_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Litten_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_HISUIAN_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(DecidueyeHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET -static const union AnimCmd sAnim_Torracat_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_LITTEN +PLACEHOLDER_ANIM_SINGLE_FRAME(Litten); +PLACEHOLDER_ANIM_SINGLE_FRAME(Torracat); +PLACEHOLDER_ANIM_SINGLE_FRAME(Incineroar); +#endif //P_FAMILY_LITTEN -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_END, -}; - -static const union AnimCmd sAnim_Primarina_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_POPPLIO +PLACEHOLDER_ANIM_SINGLE_FRAME(Popplio); +PLACEHOLDER_ANIM_SINGLE_FRAME(Brionne); +PLACEHOLDER_ANIM_SINGLE_FRAME(Primarina); +#endif //P_FAMILY_POPPLIO +#if P_FAMILY_PIKIPEK static const union AnimCmd sAnim_Pikipek_1[] = { ANIMCMD_FRAME(0, 15), @@ -8456,19 +8933,14 @@ static const union AnimCmd sAnim_Toucannon_1[] = ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_PIKIPEK -static const union AnimCmd sAnim_Yungoos_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Gumshoos_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_YUNGOOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Yungoos); +PLACEHOLDER_ANIM_SINGLE_FRAME(Gumshoos); +#endif //P_FAMILY_YUNGOOS +#if P_FAMILY_GRUBBIN static const union AnimCmd sAnim_Grubbin_1[] = { ANIMCMD_FRAME(0, 1), @@ -8496,25 +8968,18 @@ static const union AnimCmd sAnim_Vikavolt_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_GRUBBIN -static const union AnimCmd sAnim_Crabrawler_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_CRABRAWLER +PLACEHOLDER_ANIM_SINGLE_FRAME(Crabrawler); +PLACEHOLDER_ANIM_SINGLE_FRAME(Crabominable); +#endif //P_FAMILY_CRABRAWLER -static const union AnimCmd sAnim_Crabominable_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Oricorio_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_ORICORIO +PLACEHOLDER_ANIM_SINGLE_FRAME(Oricorio); +#endif //P_FAMILY_ORICORIO +#if P_FAMILY_CUTIEFLY static const union AnimCmd sAnim_Cutiefly_1[] = { ANIMCMD_FRAME(1, 1), @@ -8568,7 +9033,9 @@ static const union AnimCmd sAnim_Ribombee_1[] = ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; +#endif //P_FAMILY_CUTIEFLY +#if P_FAMILY_ROCKRUFF static const union AnimCmd sAnim_Rockruff_1[] = { ANIMCMD_FRAME(1, 9), @@ -8585,36 +9052,35 @@ static const union AnimCmd sAnim_LycanrocMidday_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_WishiwashiSolo_1[] = +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_Mareanie_1[] = +static const union AnimCmd sAnim_LycanrocDusk_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_Toxapex_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(WishiwashiSolo); +PLACEHOLDER_ANIM_SINGLE_FRAME(WishiwashiSchool); +#endif //P_FAMILY_ROCKRUFF -static const union AnimCmd sAnim_Mudbray_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_MAREANIE +PLACEHOLDER_ANIM_SINGLE_FRAME(Mareanie); +PLACEHOLDER_ANIM_SINGLE_FRAME(Toxapex); +#endif //P_FAMILY_MAREANIE -static const union AnimCmd sAnim_Mudsdale_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_MUDBRAY +PLACEHOLDER_ANIM_SINGLE_FRAME(Mudbray); +PLACEHOLDER_ANIM_SINGLE_FRAME(Mudsdale); +#endif //P_FAMILY_MUDBRAY +#if P_FAMILY_DEWPIDER static const union AnimCmd sAnim_Dewpider_1[] = { ANIMCMD_FRAME(0, 1), @@ -8633,31 +9099,19 @@ static const union AnimCmd sAnim_Araquanid_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_DEWPIDER -static const union AnimCmd sAnim_Fomantis_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_FOMANTIS +PLACEHOLDER_ANIM_SINGLE_FRAME(Fomantis); +PLACEHOLDER_ANIM_SINGLE_FRAME(Lurantis); +#endif //P_FAMILY_FOMANTIS -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, -}; +#if P_FAMILY_MORELULL +PLACEHOLDER_ANIM_SINGLE_FRAME(Morelull); +PLACEHOLDER_ANIM_SINGLE_FRAME(Shiinotic); +#endif //P_FAMILY_MORELULL +#if P_FAMILY_SALANDIT static const union AnimCmd sAnim_Salandit_1[] = { ANIMCMD_FRAME(0, 10), @@ -8673,7 +9127,9 @@ static const union AnimCmd sAnim_Salazzle_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_SALANDIT +#if P_FAMILY_STUFFUL static const union AnimCmd sAnim_Stufful_1[] = { ANIMCMD_FRAME(0, 10), @@ -8689,45 +9145,37 @@ static const union AnimCmd sAnim_Bewear_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_STUFFUL -static const union AnimCmd sAnim_Bounsweet_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_BOUNSWEET +PLACEHOLDER_ANIM_SINGLE_FRAME(Bounsweet); +PLACEHOLDER_ANIM_SINGLE_FRAME(Steenee); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tsareena); +#endif //P_FAMILY_BOUNSWEET -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, -}; +#if P_FAMILY_COMFEY +PLACEHOLDER_ANIM_SINGLE_FRAME(Comfey); +#endif //P_FAMILY_COMFEY +#if P_FAMILY_ORANGURU static const union AnimCmd sAnim_Oranguru_1[] = { ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_ORANGURU +#if P_FAMILY_PASSIMIAN static const union AnimCmd sAnim_Passimian_1[] = { ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_PASSIMIAN +#if P_FAMILY_WIMPOD static const union AnimCmd sAnim_Wimpod_1[] = { ANIMCMD_FRAME(0, 1), @@ -8743,19 +9191,14 @@ static const union AnimCmd sAnim_Golisopod_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_WIMPOD -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, -}; +#if P_FAMILY_SANDYGAST +PLACEHOLDER_ANIM_SINGLE_FRAME(Sandygast); +PLACEHOLDER_ANIM_SINGLE_FRAME(Palossand); +#endif //P_FAMILY_SANDYGAST +#if P_FAMILY_PYUKUMUKU static const union AnimCmd sAnim_Pyukumuku_1[] = { ANIMCMD_FRAME(0, 1), @@ -8763,31 +9206,23 @@ static const union AnimCmd sAnim_Pyukumuku_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_PYUKUMUKU -static const union AnimCmd sAnim_TypeNull_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_TYPE_NULL +PLACEHOLDER_ANIM_SINGLE_FRAME(TypeNull); +PLACEHOLDER_ANIM_SINGLE_FRAME(Silvally); +#endif //P_FAMILY_TYPE_NULL -static const union AnimCmd sAnim_Silvally_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_MINIOR +PLACEHOLDER_ANIM_SINGLE_FRAME(MiniorMeteor); +PLACEHOLDER_ANIM_SINGLE_FRAME(MiniorCore); +#endif //P_FAMILY_MINIOR -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, -}; +#if P_FAMILY_KOMALA +PLACEHOLDER_ANIM_SINGLE_FRAME(Komala); +#endif //P_FAMILY_KOMALA +#if P_FAMILY_TURTONATOR static const union AnimCmd sAnim_Turtonator_1[] = { ANIMCMD_FRAME(0, 10), @@ -8795,54 +9230,55 @@ static const union AnimCmd sAnim_Turtonator_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_TURTONATOR +#if P_FAMILY_TOGEDEMARU static const union AnimCmd sAnim_Togedemaru_1[] = { ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +#endif //P_FAMILY_TOGEDEMARU -static const union AnimCmd sAnim_MimikyuDisguised_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_MIMIKYU +PLACEHOLDER_ANIM_SINGLE_FRAME(MimikyuDisguised); +PLACEHOLDER_ANIM_SINGLE_FRAME(MimikyuBusted); +#endif //P_FAMILY_MIMIKYU -static const union AnimCmd sAnim_Bruxish_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_BRUXISH +PLACEHOLDER_ANIM_SINGLE_FRAME(Bruxish); +#endif //P_FAMILY_BRUXISH +#if P_FAMILY_DRAMPA static const union AnimCmd sAnim_Drampa_1[] = { ANIMCMD_FRAME(1, 50), ANIMCMD_FRAME(0, 50), ANIMCMD_END, }; +#endif //P_FAMILY_DRAMPA -static const union AnimCmd sAnim_Dhelmise_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_DHELMISE +PLACEHOLDER_ANIM_SINGLE_FRAME(Dhelmise); +#endif //P_FAMILY_DHELMISE -static const union AnimCmd sAnim_JANGMO_O_1[] = +#if P_FAMILY_JANGMO_O +static const union AnimCmd sAnim_Jangmo_O_1[] = { ANIMCMD_FRAME(1, 15), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_HAKAMO_O_1[] = +static const union AnimCmd sAnim_Hakamo_O_1[] = { ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_KOMMO_O_1[] = +static const union AnimCmd sAnim_Kommo_O_1[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 20), @@ -8851,7 +9287,9 @@ static const union AnimCmd sAnim_KOMMO_O_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_JANGMO_O +#if P_FAMILY_TAPU_KOKO static const union AnimCmd sAnim_TapuKoko_1[] = { ANIMCMD_FRAME(0, 1), @@ -8863,7 +9301,9 @@ static const union AnimCmd sAnim_TapuKoko_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_TAPU_KOKO +#if P_FAMILY_TAPU_LELE static const union AnimCmd sAnim_TapuLele_1[] = { ANIMCMD_FRAME(1, 50), @@ -8871,7 +9311,9 @@ static const union AnimCmd sAnim_TapuLele_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_TAPU_LELE +#if P_FAMILY_TAPU_BULU static const union AnimCmd sAnim_TapuBulu_1[] = { ANIMCMD_FRAME(0, 1), @@ -8881,7 +9323,9 @@ static const union AnimCmd sAnim_TapuBulu_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_TAPU_BULU +#if P_FAMILY_TAPU_FINI static const union AnimCmd sAnim_TapuFini_1[] = { ANIMCMD_FRAME(1, 60), @@ -8889,85 +9333,52 @@ static const union AnimCmd sAnim_TapuFini_1[] = ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +#endif //P_FAMILY_TAPU_FINI -static const union AnimCmd sAnim_Cosmog_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_COSMOG +PLACEHOLDER_ANIM_SINGLE_FRAME(Cosmog); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cosmoem); +PLACEHOLDER_ANIM_SINGLE_FRAME(Solgaleo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Lunala); +#endif //P_FAMILY_COSMOG -static const union AnimCmd sAnim_Cosmoem_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_NIHILEGO +PLACEHOLDER_ANIM_SINGLE_FRAME(Nihilego); +#endif //P_FAMILY_NIHILEGO -static const union AnimCmd sAnim_Solgaleo_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_BUZZWOLE +PLACEHOLDER_ANIM_SINGLE_FRAME(Buzzwole); +#endif //P_FAMILY_BUZZWOLE -static const union AnimCmd sAnim_Lunala_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_PHEROMOSA +PLACEHOLDER_ANIM_SINGLE_FRAME(Pheromosa); +#endif //P_FAMILY_PHEROMOSA -static const union AnimCmd sAnim_Nihilego_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_XURKITREE +PLACEHOLDER_ANIM_SINGLE_FRAME(Xurkitree); +#endif //P_FAMILY_XURKITREE -static const union AnimCmd sAnim_Buzzwole_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_CELESTEELA +PLACEHOLDER_ANIM_SINGLE_FRAME(Celesteela); +#endif //P_FAMILY_CELESTEELA -static const union AnimCmd sAnim_Pheromosa_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_KARTANA +PLACEHOLDER_ANIM_SINGLE_FRAME(Kartana); +#endif //P_FAMILY_KARTANA -static const union AnimCmd sAnim_Xurkitree_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_GUZZLORD +PLACEHOLDER_ANIM_SINGLE_FRAME(Guzzlord); +#endif //P_FAMILY_GUZZLORD -static const union AnimCmd sAnim_Celesteela_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_NECROZMA +PLACEHOLDER_ANIM_SINGLE_FRAME(Necrozma); +#endif //P_FAMILY_NECROZMA -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, -}; +#if P_FAMILY_MAGEARNA +PLACEHOLDER_ANIM_SINGLE_FRAME(Magearna); +#endif //P_FAMILY_MAGEARNA +#if P_FAMILY_MARSHADOW static const union AnimCmd sAnim_Marshadow_1[] = { ANIMCMD_FRAME(0, 1), @@ -8975,116 +9386,70 @@ static const union AnimCmd sAnim_Marshadow_1[] = ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; +#endif //P_FAMILY_MARSHADOW -static const union AnimCmd sAnim_Poipole_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_POIPOLE +PLACEHOLDER_ANIM_SINGLE_FRAME(Poipole); +PLACEHOLDER_ANIM_SINGLE_FRAME(Naganadel); +#endif //P_FAMILY_POIPOLE -static const union AnimCmd sAnim_Naganadel_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_STAKATAKA +PLACEHOLDER_ANIM_SINGLE_FRAME(Stakataka); +#endif //P_FAMILY_STAKATAKA -static const union AnimCmd sAnim_Stakataka_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_BLACEPHALON +PLACEHOLDER_ANIM_SINGLE_FRAME(Blacephalon); +#endif //P_FAMILY_BLACEPHALON -static const union AnimCmd sAnim_Blacephalon_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_ZERAORA +PLACEHOLDER_ANIM_SINGLE_FRAME(Zeraora); +#endif //P_FAMILY_ZERAORA -static const union AnimCmd sAnim_Zeraora_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_MELTAN +PLACEHOLDER_ANIM_SINGLE_FRAME(Meltan); +PLACEHOLDER_ANIM_SINGLE_FRAME(Melmetal); -static const union AnimCmd sAnim_Meltan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(MelmetalGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MELTAN -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, -}; +#if P_FAMILY_GROOKEY +PLACEHOLDER_ANIM_SINGLE_FRAME(Grookey); +PLACEHOLDER_ANIM_SINGLE_FRAME(Thwackey); +PLACEHOLDER_ANIM_SINGLE_FRAME(Rillaboom); -static const union AnimCmd sAnim_Thwackey_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(RillaboomGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GROOKEY -static const union AnimCmd sAnim_Rillaboom_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_SCORBUNNY +PLACEHOLDER_ANIM_SINGLE_FRAME(Scorbunny); +PLACEHOLDER_ANIM_SINGLE_FRAME(Raboot); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cinderace); -static const union AnimCmd sAnim_Scorbunny_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(CinderaceGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SCORBUNNY -static const union AnimCmd sAnim_Raboot_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_SOBBLE +PLACEHOLDER_ANIM_SINGLE_FRAME(Sobble); +PLACEHOLDER_ANIM_SINGLE_FRAME(Drizzile); +PLACEHOLDER_ANIM_SINGLE_FRAME(Inteleon); -static const union AnimCmd sAnim_Cinderace_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(InteleonGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SOBBLE -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, -}; +#if P_FAMILY_SKWOVET +PLACEHOLDER_ANIM_SINGLE_FRAME(Skwovet); +PLACEHOLDER_ANIM_SINGLE_FRAME(Greedent); +#endif //P_FAMILY_SKWOVET +#if P_FAMILY_ROOKIDEE static const union AnimCmd sAnim_Rookidee_1[] = { ANIMCMD_FRAME(0, 10), @@ -9117,60 +9482,37 @@ static const union AnimCmd sAnim_Corviknight_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Blipbug_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(CorviknightGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROOKIDEE -static const union AnimCmd sAnim_Dottler_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_BLIPBUG +PLACEHOLDER_ANIM_SINGLE_FRAME(Blipbug); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dottler); +PLACEHOLDER_ANIM_SINGLE_FRAME(Orbeetle); -static const union AnimCmd sAnim_Orbeetle_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(OrbeetleGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BLIPBUG -static const union AnimCmd sAnim_Nickit_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_NICKIT +PLACEHOLDER_ANIM_SINGLE_FRAME(Nickit); +PLACEHOLDER_ANIM_SINGLE_FRAME(Thievul); +#endif //P_FAMILY_NICKIT -static const union AnimCmd sAnim_Thievul_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_GOSSIFLEUR +PLACEHOLDER_ANIM_SINGLE_FRAME(Gossifleur); +PLACEHOLDER_ANIM_SINGLE_FRAME(Eldegoss); +#endif //P_FAMILY_GOSSIFLEUR -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, -}; +#if P_FAMILY_WOOLOO +PLACEHOLDER_ANIM_SINGLE_FRAME(Wooloo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dubwool); +#endif //P_FAMILY_WOOLOO +#if P_FAMILY_CHEWTLE static const union AnimCmd sAnim_Chewtle_1[] = { ANIMCMD_FRAME(0, 10), @@ -9187,67 +9529,73 @@ static const union AnimCmd sAnim_Drednaw_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Yamper_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(DrednawGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHEWTLE -static const union AnimCmd sAnim_Boltund_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_YAMPER +PLACEHOLDER_ANIM_SINGLE_FRAME(Yamper); +PLACEHOLDER_ANIM_SINGLE_FRAME(Boltund); +#endif //P_FAMILY_YAMPER -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); +#if P_FAMILY_ROLYCOLY +PLACEHOLDER_ANIM_TWO_FRAMES(Rolycoly); +PLACEHOLDER_ANIM_TWO_FRAMES(Carkol); +PLACEHOLDER_ANIM_TWO_FRAMES(Coalossal); -static const union AnimCmd sAnim_Silicobra_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(CoalossalGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROLYCOLY -static const union AnimCmd sAnim_Sandaconda_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_APPLIN +PLACEHOLDER_ANIM_TWO_FRAMES(Applin); +PLACEHOLDER_ANIM_TWO_FRAMES(Flapple); -static const union AnimCmd sAnim_Cramorant_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(FlappleGigantamax); +#endif //P_GIGANTAMAX_FORMS -static const union AnimCmd sAnim_Arrokuda_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_TWO_FRAMES(Appletun); -static const union AnimCmd sAnim_Barraskewda_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGigantamax); +#endif //P_GIGANTAMAX_FORMS -static const union AnimCmd sAnim_Toxel_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Dipplin); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN -static const union AnimCmd sAnim_Toxtricity_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_SILICOBRA +PLACEHOLDER_ANIM_SINGLE_FRAME(Silicobra); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sandaconda); +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(SandacondaGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +PLACEHOLDER_ANIM_SINGLE_FRAME(Cramorant); +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA +PLACEHOLDER_ANIM_SINGLE_FRAME(Arrokuda); +PLACEHOLDER_ANIM_SINGLE_FRAME(Barraskewda); +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL +PLACEHOLDER_ANIM_SINGLE_FRAME(Toxel); +PLACEHOLDER_ANIM_SINGLE_FRAME(Toxtricity); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(ToxtricityGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE static const union AnimCmd sAnim_Sizzlipede_1[] = { ANIMCMD_FRAME(0, 1), @@ -9264,1620 +9612,484 @@ static const union AnimCmd sAnim_Centiskorch_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Clobbopus_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(CentiskorchGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS +PLACEHOLDER_ANIM_SINGLE_FRAME(Clobbopus); +PLACEHOLDER_ANIM_SINGLE_FRAME(Grapploct); +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +PLACEHOLDER_ANIM_SINGLE_FRAME(Sinistea); +PLACEHOLDER_ANIM_SINGLE_FRAME(Polteageist); +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +PLACEHOLDER_ANIM_SINGLE_FRAME(Hatenna); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hattrem); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hatterene); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(HattereneGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP +PLACEHOLDER_ANIM_SINGLE_FRAME(Impidimp); +PLACEHOLDER_ANIM_SINGLE_FRAME(Morgrem); +PLACEHOLDER_ANIM_SINGLE_FRAME(Grimmsnarl); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(GrimmsnarlGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY +PLACEHOLDER_ANIM_SINGLE_FRAME(Milcery); +PLACEHOLDER_ANIM_SINGLE_FRAME(Alcremie); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(AlcremieGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS +PLACEHOLDER_ANIM_SINGLE_FRAME(Falinks); +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN +PLACEHOLDER_ANIM_TWO_FRAMES(Pincurchin); +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM +PLACEHOLDER_ANIM_SINGLE_FRAME(Snom); +PLACEHOLDER_ANIM_SINGLE_FRAME(Frosmoth); +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER +PLACEHOLDER_ANIM_SINGLE_FRAME(Stonjourner); +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +PLACEHOLDER_ANIM_SINGLE_FRAME(Eiscue); +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +PLACEHOLDER_ANIM_SINGLE_FRAME(Indeedee); +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +PLACEHOLDER_ANIM_SINGLE_FRAME(Morpeko); +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +PLACEHOLDER_ANIM_SINGLE_FRAME(Cufant); +PLACEHOLDER_ANIM_SINGLE_FRAME(Copperajah); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(CopperajahGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT +PLACEHOLDER_ANIM_SINGLE_FRAME(Dracozolt); +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT +PLACEHOLDER_ANIM_SINGLE_FRAME(Arctozolt); +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH +PLACEHOLDER_ANIM_SINGLE_FRAME(Dracovish); +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH +PLACEHOLDER_ANIM_SINGLE_FRAME(Arctovish); +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +PLACEHOLDER_ANIM_SINGLE_FRAME(Duraludon); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY +PLACEHOLDER_ANIM_SINGLE_FRAME(Dreepy); +PLACEHOLDER_ANIM_SINGLE_FRAME(Drakloak); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dragapult); +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +PLACEHOLDER_ANIM_SINGLE_FRAME(Zacian); +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +PLACEHOLDER_ANIM_SINGLE_FRAME(Zamazenta); +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +PLACEHOLDER_ANIM_SINGLE_FRAME(Eternatus); +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU +PLACEHOLDER_ANIM_SINGLE_FRAME(Kubfu); +PLACEHOLDER_ANIM_SINGLE_FRAME(Urshifu); + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuSingleStrikeStyleGigantamax); +#endif //P_GIGANTAMAX_FORMS + +#if P_GIGANTAMAX_FORMS +PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuRapidStrikeStyleGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE +PLACEHOLDER_ANIM_SINGLE_FRAME(Zarude); +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI +PLACEHOLDER_ANIM_SINGLE_FRAME(Regieleki); +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO +PLACEHOLDER_ANIM_SINGLE_FRAME(Regidrago); +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER +PLACEHOLDER_ANIM_SINGLE_FRAME(Glastrier); +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER +PLACEHOLDER_ANIM_SINGLE_FRAME(Spectrier); +#endif //P_FAMILY_SPECTRIER -static const union AnimCmd sAnim_Grapploct_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_FAMILY_CALYREX +PLACEHOLDER_ANIM_SINGLE_FRAME(Calyrex); +#endif //P_FAMILY_CALYREX -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 -PLACEHOLDER_ANIM_SINGLE_FRAME(WooperPaldean); -PLACEHOLDER_ANIM_SINGLE_FRAME(TaurosPaldean); - -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_END, -}; - -#if P_GEN_5_POKEMON == TRUE -static const union AnimCmd sAnim_GarbodorGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_7_POKEMON == TRUE -static const union AnimCmd sAnim_MelmetalGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_8_POKEMON == TRUE -static const union AnimCmd sAnim_RillaboomGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CinderaceGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_InteleonGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CorviknightGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_OrbeetleGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DrednawGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CoalossalGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_FlappleGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AppletunGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SandacondaGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ToxtricityGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CentiskorchGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_HattereneGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GrimmsnarlGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AlcremieGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CopperajahGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DuraludonGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UrshifuSingleStrikeStyleGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_UrshifuRapidStrikeStyleGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif - -static const union AnimCmd sAnim_PikachuCosplay_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuRockStar_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuBelle_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuPopStar_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PIKACHU_PH_D_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuLibre_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuOriginalCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuHoennCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuSinnohCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuUnovaCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuKalosCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuAlolaCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuPartnerCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuWorldCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PichuSpikyEared_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -static const union AnimCmd sAnim_DeoxysAttack_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 26), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DeoxysAttack_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DeoxysDefense_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 26), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DeoxysDefense_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DeoxysSpeed_1[] = -{ - ANIMCMD_FRAME(0, 16), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 26), - ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 16), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DeoxysSpeed_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; - -#if P_GEN_4_POKEMON == TRUE -static const union AnimCmd sAnim_ShayminSky_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 36), - ANIMCMD_FRAME(0, 10), - 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, -}; - -static const union AnimCmd sAnim_GiratinaOrigin_1[] = -{ - ANIMCMD_FRAME(0, 11), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GiratinaOrigin_2[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(2, 20), - ANIMCMD_END, -}; -#endif -#if P_GEN_5_POKEMON == TRUE -static const union AnimCmd sAnim_DarmanitanZenMode_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 20), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DarmanitanGalarianZenMode_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TornadusTherian_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ThundurusTherian_1[] = -{ - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 5), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LandorusTherian_1[] = -{ - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_KyuremBlack_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_KyuremWhite_1[] = -{ - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_KeldeoResolute_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 36), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MeloettaPirouette_1[] = -{ - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; -#endif -#if P_GEN_6_POKEMON == TRUE -static const union AnimCmd sAnim_AegislashBlade_1[] = -{ - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 18), - ANIMCMD_FRAME(1, 18), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Zygarde10_1[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ZygardeComplete_1[] = -{ - ANIMCMD_FRAME(0, 12), - ANIMCMD_FRAME(1, 45), - ANIMCMD_FRAME(0, 15), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_HoopaUnbound_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; -#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, -}; - -static const union AnimCmd sAnim_LycanrocMidnight_1[] = -{ - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 5), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LycanrocDusk_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(UrsalunaBloodmoon); -#endif -#if P_GEN_9_POKEMON == TRUE +#if P_FAMILY_ENAMORUS +PLACEHOLDER_ANIM_SINGLE_FRAME(EnamorusIncarnate); +PLACEHOLDER_ANIM_SINGLE_FRAME(EnamorusTherian); +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO PLACEHOLDER_ANIM_SINGLE_FRAME(Sprigatito); PLACEHOLDER_ANIM_SINGLE_FRAME(Floragato); PLACEHOLDER_ANIM_SINGLE_FRAME(Meowscarada); +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO PLACEHOLDER_ANIM_SINGLE_FRAME(Fuecoco); PLACEHOLDER_ANIM_SINGLE_FRAME(Crocalor); PLACEHOLDER_ANIM_SINGLE_FRAME(Skeledirge); +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY PLACEHOLDER_ANIM_SINGLE_FRAME(Quaxly); PLACEHOLDER_ANIM_SINGLE_FRAME(Quaxwell); PLACEHOLDER_ANIM_SINGLE_FRAME(Quaquaval); +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK PLACEHOLDER_ANIM_SINGLE_FRAME(Lechonk); PLACEHOLDER_ANIM_SINGLE_FRAME(Oinkologne); +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA PLACEHOLDER_ANIM_SINGLE_FRAME(Tarountula); PLACEHOLDER_ANIM_SINGLE_FRAME(Spidops); +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE PLACEHOLDER_ANIM_SINGLE_FRAME(Nymble); PLACEHOLDER_ANIM_SINGLE_FRAME(Lokix); +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI PLACEHOLDER_ANIM_SINGLE_FRAME(Pawmi); PLACEHOLDER_ANIM_SINGLE_FRAME(Pawmo); PLACEHOLDER_ANIM_SINGLE_FRAME(Pawmot); +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS PLACEHOLDER_ANIM_SINGLE_FRAME(Tandemaus); PLACEHOLDER_ANIM_SINGLE_FRAME(Maushold); +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH PLACEHOLDER_ANIM_SINGLE_FRAME(Fidough); PLACEHOLDER_ANIM_SINGLE_FRAME(Dachsbun); +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV PLACEHOLDER_ANIM_SINGLE_FRAME(Smoliv); PLACEHOLDER_ANIM_SINGLE_FRAME(Dolliv); PLACEHOLDER_ANIM_SINGLE_FRAME(Arboliva); +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY PLACEHOLDER_ANIM_SINGLE_FRAME(Squawkabilly); +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI PLACEHOLDER_ANIM_SINGLE_FRAME(Nacli); PLACEHOLDER_ANIM_SINGLE_FRAME(Naclstack); PLACEHOLDER_ANIM_SINGLE_FRAME(Garganacl); +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET PLACEHOLDER_ANIM_SINGLE_FRAME(Charcadet); PLACEHOLDER_ANIM_SINGLE_FRAME(Armarouge); PLACEHOLDER_ANIM_SINGLE_FRAME(Ceruledge); +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB PLACEHOLDER_ANIM_SINGLE_FRAME(Tadbulb); PLACEHOLDER_ANIM_SINGLE_FRAME(Bellibolt); +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL PLACEHOLDER_ANIM_SINGLE_FRAME(Wattrel); PLACEHOLDER_ANIM_SINGLE_FRAME(Kilowattrel); +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF PLACEHOLDER_ANIM_SINGLE_FRAME(Maschiff); PLACEHOLDER_ANIM_SINGLE_FRAME(Mabosstiff); +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE PLACEHOLDER_ANIM_SINGLE_FRAME(Shroodle); PLACEHOLDER_ANIM_SINGLE_FRAME(Grafaiai); +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN PLACEHOLDER_ANIM_SINGLE_FRAME(Bramblin); PLACEHOLDER_ANIM_SINGLE_FRAME(Brambleghast); +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL PLACEHOLDER_ANIM_SINGLE_FRAME(Toedscool); PLACEHOLDER_ANIM_SINGLE_FRAME(Toedscruel); +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF PLACEHOLDER_ANIM_SINGLE_FRAME(Klawf); +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID PLACEHOLDER_ANIM_SINGLE_FRAME(Capsakid); PLACEHOLDER_ANIM_SINGLE_FRAME(Scovillain); +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR PLACEHOLDER_ANIM_SINGLE_FRAME(Rellor); PLACEHOLDER_ANIM_SINGLE_FRAME(Rabsca); +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE PLACEHOLDER_ANIM_SINGLE_FRAME(Flittle); PLACEHOLDER_ANIM_SINGLE_FRAME(Espathra); +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK PLACEHOLDER_ANIM_SINGLE_FRAME(Tinkatink); PLACEHOLDER_ANIM_SINGLE_FRAME(Tinkatuff); PLACEHOLDER_ANIM_SINGLE_FRAME(Tinkaton); +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT PLACEHOLDER_ANIM_SINGLE_FRAME(Wiglett); PLACEHOLDER_ANIM_SINGLE_FRAME(Wugtrio); +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER PLACEHOLDER_ANIM_SINGLE_FRAME(Bombirdier); +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN PLACEHOLDER_ANIM_SINGLE_FRAME(Finizen); PLACEHOLDER_ANIM_SINGLE_FRAME(Palafin); +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM PLACEHOLDER_ANIM_SINGLE_FRAME(Varoom); PLACEHOLDER_ANIM_SINGLE_FRAME(Revavroom); +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR PLACEHOLDER_ANIM_SINGLE_FRAME(Cyclizar); +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM PLACEHOLDER_ANIM_SINGLE_FRAME(Orthworm); +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET PLACEHOLDER_ANIM_SINGLE_FRAME(Glimmet); PLACEHOLDER_ANIM_SINGLE_FRAME(Glimmora); +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD PLACEHOLDER_ANIM_SINGLE_FRAME(Greavard); PLACEHOLDER_ANIM_SINGLE_FRAME(Houndstone); +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO PLACEHOLDER_ANIM_SINGLE_FRAME(Flamigo); +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE PLACEHOLDER_ANIM_SINGLE_FRAME(Cetoddle); PLACEHOLDER_ANIM_SINGLE_FRAME(Cetitan); +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA PLACEHOLDER_ANIM_SINGLE_FRAME(Veluza); +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO PLACEHOLDER_ANIM_SINGLE_FRAME(Dondozo); +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI 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_TWO_FRAME_ANIMATION(GreatTusk); +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GREAT_TUSK +PLACEHOLDER_ANIM_TWO_FRAMES(GreatTusk); +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL PLACEHOLDER_ANIM_SINGLE_FRAME(ScreamTail); +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET PLACEHOLDER_ANIM_SINGLE_FRAME(BruteBonnet); +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE PLACEHOLDER_ANIM_SINGLE_FRAME(FlutterMane); +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING PLACEHOLDER_ANIM_SINGLE_FRAME(SlitherWing); +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS PLACEHOLDER_ANIM_SINGLE_FRAME(SandyShocks); +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS PLACEHOLDER_ANIM_SINGLE_FRAME(IronTreads); +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE PLACEHOLDER_ANIM_SINGLE_FRAME(IronBundle); +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS PLACEHOLDER_ANIM_SINGLE_FRAME(IronHands); +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS PLACEHOLDER_ANIM_SINGLE_FRAME(IronJugulis); +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH PLACEHOLDER_ANIM_SINGLE_FRAME(IronMoth); +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS PLACEHOLDER_ANIM_SINGLE_FRAME(IronThorns); -PLACEHOLDER_TWO_FRAME_ANIMATION(Frigibax); +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX +PLACEHOLDER_ANIM_TWO_FRAMES(Frigibax); PLACEHOLDER_ANIM_SINGLE_FRAME(Arctibax); PLACEHOLDER_ANIM_SINGLE_FRAME(Baxcalibur); +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL PLACEHOLDER_ANIM_SINGLE_FRAME(Gimmighoul); PLACEHOLDER_ANIM_SINGLE_FRAME(Gholdengo); +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN PLACEHOLDER_ANIM_SINGLE_FRAME(WoChien); +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO PLACEHOLDER_ANIM_SINGLE_FRAME(ChienPao); +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU PLACEHOLDER_ANIM_SINGLE_FRAME(TingLu); +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU PLACEHOLDER_ANIM_SINGLE_FRAME(ChiYu); +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON PLACEHOLDER_ANIM_SINGLE_FRAME(RoaringMoon); +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT PLACEHOLDER_ANIM_SINGLE_FRAME(IronValiant); +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON PLACEHOLDER_ANIM_SINGLE_FRAME(Koraidon); +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON PLACEHOLDER_ANIM_SINGLE_FRAME(Miraidon); +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE PLACEHOLDER_ANIM_SINGLE_FRAME(WalkingWake); +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES PLACEHOLDER_ANIM_SINGLE_FRAME(IronLeaves); -PLACEHOLDER_ANIM_SINGLE_FRAME(Dipplin); -PLACEHOLDER_ANIM_SINGLE_FRAME(Sinistcha); +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST PLACEHOLDER_ANIM_SINGLE_FRAME(Poltchageist); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sinistcha); +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI PLACEHOLDER_ANIM_SINGLE_FRAME(Okidogi); +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI PLACEHOLDER_ANIM_SINGLE_FRAME(Munkidori); +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI PLACEHOLDER_ANIM_SINGLE_FRAME(Fezandipiti); +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON PLACEHOLDER_ANIM_SINGLE_FRAME(Ogerpon); -#endif +#endif //P_FAMILY_OGERPON + +static const union AnimCmd sAnim_Egg_1[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 6), + ANIMCMD_FRAME(2, 6), + ANIMCMD_FRAME(3, 6), + ANIMCMD_END, +}; #define SINGLE_ANIMATION(name) \ static const union AnimCmd *const sAnims_##name[] = \ @@ -10886,1213 +10098,94 @@ static const union AnimCmd *const sAnims_##name[] = \ sAnim_##name##_1, \ } -#define DOUBLE_ANIMATION(name) \ -static const union AnimCmd *const sAnims_##name[] = \ -{ \ - sAnim_GeneralFrame0, \ - sAnim_##name##_1, \ - sAnim_##name##_2, \ -} SINGLE_ANIMATION(None); +#if P_FAMILY_BULBASAUR SINGLE_ANIMATION(Bulbasaur); SINGLE_ANIMATION(Ivysaur); SINGLE_ANIMATION(Venusaur); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(VenusaurMega); +#endif //P_MEGA_EVOLUTIONS +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(VenusaurGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BULBASAUR +#if P_FAMILY_CHARMANDER SINGLE_ANIMATION(Charmander); SINGLE_ANIMATION(Charmeleon); SINGLE_ANIMATION(Charizard); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(CharizardMegaX); +SINGLE_ANIMATION(CharizardMegaY); +#endif //P_MEGA_EVOLUTIONS +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(CharizardGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHARMANDER +#if P_FAMILY_SQUIRTLE SINGLE_ANIMATION(Squirtle); SINGLE_ANIMATION(Wartortle); SINGLE_ANIMATION(Blastoise); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(BlastoiseMega); +#endif //P_MEGA_EVOLUTIONS +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(BlastoiseGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SQUIRTLE +#if P_FAMILY_CATERPIE SINGLE_ANIMATION(Caterpie); SINGLE_ANIMATION(Metapod); SINGLE_ANIMATION(Butterfree); +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(ButterfreeGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CATERPIE +#if P_FAMILY_WEEDLE SINGLE_ANIMATION(Weedle); SINGLE_ANIMATION(Kakuna); SINGLE_ANIMATION(Beedrill); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(BeedrillMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_WEEDLE +#if P_FAMILY_PIDGEY SINGLE_ANIMATION(Pidgey); SINGLE_ANIMATION(Pidgeotto); SINGLE_ANIMATION(Pidgeot); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(PidgeotMega); +#endif +#endif //P_FAMILY_PIDGEY +#if P_FAMILY_RATTATA SINGLE_ANIMATION(Rattata); SINGLE_ANIMATION(Raticate); -SINGLE_ANIMATION(Spearow); -SINGLE_ANIMATION(Fearow); -SINGLE_ANIMATION(Ekans); -SINGLE_ANIMATION(Arbok); -DOUBLE_ANIMATION(Pikachu); -DOUBLE_ANIMATION(Raichu); -DOUBLE_ANIMATION(Sandshrew); -DOUBLE_ANIMATION(Sandslash); -SINGLE_ANIMATION(NidoranF); -SINGLE_ANIMATION(Nidorina); -SINGLE_ANIMATION(Nidoqueen); -SINGLE_ANIMATION(NidoranM); -SINGLE_ANIMATION(Nidorino); -SINGLE_ANIMATION(Nidoking); -SINGLE_ANIMATION(Clefairy); -SINGLE_ANIMATION(Clefable); -DOUBLE_ANIMATION(Vulpix); -DOUBLE_ANIMATION(Ninetales); -DOUBLE_ANIMATION(Jigglypuff); -DOUBLE_ANIMATION(Wigglytuff); -SINGLE_ANIMATION(Zubat); -SINGLE_ANIMATION(Golbat); -SINGLE_ANIMATION(Oddish); -SINGLE_ANIMATION(Gloom); -SINGLE_ANIMATION(Vileplume); -SINGLE_ANIMATION(Paras); -SINGLE_ANIMATION(Parasect); -SINGLE_ANIMATION(Venonat); -SINGLE_ANIMATION(Venomoth); -SINGLE_ANIMATION(Diglett); -SINGLE_ANIMATION(Dugtrio); -SINGLE_ANIMATION(Meowth); -SINGLE_ANIMATION(Persian); -DOUBLE_ANIMATION(Psyduck); -DOUBLE_ANIMATION(Golduck); -SINGLE_ANIMATION(Mankey); -SINGLE_ANIMATION(Primeape); -SINGLE_ANIMATION(Growlithe); -SINGLE_ANIMATION(Arcanine); -SINGLE_ANIMATION(Poliwag); -SINGLE_ANIMATION(Poliwhirl); -SINGLE_ANIMATION(Poliwrath); -SINGLE_ANIMATION(Abra); -SINGLE_ANIMATION(Kadabra); -SINGLE_ANIMATION(Alakazam); -SINGLE_ANIMATION(Machop); -SINGLE_ANIMATION(Machoke); -SINGLE_ANIMATION(Machamp); -SINGLE_ANIMATION(Bellsprout); -SINGLE_ANIMATION(Weepinbell); -SINGLE_ANIMATION(Victreebel); -SINGLE_ANIMATION(Tentacool); -SINGLE_ANIMATION(Tentacruel); -SINGLE_ANIMATION(Geodude); -SINGLE_ANIMATION(Graveler); -SINGLE_ANIMATION(Golem); -SINGLE_ANIMATION(Ponyta); -SINGLE_ANIMATION(Rapidash); -SINGLE_ANIMATION(Slowpoke); -SINGLE_ANIMATION(Slowbro); -SINGLE_ANIMATION(Magnemite); -SINGLE_ANIMATION(Magneton); -SINGLE_ANIMATION(Farfetchd); -SINGLE_ANIMATION(Doduo); -SINGLE_ANIMATION(Dodrio); -SINGLE_ANIMATION(Seel); -SINGLE_ANIMATION(Dewgong); -DOUBLE_ANIMATION(Grimer); -DOUBLE_ANIMATION(Muk); -SINGLE_ANIMATION(Shellder); -SINGLE_ANIMATION(Cloyster); -SINGLE_ANIMATION(Gastly); -SINGLE_ANIMATION(Haunter); -SINGLE_ANIMATION(Gengar); -SINGLE_ANIMATION(Onix); -SINGLE_ANIMATION(Drowzee); -SINGLE_ANIMATION(Hypno); -SINGLE_ANIMATION(Krabby); -SINGLE_ANIMATION(Kingler); -SINGLE_ANIMATION(Voltorb); -SINGLE_ANIMATION(Electrode); -SINGLE_ANIMATION(Exeggcute); -SINGLE_ANIMATION(Exeggutor); -SINGLE_ANIMATION(Cubone); -SINGLE_ANIMATION(Marowak); -SINGLE_ANIMATION(Hitmonlee); -SINGLE_ANIMATION(Hitmonchan); -SINGLE_ANIMATION(Lickitung); -DOUBLE_ANIMATION(Koffing); -DOUBLE_ANIMATION(Weezing); -DOUBLE_ANIMATION(Rhyhorn); -DOUBLE_ANIMATION(Rhydon); -SINGLE_ANIMATION(Chansey); -SINGLE_ANIMATION(Tangela); -SINGLE_ANIMATION(Kangaskhan); -DOUBLE_ANIMATION(Horsea); -DOUBLE_ANIMATION(Seadra); -SINGLE_ANIMATION(Goldeen); -SINGLE_ANIMATION(Seaking); -DOUBLE_ANIMATION(Staryu); -DOUBLE_ANIMATION(Starmie); -SINGLE_ANIMATION(MrMime); -SINGLE_ANIMATION(Scyther); -SINGLE_ANIMATION(Jynx); -SINGLE_ANIMATION(Electabuzz); -SINGLE_ANIMATION(Magmar); -DOUBLE_ANIMATION(Pinsir); -SINGLE_ANIMATION(Tauros); -SINGLE_ANIMATION(Magikarp); -SINGLE_ANIMATION(Gyarados); -SINGLE_ANIMATION(Lapras); -SINGLE_ANIMATION(Ditto); -SINGLE_ANIMATION(Eevee); -SINGLE_ANIMATION(Vaporeon); -SINGLE_ANIMATION(Jolteon); -SINGLE_ANIMATION(Flareon); -SINGLE_ANIMATION(Porygon); -SINGLE_ANIMATION(Omanyte); -SINGLE_ANIMATION(Omastar); -SINGLE_ANIMATION(Kabuto); -SINGLE_ANIMATION(Kabutops); -SINGLE_ANIMATION(Aerodactyl); -SINGLE_ANIMATION(Snorlax); -SINGLE_ANIMATION(Articuno); -SINGLE_ANIMATION(Zapdos); -SINGLE_ANIMATION(Moltres); -SINGLE_ANIMATION(Dratini); -SINGLE_ANIMATION(Dragonair); -SINGLE_ANIMATION(Dragonite); -SINGLE_ANIMATION(Mewtwo); -SINGLE_ANIMATION(Mew); -SINGLE_ANIMATION(Chikorita); -SINGLE_ANIMATION(Bayleef); -SINGLE_ANIMATION(Meganium); -SINGLE_ANIMATION(Cyndaquil); -SINGLE_ANIMATION(Quilava); -SINGLE_ANIMATION(Typhlosion); -SINGLE_ANIMATION(Totodile); -SINGLE_ANIMATION(Croconaw); -SINGLE_ANIMATION(Feraligatr); -SINGLE_ANIMATION(Sentret); -SINGLE_ANIMATION(Furret); -SINGLE_ANIMATION(Hoothoot); -SINGLE_ANIMATION(Noctowl); -SINGLE_ANIMATION(Ledyba); -SINGLE_ANIMATION(Ledian); -SINGLE_ANIMATION(Spinarak); -SINGLE_ANIMATION(Ariados); -SINGLE_ANIMATION(Crobat); -DOUBLE_ANIMATION(Chinchou); -DOUBLE_ANIMATION(Lanturn); -DOUBLE_ANIMATION(Pichu); -SINGLE_ANIMATION(Cleffa); -DOUBLE_ANIMATION(Igglybuff); -SINGLE_ANIMATION(Togepi); -SINGLE_ANIMATION(Togetic); -DOUBLE_ANIMATION(Natu); -DOUBLE_ANIMATION(Xatu); -SINGLE_ANIMATION(Mareep); -SINGLE_ANIMATION(Flaaffy); -SINGLE_ANIMATION(Ampharos); -SINGLE_ANIMATION(Bellossom); -SINGLE_ANIMATION(Marill); -SINGLE_ANIMATION(Azumarill); -SINGLE_ANIMATION(Sudowoodo); -SINGLE_ANIMATION(Politoed); -SINGLE_ANIMATION(Hoppip); -SINGLE_ANIMATION(Skiploom); -SINGLE_ANIMATION(Jumpluff); -SINGLE_ANIMATION(Aipom); -SINGLE_ANIMATION(Sunkern); -SINGLE_ANIMATION(Sunflora); -SINGLE_ANIMATION(Yanma); -SINGLE_ANIMATION(Wooper); -SINGLE_ANIMATION(Quagsire); -SINGLE_ANIMATION(Espeon); -SINGLE_ANIMATION(Umbreon); -SINGLE_ANIMATION(Murkrow); -SINGLE_ANIMATION(Slowking); -SINGLE_ANIMATION(Misdreavus); -SINGLE_ANIMATION(Unown); -DOUBLE_ANIMATION(Wobbuffet); -DOUBLE_ANIMATION(Girafarig); -SINGLE_ANIMATION(Pineco); -SINGLE_ANIMATION(Forretress); -SINGLE_ANIMATION(Dunsparce); -SINGLE_ANIMATION(Gligar); -SINGLE_ANIMATION(Steelix); -SINGLE_ANIMATION(Snubbull); -SINGLE_ANIMATION(Granbull); -SINGLE_ANIMATION(Qwilfish); -SINGLE_ANIMATION(Scizor); -SINGLE_ANIMATION(Shuckle); -SINGLE_ANIMATION(Heracross); -SINGLE_ANIMATION(Sneasel); -SINGLE_ANIMATION(Teddiursa); -SINGLE_ANIMATION(Ursaring); -DOUBLE_ANIMATION(Slugma); -DOUBLE_ANIMATION(Magcargo); -SINGLE_ANIMATION(Swinub); -SINGLE_ANIMATION(Piloswine); -DOUBLE_ANIMATION(Corsola); -SINGLE_ANIMATION(Remoraid); -SINGLE_ANIMATION(Octillery); -SINGLE_ANIMATION(Delibird); -SINGLE_ANIMATION(Mantine); -SINGLE_ANIMATION(Skarmory); -SINGLE_ANIMATION(Houndour); -SINGLE_ANIMATION(Houndoom); -DOUBLE_ANIMATION(Kingdra); -DOUBLE_ANIMATION(Phanpy); -SINGLE_ANIMATION(Donphan); -SINGLE_ANIMATION(Porygon2); -SINGLE_ANIMATION(Stantler); -SINGLE_ANIMATION(Smeargle); -SINGLE_ANIMATION(Tyrogue); -SINGLE_ANIMATION(Hitmontop); -SINGLE_ANIMATION(Smoochum); -SINGLE_ANIMATION(Elekid); -SINGLE_ANIMATION(Magby); -SINGLE_ANIMATION(Miltank); -SINGLE_ANIMATION(Blissey); -SINGLE_ANIMATION(Raikou); -SINGLE_ANIMATION(Entei); -SINGLE_ANIMATION(Suicune); -SINGLE_ANIMATION(Larvitar); -SINGLE_ANIMATION(Pupitar); -SINGLE_ANIMATION(Tyranitar); -SINGLE_ANIMATION(Lugia); -SINGLE_ANIMATION(HoOh); -SINGLE_ANIMATION(Celebi); -SINGLE_ANIMATION(OldUnownB); -SINGLE_ANIMATION(Treecko); -SINGLE_ANIMATION(Grovyle); -SINGLE_ANIMATION(Sceptile); -SINGLE_ANIMATION(Torchic); -SINGLE_ANIMATION(Combusken); -static const union AnimCmd *const sAnims_Blaziken[] ={ - sAnim_GeneralFrame0, - sAnim_Blaziken_1, - sAnim_Blaziken_2, - sAnim_Blaziken_3, - sAnim_Blaziken_4, -}; -SINGLE_ANIMATION(Mudkip); -SINGLE_ANIMATION(Marshtomp); -SINGLE_ANIMATION(Swampert); -SINGLE_ANIMATION(Poochyena); -SINGLE_ANIMATION(Mightyena); -SINGLE_ANIMATION(Zigzagoon); -SINGLE_ANIMATION(Linoone); -SINGLE_ANIMATION(Wurmple); -DOUBLE_ANIMATION(Silcoon); -DOUBLE_ANIMATION(Beautifly); -DOUBLE_ANIMATION(Cascoon); -DOUBLE_ANIMATION(Dustox); -SINGLE_ANIMATION(Lotad); -SINGLE_ANIMATION(Lombre); -SINGLE_ANIMATION(Ludicolo); -SINGLE_ANIMATION(Seedot); -SINGLE_ANIMATION(Nuzleaf); -SINGLE_ANIMATION(Shiftry); -SINGLE_ANIMATION(Nincada); -SINGLE_ANIMATION(Ninjask); -SINGLE_ANIMATION(Shedinja); -SINGLE_ANIMATION(Taillow); -SINGLE_ANIMATION(Swellow); -SINGLE_ANIMATION(Shroomish); -SINGLE_ANIMATION(Breloom); -SINGLE_ANIMATION(Spinda); -SINGLE_ANIMATION(Wingull); -SINGLE_ANIMATION(Pelipper); -DOUBLE_ANIMATION(Surskit); -DOUBLE_ANIMATION(Masquerain); -SINGLE_ANIMATION(Wailmer); -SINGLE_ANIMATION(Wailord); -SINGLE_ANIMATION(Skitty); -SINGLE_ANIMATION(Delcatty); -SINGLE_ANIMATION(Kecleon); -SINGLE_ANIMATION(Baltoy); -SINGLE_ANIMATION(Claydol); -SINGLE_ANIMATION(Nosepass); -SINGLE_ANIMATION(Torkoal); -SINGLE_ANIMATION(Sableye); -SINGLE_ANIMATION(Barboach); -SINGLE_ANIMATION(Whiscash); -SINGLE_ANIMATION(Luvdisc); -SINGLE_ANIMATION(Corphish); -SINGLE_ANIMATION(Crawdaunt); -SINGLE_ANIMATION(Feebas); -SINGLE_ANIMATION(Milotic); -SINGLE_ANIMATION(Carvanha); -SINGLE_ANIMATION(Sharpedo); -SINGLE_ANIMATION(Trapinch); -SINGLE_ANIMATION(Vibrava); -SINGLE_ANIMATION(Flygon); -SINGLE_ANIMATION(Makuhita); -SINGLE_ANIMATION(Hariyama); -SINGLE_ANIMATION(Electrike); -SINGLE_ANIMATION(Manectric); -SINGLE_ANIMATION(Numel); -SINGLE_ANIMATION(Camerupt); -SINGLE_ANIMATION(Spheal); -SINGLE_ANIMATION(Sealeo); -SINGLE_ANIMATION(Walrein); -SINGLE_ANIMATION(Cacnea); -SINGLE_ANIMATION(Cacturne); -SINGLE_ANIMATION(Snorunt); -SINGLE_ANIMATION(Glalie); -DOUBLE_ANIMATION(Lunatone); -DOUBLE_ANIMATION(Solrock); -SINGLE_ANIMATION(Azurill); -SINGLE_ANIMATION(Spoink); -SINGLE_ANIMATION(Grumpig); -SINGLE_ANIMATION(Plusle); -SINGLE_ANIMATION(Minun); -SINGLE_ANIMATION(Mawile); -SINGLE_ANIMATION(Meditite); -SINGLE_ANIMATION(Medicham); -DOUBLE_ANIMATION(Swablu); -DOUBLE_ANIMATION(Altaria); -SINGLE_ANIMATION(Wynaut); -SINGLE_ANIMATION(Duskull); -SINGLE_ANIMATION(Dusclops); -SINGLE_ANIMATION(Roselia); -SINGLE_ANIMATION(Slakoth); -SINGLE_ANIMATION(Vigoroth); -SINGLE_ANIMATION(Slaking); -SINGLE_ANIMATION(Gulpin); -SINGLE_ANIMATION(Swalot); -SINGLE_ANIMATION(Tropius); -SINGLE_ANIMATION(Whismur); -SINGLE_ANIMATION(Loudred); -SINGLE_ANIMATION(Exploud); -SINGLE_ANIMATION(Clamperl); -SINGLE_ANIMATION(Huntail); -SINGLE_ANIMATION(Gorebyss); -SINGLE_ANIMATION(Absol); -SINGLE_ANIMATION(Shuppet); -SINGLE_ANIMATION(Banette); -SINGLE_ANIMATION(Seviper); -SINGLE_ANIMATION(Zangoose); -SINGLE_ANIMATION(Relicanth); -SINGLE_ANIMATION(Aron); -SINGLE_ANIMATION(Lairon); -SINGLE_ANIMATION(Aggron); -SINGLE_ANIMATION(CastformNormal); -SINGLE_ANIMATION(CastformSunny); -SINGLE_ANIMATION(CastformRainy); -SINGLE_ANIMATION(CastformSnowy); -SINGLE_ANIMATION(Volbeat); -SINGLE_ANIMATION(Illumise); -SINGLE_ANIMATION(Lileep); -SINGLE_ANIMATION(Cradily); -SINGLE_ANIMATION(Anorith); -SINGLE_ANIMATION(Armaldo); -SINGLE_ANIMATION(Ralts); -SINGLE_ANIMATION(Kirlia); -SINGLE_ANIMATION(Gardevoir); -SINGLE_ANIMATION(Bagon); -SINGLE_ANIMATION(Shelgon); -SINGLE_ANIMATION(Salamence); -SINGLE_ANIMATION(Beldum); -SINGLE_ANIMATION(Metang); -SINGLE_ANIMATION(Metagross); -DOUBLE_ANIMATION(Regirock); -SINGLE_ANIMATION(Regice); -DOUBLE_ANIMATION(Registeel); -DOUBLE_ANIMATION(Kyogre); -DOUBLE_ANIMATION(Groudon); -DOUBLE_ANIMATION(Rayquaza); -DOUBLE_ANIMATION(Latias); -DOUBLE_ANIMATION(Latios); -DOUBLE_ANIMATION(Jirachi); -SINGLE_ANIMATION(DeoxysNormal); -SINGLE_ANIMATION(Chimecho); -SINGLE_ANIMATION(Egg); -SINGLE_ANIMATION(UnownB); -SINGLE_ANIMATION(UnownC); -SINGLE_ANIMATION(UnownD); -SINGLE_ANIMATION(UnownE); -SINGLE_ANIMATION(UnownF); -SINGLE_ANIMATION(UnownG); -SINGLE_ANIMATION(UnownH); -SINGLE_ANIMATION(UnownI); -SINGLE_ANIMATION(UnownJ); -SINGLE_ANIMATION(UnownK); -SINGLE_ANIMATION(UnownL); -SINGLE_ANIMATION(UnownM); -SINGLE_ANIMATION(UnownN); -SINGLE_ANIMATION(UnownO); -SINGLE_ANIMATION(UnownP); -SINGLE_ANIMATION(UnownQ); -SINGLE_ANIMATION(UnownR); -SINGLE_ANIMATION(UnownS); -SINGLE_ANIMATION(UnownT); -SINGLE_ANIMATION(UnownU); -SINGLE_ANIMATION(UnownV); -SINGLE_ANIMATION(UnownW); -SINGLE_ANIMATION(UnownX); -SINGLE_ANIMATION(UnownY); -SINGLE_ANIMATION(UnownZ); -SINGLE_ANIMATION(UnownEMark); -SINGLE_ANIMATION(UnownQMark); -#if P_GEN_4_POKEMON == TRUE -SINGLE_ANIMATION(Turtwig); -SINGLE_ANIMATION(Grotle); -SINGLE_ANIMATION(Torterra); -SINGLE_ANIMATION(Chimchar); -SINGLE_ANIMATION(Monferno); -SINGLE_ANIMATION(Infernape); -SINGLE_ANIMATION(Piplup); -SINGLE_ANIMATION(Prinplup); -SINGLE_ANIMATION(Empoleon); -SINGLE_ANIMATION(Starly); -SINGLE_ANIMATION(Staravia); -SINGLE_ANIMATION(Staraptor); -SINGLE_ANIMATION(Bidoof); -DOUBLE_ANIMATION(Bibarel); -SINGLE_ANIMATION(Kricketot); -SINGLE_ANIMATION(Kricketune); -SINGLE_ANIMATION(Shinx); -SINGLE_ANIMATION(Luxio); -DOUBLE_ANIMATION(Luxray); -SINGLE_ANIMATION(Budew); -SINGLE_ANIMATION(Roserade); -SINGLE_ANIMATION(Cranidos); -SINGLE_ANIMATION(Rampardos); -SINGLE_ANIMATION(Shieldon); -SINGLE_ANIMATION(Bastiodon); -SINGLE_ANIMATION(Burmy); -SINGLE_ANIMATION(Wormadam); -SINGLE_ANIMATION(Mothim); -SINGLE_ANIMATION(Combee); -SINGLE_ANIMATION(Vespiquen); -SINGLE_ANIMATION(Pachirisu); -SINGLE_ANIMATION(Buizel); -SINGLE_ANIMATION(Floatzel); -SINGLE_ANIMATION(Cherubi); -DOUBLE_ANIMATION(CherrimOvercast); -SINGLE_ANIMATION(CherrimSunshine); -SINGLE_ANIMATION(Shellos); -SINGLE_ANIMATION(Gastrodon); -SINGLE_ANIMATION(Ambipom); -SINGLE_ANIMATION(Drifloon); -SINGLE_ANIMATION(Drifblim); -SINGLE_ANIMATION(Buneary); -SINGLE_ANIMATION(Lopunny); -SINGLE_ANIMATION(Mismagius); -SINGLE_ANIMATION(Honchkrow); -SINGLE_ANIMATION(Glameow); -SINGLE_ANIMATION(Purugly); -SINGLE_ANIMATION(Chingling); -SINGLE_ANIMATION(Stunky); -SINGLE_ANIMATION(Skuntank); -SINGLE_ANIMATION(Bronzor); -DOUBLE_ANIMATION(Bronzong); -SINGLE_ANIMATION(Bonsly); -SINGLE_ANIMATION(MimeJr); -SINGLE_ANIMATION(Happiny); -SINGLE_ANIMATION(Chatot); -SINGLE_ANIMATION(Spiritomb); -SINGLE_ANIMATION(Gible); -SINGLE_ANIMATION(Gabite); -SINGLE_ANIMATION(Garchomp); -SINGLE_ANIMATION(Munchlax); -SINGLE_ANIMATION(Riolu); -SINGLE_ANIMATION(Lucario); -SINGLE_ANIMATION(Hippopotas); -SINGLE_ANIMATION(Hippowdon); -SINGLE_ANIMATION(Skorupi); -SINGLE_ANIMATION(Drapion); -SINGLE_ANIMATION(Croagunk); -SINGLE_ANIMATION(Toxicroak); -SINGLE_ANIMATION(Carnivine); -SINGLE_ANIMATION(Finneon); -SINGLE_ANIMATION(Lumineon); -SINGLE_ANIMATION(Mantyke); -SINGLE_ANIMATION(Snover); -SINGLE_ANIMATION(Abomasnow); -SINGLE_ANIMATION(Weavile); -SINGLE_ANIMATION(Magnezone); -SINGLE_ANIMATION(Lickilicky); -SINGLE_ANIMATION(Rhyperior); -SINGLE_ANIMATION(Tangrowth); -SINGLE_ANIMATION(Electivire); -SINGLE_ANIMATION(Magmortar); -SINGLE_ANIMATION(Togekiss); -SINGLE_ANIMATION(Yanmega); -SINGLE_ANIMATION(Leafeon); -SINGLE_ANIMATION(Glaceon); -SINGLE_ANIMATION(Gliscor); -SINGLE_ANIMATION(Mamoswine); -SINGLE_ANIMATION(PORYGON_Z); -SINGLE_ANIMATION(Gallade); -DOUBLE_ANIMATION(Probopass); -SINGLE_ANIMATION(Dusknoir); -SINGLE_ANIMATION(Froslass); -DOUBLE_ANIMATION(Rotom); -SINGLE_ANIMATION(RotomHeat); -SINGLE_ANIMATION(RotomFrost); -SINGLE_ANIMATION(RotomFan); -SINGLE_ANIMATION(RotomMow); -SINGLE_ANIMATION(RotomWash); -SINGLE_ANIMATION(Uxie); -SINGLE_ANIMATION(Mesprit); -SINGLE_ANIMATION(Azelf); -SINGLE_ANIMATION(Dialga); -SINGLE_ANIMATION(Palkia); -SINGLE_ANIMATION(Heatran); -SINGLE_ANIMATION(Regigigas); -SINGLE_ANIMATION(GiratinaAltered); -SINGLE_ANIMATION(Cresselia); -SINGLE_ANIMATION(Phione); -SINGLE_ANIMATION(Manaphy); -SINGLE_ANIMATION(Darkrai); -SINGLE_ANIMATION(ShayminLand); -SINGLE_ANIMATION(Arceus); -#endif -#if P_GEN_5_POKEMON == TRUE -SINGLE_ANIMATION(Victini); -SINGLE_ANIMATION(Snivy); -SINGLE_ANIMATION(Servine); -DOUBLE_ANIMATION(Serperior); -SINGLE_ANIMATION(Tepig); -SINGLE_ANIMATION(Pignite); -SINGLE_ANIMATION(Emboar); -SINGLE_ANIMATION(Oshawott); -SINGLE_ANIMATION(Dewott); -SINGLE_ANIMATION(Samurott); -SINGLE_ANIMATION(Patrat); -SINGLE_ANIMATION(Watchog); -SINGLE_ANIMATION(Lillipup); -SINGLE_ANIMATION(Herdier); -SINGLE_ANIMATION(Stoutland); -SINGLE_ANIMATION(Purrloin); -SINGLE_ANIMATION(Liepard); -SINGLE_ANIMATION(Pansage); -SINGLE_ANIMATION(Simisage); -SINGLE_ANIMATION(Pansear); -DOUBLE_ANIMATION(Simisear); -SINGLE_ANIMATION(Panpour); -SINGLE_ANIMATION(Simipour); -SINGLE_ANIMATION(Munna); -DOUBLE_ANIMATION(Musharna); -SINGLE_ANIMATION(Pidove); -SINGLE_ANIMATION(Tranquill); -SINGLE_ANIMATION(Unfezant); -SINGLE_ANIMATION(Blitzle); -SINGLE_ANIMATION(Zebstrika); -SINGLE_ANIMATION(Roggenrola); -SINGLE_ANIMATION(Boldore); -SINGLE_ANIMATION(Gigalith); -SINGLE_ANIMATION(Woobat); -SINGLE_ANIMATION(Swoobat); -DOUBLE_ANIMATION(Drilbur); -SINGLE_ANIMATION(Excadrill); -SINGLE_ANIMATION(Audino); -SINGLE_ANIMATION(Timburr); -SINGLE_ANIMATION(Gurdurr); -SINGLE_ANIMATION(Conkeldurr); -SINGLE_ANIMATION(Tympole); -SINGLE_ANIMATION(Palpitoad); -SINGLE_ANIMATION(Seismitoad); -SINGLE_ANIMATION(Throh); -SINGLE_ANIMATION(Sawk); -DOUBLE_ANIMATION(Sewaddle); -SINGLE_ANIMATION(Swadloon); -SINGLE_ANIMATION(Leavanny); -SINGLE_ANIMATION(Venipede); -SINGLE_ANIMATION(Whirlipede); -SINGLE_ANIMATION(Scolipede); -SINGLE_ANIMATION(Cottonee); -SINGLE_ANIMATION(Whimsicott); -SINGLE_ANIMATION(Petilil); -SINGLE_ANIMATION(Lilligant); -SINGLE_ANIMATION(Basculin); -SINGLE_ANIMATION(Sandile); -SINGLE_ANIMATION(Krokorok); -DOUBLE_ANIMATION(Krookodile); -SINGLE_ANIMATION(Darumaka); -SINGLE_ANIMATION(DarmanitanStandardMode); -SINGLE_ANIMATION(Maractus); -SINGLE_ANIMATION(Dwebble); -SINGLE_ANIMATION(Crustle); -SINGLE_ANIMATION(Scraggy); -SINGLE_ANIMATION(Scrafty); -SINGLE_ANIMATION(Sigilyph); -SINGLE_ANIMATION(Yamask); -SINGLE_ANIMATION(Cofagrigus); -SINGLE_ANIMATION(Tirtouga); -SINGLE_ANIMATION(Carracosta); -SINGLE_ANIMATION(Archen); -SINGLE_ANIMATION(Archeops); -SINGLE_ANIMATION(Trubbish); -SINGLE_ANIMATION(Garbodor); -SINGLE_ANIMATION(Zorua); -SINGLE_ANIMATION(Zoroark); -SINGLE_ANIMATION(Minccino); -SINGLE_ANIMATION(Cinccino); -SINGLE_ANIMATION(Gothita); -DOUBLE_ANIMATION(Gothorita); -SINGLE_ANIMATION(Gothitelle); -SINGLE_ANIMATION(Solosis); -SINGLE_ANIMATION(Duosion); -SINGLE_ANIMATION(Reuniclus); -SINGLE_ANIMATION(Ducklett); -SINGLE_ANIMATION(Swanna); -SINGLE_ANIMATION(Vanillite); -SINGLE_ANIMATION(Vanillish); -SINGLE_ANIMATION(Vanilluxe); -SINGLE_ANIMATION(Deerling); -SINGLE_ANIMATION(Sawsbuck); -SINGLE_ANIMATION(Emolga); -SINGLE_ANIMATION(Karrablast); -SINGLE_ANIMATION(Escavalier); -DOUBLE_ANIMATION(Foongus); -SINGLE_ANIMATION(Amoonguss); -SINGLE_ANIMATION(Frillish); -SINGLE_ANIMATION(Jellicent); -SINGLE_ANIMATION(Alomomola); -SINGLE_ANIMATION(Joltik); -SINGLE_ANIMATION(Galvantula); -SINGLE_ANIMATION(Ferroseed); -DOUBLE_ANIMATION(Ferrothorn); -SINGLE_ANIMATION(Klink); -SINGLE_ANIMATION(Klang); -SINGLE_ANIMATION(Klinklang); -SINGLE_ANIMATION(Tynamo); -SINGLE_ANIMATION(Eelektrik); -SINGLE_ANIMATION(Eelektross); -SINGLE_ANIMATION(Elgyem); -SINGLE_ANIMATION(Beheeyem); -SINGLE_ANIMATION(Litwick); -SINGLE_ANIMATION(Lampent); -SINGLE_ANIMATION(Chandelure); -SINGLE_ANIMATION(Axew); -SINGLE_ANIMATION(Fraxure); -SINGLE_ANIMATION(Haxorus); -SINGLE_ANIMATION(Cubchoo); -SINGLE_ANIMATION(Beartic); -DOUBLE_ANIMATION(Cryogonal); -SINGLE_ANIMATION(Shelmet); -SINGLE_ANIMATION(Accelgor); -SINGLE_ANIMATION(Stunfisk); -SINGLE_ANIMATION(Mienfoo); -SINGLE_ANIMATION(Mienshao); -SINGLE_ANIMATION(Druddigon); -SINGLE_ANIMATION(Golett); -SINGLE_ANIMATION(Golurk); -SINGLE_ANIMATION(Pawniard); -SINGLE_ANIMATION(Bisharp); -SINGLE_ANIMATION(Bouffalant); -SINGLE_ANIMATION(Rufflet); -SINGLE_ANIMATION(Braviary); -SINGLE_ANIMATION(Vullaby); -SINGLE_ANIMATION(Mandibuzz); -SINGLE_ANIMATION(Heatmor); -SINGLE_ANIMATION(Durant); -SINGLE_ANIMATION(Deino); -SINGLE_ANIMATION(Zweilous); -SINGLE_ANIMATION(Hydreigon); -SINGLE_ANIMATION(Larvesta); -SINGLE_ANIMATION(Volcarona); -SINGLE_ANIMATION(Cobalion); -DOUBLE_ANIMATION(Terrakion); -SINGLE_ANIMATION(Virizion); -SINGLE_ANIMATION(TornadusIncarnate); -SINGLE_ANIMATION(ThundurusIncarnate); -SINGLE_ANIMATION(Reshiram); -SINGLE_ANIMATION(Zekrom); -SINGLE_ANIMATION(LandorusIncarnate); -SINGLE_ANIMATION(Kyurem); -SINGLE_ANIMATION(KeldeoOrdinary); -DOUBLE_ANIMATION(MeloettaAria); -SINGLE_ANIMATION(Genesect); -#endif -#if P_GEN_6_POKEMON == TRUE -SINGLE_ANIMATION(Chespin); -DOUBLE_ANIMATION(Quilladin); -SINGLE_ANIMATION(Chesnaught); -SINGLE_ANIMATION(Fennekin); -SINGLE_ANIMATION(Braixen); -SINGLE_ANIMATION(Delphox); -SINGLE_ANIMATION(Froakie); -SINGLE_ANIMATION(Frogadier); -SINGLE_ANIMATION(Greninja); -SINGLE_ANIMATION(GreninjaAsh); -SINGLE_ANIMATION(Bunnelby); -SINGLE_ANIMATION(Diggersby); -SINGLE_ANIMATION(Fletchling); -SINGLE_ANIMATION(Fletchinder); -DOUBLE_ANIMATION(Talonflame); -SINGLE_ANIMATION(Scatterbug); -SINGLE_ANIMATION(Spewpa); -SINGLE_ANIMATION(Vivillon); -SINGLE_ANIMATION(Litleo); -SINGLE_ANIMATION(Pyroar); -DOUBLE_ANIMATION(Flabebe); -SINGLE_ANIMATION(Floette); -DOUBLE_ANIMATION(Florges); -SINGLE_ANIMATION(Skiddo); -SINGLE_ANIMATION(Gogoat); -SINGLE_ANIMATION(Pancham); -SINGLE_ANIMATION(Pangoro); -SINGLE_ANIMATION(Furfrou); -SINGLE_ANIMATION(Espurr); -SINGLE_ANIMATION(Meowstic); -SINGLE_ANIMATION(Honedge); -DOUBLE_ANIMATION(Doublade); -SINGLE_ANIMATION(AegislashShield); -SINGLE_ANIMATION(Spritzee); -SINGLE_ANIMATION(Aromatisse); -SINGLE_ANIMATION(Swirlix); -SINGLE_ANIMATION(Slurpuff); -SINGLE_ANIMATION(Inkay); -SINGLE_ANIMATION(Malamar); -SINGLE_ANIMATION(Binacle); -SINGLE_ANIMATION(Barbaracle); -SINGLE_ANIMATION(Skrelp); -SINGLE_ANIMATION(Dragalge); -SINGLE_ANIMATION(Clauncher); -SINGLE_ANIMATION(Clawitzer); -SINGLE_ANIMATION(Helioptile); -SINGLE_ANIMATION(Heliolisk); -SINGLE_ANIMATION(Tyrunt); -SINGLE_ANIMATION(Tyrantrum); -SINGLE_ANIMATION(Amaura); -SINGLE_ANIMATION(Aurorus); -SINGLE_ANIMATION(Sylveon); -SINGLE_ANIMATION(Hawlucha); -SINGLE_ANIMATION(Dedenne); -SINGLE_ANIMATION(Carbink); -SINGLE_ANIMATION(Goomy); -SINGLE_ANIMATION(Sliggoo); -SINGLE_ANIMATION(Goodra); -SINGLE_ANIMATION(Klefki); -SINGLE_ANIMATION(Phantump); -SINGLE_ANIMATION(Trevenant); -SINGLE_ANIMATION(Pumpkaboo); -SINGLE_ANIMATION(Gourgeist); -DOUBLE_ANIMATION(Bergmite); -SINGLE_ANIMATION(Avalugg); -SINGLE_ANIMATION(Noibat); -SINGLE_ANIMATION(Noivern); -SINGLE_ANIMATION(Xerneas); -SINGLE_ANIMATION(Yveltal); -SINGLE_ANIMATION(Zygarde50); -SINGLE_ANIMATION(Diancie); -SINGLE_ANIMATION(Hoopa); -SINGLE_ANIMATION(Volcanion); -#endif -#if P_GEN_7_POKEMON == TRUE -SINGLE_ANIMATION(Rowlet); -SINGLE_ANIMATION(Dartrix); -SINGLE_ANIMATION(Decidueye); -SINGLE_ANIMATION(Litten); -SINGLE_ANIMATION(Torracat); -SINGLE_ANIMATION(Incineroar); -SINGLE_ANIMATION(Popplio); -SINGLE_ANIMATION(Brionne); -SINGLE_ANIMATION(Primarina); -SINGLE_ANIMATION(Pikipek); -SINGLE_ANIMATION(Trumbeak); -SINGLE_ANIMATION(Toucannon); -SINGLE_ANIMATION(Yungoos); -SINGLE_ANIMATION(Gumshoos); -SINGLE_ANIMATION(Grubbin); -SINGLE_ANIMATION(Charjabug); -SINGLE_ANIMATION(Vikavolt); -SINGLE_ANIMATION(Crabrawler); -SINGLE_ANIMATION(Crabominable); -SINGLE_ANIMATION(Oricorio); -SINGLE_ANIMATION(Cutiefly); -SINGLE_ANIMATION(Ribombee); -SINGLE_ANIMATION(Rockruff); -SINGLE_ANIMATION(LycanrocMidday); -SINGLE_ANIMATION(WishiwashiSolo); -SINGLE_ANIMATION(Mareanie); -SINGLE_ANIMATION(Toxapex); -SINGLE_ANIMATION(Mudbray); -SINGLE_ANIMATION(Mudsdale); -SINGLE_ANIMATION(Dewpider); -SINGLE_ANIMATION(Araquanid); -SINGLE_ANIMATION(Fomantis); -SINGLE_ANIMATION(Lurantis); -SINGLE_ANIMATION(Morelull); -SINGLE_ANIMATION(Shiinotic); -SINGLE_ANIMATION(Salandit); -SINGLE_ANIMATION(Salazzle); -SINGLE_ANIMATION(Stufful); -SINGLE_ANIMATION(Bewear); -SINGLE_ANIMATION(Bounsweet); -SINGLE_ANIMATION(Steenee); -SINGLE_ANIMATION(Tsareena); -SINGLE_ANIMATION(Comfey); -SINGLE_ANIMATION(Oranguru); -SINGLE_ANIMATION(Passimian); -SINGLE_ANIMATION(Wimpod); -SINGLE_ANIMATION(Golisopod); -SINGLE_ANIMATION(Sandygast); -SINGLE_ANIMATION(Palossand); -SINGLE_ANIMATION(Pyukumuku); -SINGLE_ANIMATION(TypeNull); -SINGLE_ANIMATION(Silvally); -SINGLE_ANIMATION(MiniorMeteor); -SINGLE_ANIMATION(Komala); -SINGLE_ANIMATION(Turtonator); -SINGLE_ANIMATION(Togedemaru); -SINGLE_ANIMATION(MimikyuDisguised); -SINGLE_ANIMATION(Bruxish); -SINGLE_ANIMATION(Drampa); -SINGLE_ANIMATION(Dhelmise); -SINGLE_ANIMATION(JANGMO_O); -SINGLE_ANIMATION(HAKAMO_O); -SINGLE_ANIMATION(KOMMO_O); -SINGLE_ANIMATION(TapuKoko); -SINGLE_ANIMATION(TapuLele); -SINGLE_ANIMATION(TapuBulu); -SINGLE_ANIMATION(TapuFini); -SINGLE_ANIMATION(Cosmog); -SINGLE_ANIMATION(Cosmoem); -SINGLE_ANIMATION(Solgaleo); -SINGLE_ANIMATION(Lunala); -SINGLE_ANIMATION(Nihilego); -SINGLE_ANIMATION(Buzzwole); -SINGLE_ANIMATION(Pheromosa); -SINGLE_ANIMATION(Xurkitree); -SINGLE_ANIMATION(Celesteela); -SINGLE_ANIMATION(Kartana); -SINGLE_ANIMATION(Guzzlord); -SINGLE_ANIMATION(Necrozma); -SINGLE_ANIMATION(Magearna); -SINGLE_ANIMATION(Marshadow); -SINGLE_ANIMATION(Poipole); -SINGLE_ANIMATION(Naganadel); -SINGLE_ANIMATION(Stakataka); -SINGLE_ANIMATION(Blacephalon); -SINGLE_ANIMATION(Zeraora); -SINGLE_ANIMATION(Meltan); -SINGLE_ANIMATION(Melmetal); -#endif -#if P_GEN_8_POKEMON == TRUE -SINGLE_ANIMATION(Grookey); -SINGLE_ANIMATION(Thwackey); -SINGLE_ANIMATION(Rillaboom); -SINGLE_ANIMATION(Scorbunny); -SINGLE_ANIMATION(Raboot); -SINGLE_ANIMATION(Cinderace); -SINGLE_ANIMATION(Sobble); -SINGLE_ANIMATION(Drizzile); -SINGLE_ANIMATION(Inteleon); -SINGLE_ANIMATION(Skwovet); -SINGLE_ANIMATION(Greedent); -SINGLE_ANIMATION(Rookidee); -SINGLE_ANIMATION(Corvisquire); -SINGLE_ANIMATION(Corviknight); -SINGLE_ANIMATION(Blipbug); -SINGLE_ANIMATION(Dottler); -SINGLE_ANIMATION(Orbeetle); -SINGLE_ANIMATION(Nickit); -SINGLE_ANIMATION(Thievul); -SINGLE_ANIMATION(Gossifleur); -SINGLE_ANIMATION(Eldegoss); -SINGLE_ANIMATION(Wooloo); -SINGLE_ANIMATION(Dubwool); -SINGLE_ANIMATION(Chewtle); -SINGLE_ANIMATION(Drednaw); -SINGLE_ANIMATION(Yamper); -SINGLE_ANIMATION(Boltund); -SINGLE_ANIMATION(Rolycoly); -SINGLE_ANIMATION(Carkol); -SINGLE_ANIMATION(Coalossal); -SINGLE_ANIMATION(Applin); -SINGLE_ANIMATION(Flapple); -SINGLE_ANIMATION(Appletun); -SINGLE_ANIMATION(Silicobra); -SINGLE_ANIMATION(Sandaconda); -SINGLE_ANIMATION(Cramorant); -SINGLE_ANIMATION(Arrokuda); -SINGLE_ANIMATION(Barraskewda); -SINGLE_ANIMATION(Toxel); -SINGLE_ANIMATION(Toxtricity); -SINGLE_ANIMATION(Sizzlipede); -SINGLE_ANIMATION(Centiskorch); -SINGLE_ANIMATION(Clobbopus); -SINGLE_ANIMATION(Grapploct); -SINGLE_ANIMATION(Sinistea); -SINGLE_ANIMATION(Polteageist); -SINGLE_ANIMATION(Hatenna); -SINGLE_ANIMATION(Hattrem); -SINGLE_ANIMATION(Hatterene); -SINGLE_ANIMATION(Impidimp); -SINGLE_ANIMATION(Morgrem); -SINGLE_ANIMATION(Grimmsnarl); -SINGLE_ANIMATION(Obstagoon); -SINGLE_ANIMATION(Perrserker); -SINGLE_ANIMATION(Cursola); -SINGLE_ANIMATION(Sirfetchd); -SINGLE_ANIMATION(MrRime); -SINGLE_ANIMATION(Runerigus); -SINGLE_ANIMATION(Milcery); -SINGLE_ANIMATION(Alcremie); -SINGLE_ANIMATION(Falinks); -SINGLE_ANIMATION(Pincurchin); -SINGLE_ANIMATION(Snom); -SINGLE_ANIMATION(Frosmoth); -SINGLE_ANIMATION(Stonjourner); -SINGLE_ANIMATION(Eiscue); -SINGLE_ANIMATION(Indeedee); -SINGLE_ANIMATION(Morpeko); -SINGLE_ANIMATION(Cufant); -SINGLE_ANIMATION(Copperajah); -SINGLE_ANIMATION(Dracozolt); -SINGLE_ANIMATION(Arctozolt); -SINGLE_ANIMATION(Dracovish); -SINGLE_ANIMATION(Arctovish); -SINGLE_ANIMATION(Duraludon); -SINGLE_ANIMATION(Dreepy); -SINGLE_ANIMATION(Drakloak); -SINGLE_ANIMATION(Dragapult); -SINGLE_ANIMATION(Zacian); -SINGLE_ANIMATION(Zamazenta); -SINGLE_ANIMATION(Eternatus); -SINGLE_ANIMATION(Kubfu); -SINGLE_ANIMATION(Urshifu); -SINGLE_ANIMATION(Zarude); -SINGLE_ANIMATION(Regieleki); -SINGLE_ANIMATION(Regidrago); -SINGLE_ANIMATION(Glastrier); -SINGLE_ANIMATION(Spectrier); -SINGLE_ANIMATION(Calyrex); -SINGLE_ANIMATION(Wyrdeer); -SINGLE_ANIMATION(Kleavor); -SINGLE_ANIMATION(Ursaluna); -SINGLE_ANIMATION(Basculegion); -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(BlastoiseMega); -SINGLE_ANIMATION(BeedrillMega); -SINGLE_ANIMATION(PidgeotMega); -SINGLE_ANIMATION(AlakazamMega); -SINGLE_ANIMATION(SlowbroMega); -SINGLE_ANIMATION(GengarMega); -SINGLE_ANIMATION(KangaskhanMega); -SINGLE_ANIMATION(PinsirMega); -SINGLE_ANIMATION(GyaradosMega); -SINGLE_ANIMATION(AerodactylMega); -SINGLE_ANIMATION(MEWTWO_MEGA_X); -SINGLE_ANIMATION(MEWTWO_MEGA_Y); -SINGLE_ANIMATION(AmpharosMega); -SINGLE_ANIMATION(SteelixMega); -SINGLE_ANIMATION(ScizorMega); -SINGLE_ANIMATION(HeracrossMega); -SINGLE_ANIMATION(HoundoomMega); -SINGLE_ANIMATION(TyranitarMega); -SINGLE_ANIMATION(SceptileMega); -SINGLE_ANIMATION(BlazikenMega); -SINGLE_ANIMATION(SwampertMega); -SINGLE_ANIMATION(GardevoirMega); -SINGLE_ANIMATION(SableyeMega); -SINGLE_ANIMATION(MawileMega); -SINGLE_ANIMATION(AggronMega); -SINGLE_ANIMATION(MedichamMega); -SINGLE_ANIMATION(ManectricMega); -SINGLE_ANIMATION(SharpedoMega); -SINGLE_ANIMATION(CameruptMega); -SINGLE_ANIMATION(AltariaMega); -SINGLE_ANIMATION(BanetteMega); -SINGLE_ANIMATION(AbsolMega); -SINGLE_ANIMATION(GlalieMega); -SINGLE_ANIMATION(SalamenceMega); -SINGLE_ANIMATION(MetagrossMega); -SINGLE_ANIMATION(LatiasMega); -SINGLE_ANIMATION(LatiosMega); -SINGLE_ANIMATION(KyogrePrimal); -SINGLE_ANIMATION(GroudonPrimal); -SINGLE_ANIMATION(RayquazaMega); -#if P_GEN_4_POKEMON == TRUE -SINGLE_ANIMATION(LopunnyMega); -SINGLE_ANIMATION(GarchompMega); -SINGLE_ANIMATION(LucarioMega); -SINGLE_ANIMATION(AbomasnowMega); -SINGLE_ANIMATION(GalladeMega); -#endif -#if P_GEN_5_POKEMON == TRUE -SINGLE_ANIMATION(AudinoMega); -#endif -#if P_GEN_6_POKEMON == TRUE -SINGLE_ANIMATION(DiancieMega); -#endif +#if P_ALOLAN_FORMS SINGLE_ANIMATION(RattataAlolan); SINGLE_ANIMATION(RaticateAlolan); -SINGLE_ANIMATION(RaichuAlolan); -SINGLE_ANIMATION(SandshrewAlolan); -SINGLE_ANIMATION(SandslashAlolan); -SINGLE_ANIMATION(VulpixAlolan); -SINGLE_ANIMATION(NinetalesAlolan); -SINGLE_ANIMATION(DiglettAlolan); -SINGLE_ANIMATION(DugtrioAlolan); -SINGLE_ANIMATION(MeowthAlolan); -SINGLE_ANIMATION(PersianAlolan); -SINGLE_ANIMATION(GeodudeAlolan); -SINGLE_ANIMATION(GravelerAlolan); -SINGLE_ANIMATION(GolemAlolan); -SINGLE_ANIMATION(GrimerAlolan); -SINGLE_ANIMATION(MukAlolan); -SINGLE_ANIMATION(ExeggutorAlolan); -SINGLE_ANIMATION(MarowakAlolan); -SINGLE_ANIMATION(MeowthGalarian); -SINGLE_ANIMATION(PonytaGalarian); -SINGLE_ANIMATION(RapidashGalarian); -SINGLE_ANIMATION(SlowpokeGalarian); -SINGLE_ANIMATION(SlowbroGalarian); -SINGLE_ANIMATION(FarfetchdGalarian); -SINGLE_ANIMATION(WeezingGalarian); -SINGLE_ANIMATION(MrMimeGalarian); -SINGLE_ANIMATION(ArticunoGalarian); -SINGLE_ANIMATION(ZapdosGalarian); -SINGLE_ANIMATION(MoltresGalarian); -SINGLE_ANIMATION(SlowkingGalarian); -SINGLE_ANIMATION(CorsolaGalarian); -SINGLE_ANIMATION(ZigzagoonGalarian); -SINGLE_ANIMATION(LinooneGalarian); -#if P_GEN_5_POKEMON == TRUE -SINGLE_ANIMATION(DarumakaGalarian); -SINGLE_ANIMATION(DarmanitanGalarianStandardMode); -SINGLE_ANIMATION(YamaskGalarian); -SINGLE_ANIMATION(StunfiskGalarian); -#endif -SINGLE_ANIMATION(GrowlitheHisuian); -SINGLE_ANIMATION(ArcanineHisuian); -SINGLE_ANIMATION(VoltorbHisuian); -SINGLE_ANIMATION(ElectrodeHisuian); -SINGLE_ANIMATION(TyphlosionHisuian); -SINGLE_ANIMATION(QwilfishHisuian); -SINGLE_ANIMATION(SneaselHisuian); -#if P_GEN_5_POKEMON == TRUE -SINGLE_ANIMATION(SamurottHisuian); -SINGLE_ANIMATION(LilligantHisuian); -SINGLE_ANIMATION(ZoruaHisuian); -SINGLE_ANIMATION(ZoroarkHisuian); -SINGLE_ANIMATION(BraviaryHisuian); -#endif -#if P_GEN_6_POKEMON == TRUE -SINGLE_ANIMATION(SliggooHisuian); -SINGLE_ANIMATION(GoodraHisuian); -SINGLE_ANIMATION(AvaluggHisuian); -#endif -#if P_GEN_7_POKEMON == TRUE -SINGLE_ANIMATION(DecidueyeHisuian); -#endif -SINGLE_ANIMATION(WooperPaldean); -SINGLE_ANIMATION(TaurosPaldean); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA +#if P_FAMILY_SPEAROW +SINGLE_ANIMATION(Spearow); +SINGLE_ANIMATION(Fearow); +#endif //P_FAMILY_SPEAROW +#if P_FAMILY_EKANS +SINGLE_ANIMATION(Ekans); +SINGLE_ANIMATION(Arbok); +#endif //P_FAMILY_EKANS +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Pichu); +SINGLE_ANIMATION(PichuSpikyEared); +#endif //P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Pikachu); +#if P_COSPLAY_PIKACHU_FORMS 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); @@ -12102,1594 +10195,2538 @@ SINGLE_ANIMATION(PikachuKalosCap); SINGLE_ANIMATION(PikachuAlolaCap); SINGLE_ANIMATION(PikachuPartnerCap); SINGLE_ANIMATION(PikachuWorldCap); -SINGLE_ANIMATION(PichuSpikyEared); -DOUBLE_ANIMATION(DeoxysAttack); -DOUBLE_ANIMATION(DeoxysDefense); -DOUBLE_ANIMATION(DeoxysSpeed); -#if P_GEN_4_POKEMON == TRUE +#endif //P_CAP_PIKACHU_FORMS +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(PikachuGigantamax); +#endif //P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(Raichu); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(RaichuAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU +#if P_FAMILY_SANDSHREW +SINGLE_ANIMATION(Sandshrew); +SINGLE_ANIMATION(Sandslash); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(SandshrewAlolan); +SINGLE_ANIMATION(SandslashAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW +#if P_FAMILY_NIDORAN +SINGLE_ANIMATION(NidoranF); +SINGLE_ANIMATION(Nidorina); +SINGLE_ANIMATION(Nidoqueen); +SINGLE_ANIMATION(NidoranM); +SINGLE_ANIMATION(Nidorino); +SINGLE_ANIMATION(Nidoking); +#endif //P_FAMILY_NIDORAN +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Cleffa); +#endif //P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Clefairy); +SINGLE_ANIMATION(Clefable); +#endif //P_FAMILY_CLEFAIRY +#if P_FAMILY_VULPIX +SINGLE_ANIMATION(Vulpix); +SINGLE_ANIMATION(Ninetales); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(VulpixAlolan); +SINGLE_ANIMATION(NinetalesAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Igglybuff); +#endif //P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Jigglypuff); +SINGLE_ANIMATION(Wigglytuff); +#endif //P_FAMILY_JIGGLYPUFF +#if P_FAMILY_ZUBAT +SINGLE_ANIMATION(Zubat); +SINGLE_ANIMATION(Golbat); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Crobat); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT +#if P_FAMILY_ODDISH +SINGLE_ANIMATION(Oddish); +SINGLE_ANIMATION(Gloom); +SINGLE_ANIMATION(Vileplume); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Bellossom); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH +#if P_FAMILY_PARAS +SINGLE_ANIMATION(Paras); +SINGLE_ANIMATION(Parasect); +#endif //P_FAMILY_PARAS +#if P_FAMILY_VENONAT +SINGLE_ANIMATION(Venonat); +SINGLE_ANIMATION(Venomoth); +#endif //P_FAMILY_VENONAT +#if P_FAMILY_DIGLETT +SINGLE_ANIMATION(Diglett); +SINGLE_ANIMATION(Dugtrio); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(DiglettAlolan); +SINGLE_ANIMATION(DugtrioAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT +#if P_FAMILY_MEOWTH +SINGLE_ANIMATION(Meowth); +SINGLE_ANIMATION(Persian); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(MeowthAlolan); +SINGLE_ANIMATION(PersianAlolan); +#endif //P_ALOLAN_FORMS +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(MeowthGalarian); +SINGLE_ANIMATION(Perrserker); +#endif //P_GALARIAN_FORMS +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(MeowthGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MEOWTH +#if P_FAMILY_PSYDUCK +SINGLE_ANIMATION(Psyduck); +SINGLE_ANIMATION(Golduck); +#endif //P_FAMILY_PSYDUCK +#if P_FAMILY_MANKEY +SINGLE_ANIMATION(Mankey); +SINGLE_ANIMATION(Primeape); +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Annihilape); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY +#if P_FAMILY_GROWLITHE +SINGLE_ANIMATION(Growlithe); +SINGLE_ANIMATION(Arcanine); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(GrowlitheHisuian); +SINGLE_ANIMATION(ArcanineHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE +#if P_FAMILY_POLIWAG +SINGLE_ANIMATION(Poliwag); +SINGLE_ANIMATION(Poliwhirl); +SINGLE_ANIMATION(Poliwrath); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Politoed); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG +#if P_FAMILY_ABRA +SINGLE_ANIMATION(Abra); +SINGLE_ANIMATION(Kadabra); +SINGLE_ANIMATION(Alakazam); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AlakazamMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABRA +#if P_FAMILY_MACHOP +SINGLE_ANIMATION(Machop); +SINGLE_ANIMATION(Machoke); +SINGLE_ANIMATION(Machamp); +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(MachampGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MACHOP +#if P_FAMILY_BELLSPROUT +SINGLE_ANIMATION(Bellsprout); +SINGLE_ANIMATION(Weepinbell); +SINGLE_ANIMATION(Victreebel); +#endif //P_FAMILY_BELLSPROUT +#if P_FAMILY_TENTACOOL +SINGLE_ANIMATION(Tentacool); +SINGLE_ANIMATION(Tentacruel); +#endif //P_FAMILY_TENTACOOL +#if P_FAMILY_GEODUDE +SINGLE_ANIMATION(Geodude); +SINGLE_ANIMATION(Graveler); +SINGLE_ANIMATION(Golem); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(GeodudeAlolan); +SINGLE_ANIMATION(GravelerAlolan); +SINGLE_ANIMATION(GolemAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE +#if P_FAMILY_PONYTA +SINGLE_ANIMATION(Ponyta); +SINGLE_ANIMATION(Rapidash); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(PonytaGalarian); +SINGLE_ANIMATION(RapidashGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA +#if P_FAMILY_SLOWPOKE +SINGLE_ANIMATION(Slowpoke); +SINGLE_ANIMATION(Slowbro); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Slowking); +#endif //P_GEN_2_CROSS_EVOS +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(SlowbroMega); +#endif //P_MEGA_EVOLUTIONS +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(SlowpokeGalarian); +SINGLE_ANIMATION(SlowbroGalarian); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(SlowkingGalarian); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE +#if P_FAMILY_MAGNEMITE +SINGLE_ANIMATION(Magnemite); +SINGLE_ANIMATION(Magneton); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Magnezone); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE +#if P_FAMILY_FARFETCHD +SINGLE_ANIMATION(Farfetchd); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(FarfetchdGalarian); +SINGLE_ANIMATION(Sirfetchd); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD +#if P_FAMILY_DODUO +SINGLE_ANIMATION(Doduo); +SINGLE_ANIMATION(Dodrio); +#endif //P_FAMILY_DODUO +#if P_FAMILY_SEEL +SINGLE_ANIMATION(Seel); +SINGLE_ANIMATION(Dewgong); +#endif //P_FAMILY_SEEL +#if P_FAMILY_GRIMER +SINGLE_ANIMATION(Grimer); +SINGLE_ANIMATION(Muk); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(GrimerAlolan); +SINGLE_ANIMATION(MukAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER +#if P_FAMILY_SHELLDER +SINGLE_ANIMATION(Shellder); +SINGLE_ANIMATION(Cloyster); +#endif //P_FAMILY_SHELLDER +#if P_FAMILY_GASTLY +SINGLE_ANIMATION(Gastly); +SINGLE_ANIMATION(Haunter); +SINGLE_ANIMATION(Gengar); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(GengarMega); +#endif //P_MEGA_EVOLUTIONS +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(GengarGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GASTLY +#if P_FAMILY_ONIX +SINGLE_ANIMATION(Onix); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Steelix); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(SteelixMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX +#if P_FAMILY_DROWZEE +SINGLE_ANIMATION(Drowzee); +SINGLE_ANIMATION(Hypno); +#endif //P_FAMILY_DROWZEE +#if P_FAMILY_KRABBY +SINGLE_ANIMATION(Krabby); +SINGLE_ANIMATION(Kingler); +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(KinglerGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_KRABBY +#if P_FAMILY_VOLTORB +SINGLE_ANIMATION(Voltorb); +SINGLE_ANIMATION(Electrode); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(VoltorbHisuian); +SINGLE_ANIMATION(ElectrodeHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB +#if P_FAMILY_EXEGGCUTE +SINGLE_ANIMATION(Exeggcute); +SINGLE_ANIMATION(Exeggutor); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(ExeggutorAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE +#if P_FAMILY_CUBONE +SINGLE_ANIMATION(Cubone); +SINGLE_ANIMATION(Marowak); +#if P_ALOLAN_FORMS +SINGLE_ANIMATION(MarowakAlolan); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Tyrogue); +#endif //P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Hitmonlee); +SINGLE_ANIMATION(Hitmonchan); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Hitmontop); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS +#if P_FAMILY_LICKITUNG +SINGLE_ANIMATION(Lickitung); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Lickilicky); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG +#if P_FAMILY_KOFFING +SINGLE_ANIMATION(Koffing); +SINGLE_ANIMATION(Weezing); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(WeezingGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING +#if P_FAMILY_RHYHORN +SINGLE_ANIMATION(Rhyhorn); +SINGLE_ANIMATION(Rhydon); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Rhyperior); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Happiny); +#endif //P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Chansey); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Blissey); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY +#if P_FAMILY_TANGELA +SINGLE_ANIMATION(Tangela); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Tangrowth); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA +#if P_FAMILY_KANGASKHAN +SINGLE_ANIMATION(Kangaskhan); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(KangaskhanMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_KANGASKHAN +#if P_FAMILY_HORSEA +SINGLE_ANIMATION(Horsea); +SINGLE_ANIMATION(Seadra); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Kingdra); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA +#if P_FAMILY_GOLDEEN +SINGLE_ANIMATION(Goldeen); +SINGLE_ANIMATION(Seaking); +#endif //P_FAMILY_GOLDEEN +#if P_FAMILY_STARYU +SINGLE_ANIMATION(Staryu); +SINGLE_ANIMATION(Starmie); +#endif //P_FAMILY_STARYU +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(MimeJr); +#endif //P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(MrMime); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(MrMimeGalarian); +SINGLE_ANIMATION(MrRime); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME +#if P_FAMILY_SCYTHER +SINGLE_ANIMATION(Scyther); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Scizor); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(ScizorMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS +#if P_GEN_8_CROSS_EVOS +SINGLE_ANIMATION(Kleavor); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Smoochum); +#endif //P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Jynx); +#endif //P_FAMILY_JYNX +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Elekid); +#endif //P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Electabuzz); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Electivire); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Magby); +#endif //P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Magmar); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Magmortar); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR +#if P_FAMILY_PINSIR +SINGLE_ANIMATION(Pinsir); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(PinsirMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PINSIR +#if P_FAMILY_TAUROS +SINGLE_ANIMATION(Tauros); +#if P_PALDEAN_FORMS +SINGLE_ANIMATION(TaurosPaldean); +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS +#if P_FAMILY_MAGIKARP +SINGLE_ANIMATION(Magikarp); +SINGLE_ANIMATION(Gyarados); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(GyaradosMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAGIKARP +#if P_FAMILY_LAPRAS +SINGLE_ANIMATION(Lapras); +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(LaprasGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_LAPRAS +#if P_FAMILY_DITTO +SINGLE_ANIMATION(Ditto); +#endif //P_FAMILY_DITTO +#if P_FAMILY_EEVEE +SINGLE_ANIMATION(Eevee); +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(EeveeGigantamax); +#endif //P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(Vaporeon); +SINGLE_ANIMATION(Jolteon); +SINGLE_ANIMATION(Flareon); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Espeon); +SINGLE_ANIMATION(Umbreon); +#endif //P_GEN_2_CROSS_EVOS +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Leafeon); +SINGLE_ANIMATION(Glaceon); +#endif //P_GEN_4_CROSS_EVOS +#if P_GEN_6_CROSS_EVOS +SINGLE_ANIMATION(Sylveon); +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE +#if P_FAMILY_PORYGON +SINGLE_ANIMATION(Porygon); +#if P_GEN_2_CROSS_EVOS +SINGLE_ANIMATION(Porygon2); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Porygon_Z); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON +#if P_FAMILY_OMANYTE +SINGLE_ANIMATION(Omanyte); +SINGLE_ANIMATION(Omastar); +#endif //P_FAMILY_OMANYTE +#if P_FAMILY_KABUTO +SINGLE_ANIMATION(Kabuto); +SINGLE_ANIMATION(Kabutops); +#endif //P_FAMILY_KABUTO +#if P_FAMILY_AERODACTYL +SINGLE_ANIMATION(Aerodactyl); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AerodactylMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AERODACTYL +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Munchlax); +#endif //P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Snorlax); +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(SnorlaxGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SNORLAX +#if P_FAMILY_ARTICUNO +SINGLE_ANIMATION(Articuno); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(ArticunoGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO +#if P_FAMILY_ZAPDOS +SINGLE_ANIMATION(Zapdos); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(ZapdosGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS +#if P_FAMILY_MOLTRES +SINGLE_ANIMATION(Moltres); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(MoltresGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES +#if P_FAMILY_DRATINI +SINGLE_ANIMATION(Dratini); +SINGLE_ANIMATION(Dragonair); +SINGLE_ANIMATION(Dragonite); +#endif //P_FAMILY_DRATINI +#if P_FAMILY_MEWTWO +SINGLE_ANIMATION(Mewtwo); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(MewtwoMegaX); +SINGLE_ANIMATION(MewtwoMegaY); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEWTWO +#if P_FAMILY_MEW +SINGLE_ANIMATION(Mew); +#endif //P_FAMILY_MEW +#if P_FAMILY_CHIKORITA +SINGLE_ANIMATION(Chikorita); +SINGLE_ANIMATION(Bayleef); +SINGLE_ANIMATION(Meganium); +#endif //P_FAMILY_CHIKORITA +#if P_FAMILY_CYNDAQUIL +SINGLE_ANIMATION(Cyndaquil); +SINGLE_ANIMATION(Quilava); +SINGLE_ANIMATION(Typhlosion); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(TyphlosionHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL +#if P_FAMILY_TOTODILE +SINGLE_ANIMATION(Totodile); +SINGLE_ANIMATION(Croconaw); +SINGLE_ANIMATION(Feraligatr); +#endif //P_FAMILY_TOTODILE +#if P_FAMILY_SENTRET +SINGLE_ANIMATION(Sentret); +SINGLE_ANIMATION(Furret); +#endif //P_FAMILY_SENTRET +#if P_FAMILY_HOOTHOOT +SINGLE_ANIMATION(Hoothoot); +SINGLE_ANIMATION(Noctowl); +#endif //P_FAMILY_HOOTHOOT +#if P_FAMILY_LEDYBA +SINGLE_ANIMATION(Ledyba); +SINGLE_ANIMATION(Ledian); +#endif //P_FAMILY_LEDYBA +#if P_FAMILY_SPINARAK +SINGLE_ANIMATION(Spinarak); +SINGLE_ANIMATION(Ariados); +#endif //P_FAMILY_SPINARAK +#if P_FAMILY_CHINCHOU +SINGLE_ANIMATION(Chinchou); +SINGLE_ANIMATION(Lanturn); +#endif //P_FAMILY_CHINCHOU +#if P_FAMILY_TOGEPI +SINGLE_ANIMATION(Togepi); +SINGLE_ANIMATION(Togetic); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Togekiss); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI +#if P_FAMILY_NATU +SINGLE_ANIMATION(Natu); +SINGLE_ANIMATION(Xatu); +#endif //P_FAMILY_NATU +#if P_FAMILY_MAREEP +SINGLE_ANIMATION(Mareep); +SINGLE_ANIMATION(Flaaffy); +SINGLE_ANIMATION(Ampharos); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AmpharosMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAREEP +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS +SINGLE_ANIMATION(Azurill); +#endif //P_GEN_3_CROSS_EVOS +SINGLE_ANIMATION(Marill); +SINGLE_ANIMATION(Azumarill); +#endif //P_FAMILY_MARILL +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Bonsly); +#endif //P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Sudowoodo); +#endif //P_FAMILY_SUDOWOODO +#if P_FAMILY_HOPPIP +SINGLE_ANIMATION(Hoppip); +SINGLE_ANIMATION(Skiploom); +SINGLE_ANIMATION(Jumpluff); +#endif //P_FAMILY_HOPPIP +#if P_FAMILY_AIPOM +SINGLE_ANIMATION(Aipom); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Ambipom); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM +#if P_FAMILY_SUNKERN +SINGLE_ANIMATION(Sunkern); +SINGLE_ANIMATION(Sunflora); +#endif //P_FAMILY_SUNKERN +#if P_FAMILY_YANMA +SINGLE_ANIMATION(Yanma); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Yanmega); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA +#if P_FAMILY_WOOPER +SINGLE_ANIMATION(Wooper); +SINGLE_ANIMATION(Quagsire); +#if P_PALDEAN_FORMS +SINGLE_ANIMATION(WooperPaldean); +SINGLE_ANIMATION(Clodsire); +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER +#if P_FAMILY_MURKROW +SINGLE_ANIMATION(Murkrow); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Honchkrow); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW +#if P_FAMILY_MISDREAVUS +SINGLE_ANIMATION(Misdreavus); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Mismagius); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS +#if P_FAMILY_UNOWN +SINGLE_ANIMATION(Unown); +#endif //P_FAMILY_UNOWN +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS +SINGLE_ANIMATION(Wynaut); +#endif //P_GEN_3_CROSS_EVOS +SINGLE_ANIMATION(Wobbuffet); +#endif //P_FAMILY_WOBBUFFET +#if P_FAMILY_GIRAFARIG +SINGLE_ANIMATION(Girafarig); +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Farigiraf); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG +#if P_FAMILY_PINECO +SINGLE_ANIMATION(Pineco); +SINGLE_ANIMATION(Forretress); +#endif //P_FAMILY_PINECO +#if P_FAMILY_DUNSPARCE +SINGLE_ANIMATION(Dunsparce); +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Dudunsparce); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE +#if P_FAMILY_GLIGAR +SINGLE_ANIMATION(Gligar); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Gliscor); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR +#if P_FAMILY_SNUBBULL +SINGLE_ANIMATION(Snubbull); +SINGLE_ANIMATION(Granbull); +#endif //P_FAMILY_SNUBBULL +#if P_FAMILY_QWILFISH +SINGLE_ANIMATION(Qwilfish); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(QwilfishHisuian); +SINGLE_ANIMATION(Overqwil); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH +#if P_FAMILY_SHUCKLE +SINGLE_ANIMATION(Shuckle); +#endif //P_FAMILY_SHUCKLE +#if P_FAMILY_HERACROSS +SINGLE_ANIMATION(Heracross); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(HeracrossMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HERACROSS +#if P_FAMILY_SNEASEL +SINGLE_ANIMATION(Sneasel); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Weavile); +#endif //P_GEN_4_CROSS_EVOS +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(SneaselHisuian); +SINGLE_ANIMATION(Sneasler); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL +#if P_FAMILY_TEDDIURSA +SINGLE_ANIMATION(Teddiursa); +SINGLE_ANIMATION(Ursaring); +#if P_GEN_8_CROSS_EVOS +SINGLE_ANIMATION(Ursaluna); +SINGLE_ANIMATION(UrsalunaBloodmoon); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA +#if P_FAMILY_SLUGMA +SINGLE_ANIMATION(Slugma); +SINGLE_ANIMATION(Magcargo); +#endif //P_FAMILY_SLUGMA +#if P_FAMILY_SWINUB +SINGLE_ANIMATION(Swinub); +SINGLE_ANIMATION(Piloswine); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Mamoswine); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB +#if P_FAMILY_CORSOLA +SINGLE_ANIMATION(Corsola); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(CorsolaGalarian); +SINGLE_ANIMATION(Cursola); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA +#if P_FAMILY_REMORAID +SINGLE_ANIMATION(Remoraid); +SINGLE_ANIMATION(Octillery); +#endif //P_FAMILY_REMORAID +#if P_FAMILY_DELIBIRD +SINGLE_ANIMATION(Delibird); +#endif //P_FAMILY_DELIBIRD +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Mantyke); +#endif //P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Mantine); +#endif //P_FAMILY_MANTINE +#if P_FAMILY_SKARMORY +SINGLE_ANIMATION(Skarmory); +#endif //P_FAMILY_SKARMORY +#if P_FAMILY_HOUNDOUR +SINGLE_ANIMATION(Houndour); +SINGLE_ANIMATION(Houndoom); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(HoundoomMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HOUNDOUR +#if P_FAMILY_PHANPY +SINGLE_ANIMATION(Phanpy); +SINGLE_ANIMATION(Donphan); +#endif //P_FAMILY_PHANPY +#if P_FAMILY_STANTLER +SINGLE_ANIMATION(Stantler); +#if P_GEN_8_CROSS_EVOS +SINGLE_ANIMATION(Wyrdeer); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER +#if P_FAMILY_SMEARGLE +SINGLE_ANIMATION(Smeargle); +#endif //P_FAMILY_SMEARGLE +#if P_FAMILY_MILTANK +SINGLE_ANIMATION(Miltank); +#endif //P_FAMILY_MILTANK +#if P_FAMILY_RAIKOU +SINGLE_ANIMATION(Raikou); +#endif //P_FAMILY_RAIKOU +#if P_FAMILY_ENTEI +SINGLE_ANIMATION(Entei); +#endif //P_FAMILY_ENTEI +#if P_FAMILY_SUICUNE +SINGLE_ANIMATION(Suicune); +#endif //P_FAMILY_SUICUNE +#if P_FAMILY_LARVITAR +SINGLE_ANIMATION(Larvitar); +SINGLE_ANIMATION(Pupitar); +SINGLE_ANIMATION(Tyranitar); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(TyranitarMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LARVITAR +#if P_FAMILY_LUGIA +SINGLE_ANIMATION(Lugia); +#endif //P_FAMILY_LUGIA +#if P_FAMILY_HO_OH +SINGLE_ANIMATION(HoOh); +#endif //P_FAMILY_HO_OH +#if P_FAMILY_CELEBI +SINGLE_ANIMATION(Celebi); +#endif //P_FAMILY_CELEBI +#if P_FAMILY_TREECKO +SINGLE_ANIMATION(Treecko); +SINGLE_ANIMATION(Grovyle); +SINGLE_ANIMATION(Sceptile); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(SceptileMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TREECKO +#if P_FAMILY_TORCHIC +SINGLE_ANIMATION(Torchic); +SINGLE_ANIMATION(Combusken); +SINGLE_ANIMATION(Blaziken); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(BlazikenMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP +SINGLE_ANIMATION(Mudkip); +SINGLE_ANIMATION(Marshtomp); +SINGLE_ANIMATION(Swampert); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(SwampertMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MUDKIP +#if P_FAMILY_POOCHYENA +SINGLE_ANIMATION(Poochyena); +SINGLE_ANIMATION(Mightyena); +#endif //P_FAMILY_POOCHYENA +#if P_FAMILY_ZIGZAGOON +SINGLE_ANIMATION(Zigzagoon); +SINGLE_ANIMATION(Linoone); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(ZigzagoonGalarian); +SINGLE_ANIMATION(LinooneGalarian); +SINGLE_ANIMATION(Obstagoon); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON +#if P_FAMILY_WURMPLE +SINGLE_ANIMATION(Wurmple); +SINGLE_ANIMATION(Silcoon); +SINGLE_ANIMATION(Beautifly); +SINGLE_ANIMATION(Cascoon); +SINGLE_ANIMATION(Dustox); +#endif //P_FAMILY_WURMPLE +#if P_FAMILY_LOTAD +SINGLE_ANIMATION(Lotad); +SINGLE_ANIMATION(Lombre); +SINGLE_ANIMATION(Ludicolo); +#endif //P_FAMILY_LOTAD +#if P_FAMILY_SEEDOT +SINGLE_ANIMATION(Seedot); +SINGLE_ANIMATION(Nuzleaf); +SINGLE_ANIMATION(Shiftry); +#endif //P_FAMILY_SEEDOT +#if P_FAMILY_TAILLOW +SINGLE_ANIMATION(Taillow); +SINGLE_ANIMATION(Swellow); +#endif //P_FAMILY_TAILLOW +#if P_FAMILY_WINGULL +SINGLE_ANIMATION(Wingull); +SINGLE_ANIMATION(Pelipper); +#endif //P_FAMILY_WINGULL +#if P_FAMILY_RALTS +SINGLE_ANIMATION(Ralts); +SINGLE_ANIMATION(Kirlia); +SINGLE_ANIMATION(Gardevoir); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(GardevoirMega); +#endif //P_MEGA_EVOLUTIONS +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Gallade); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(GalladeMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS +#if P_FAMILY_SURSKIT +SINGLE_ANIMATION(Surskit); +SINGLE_ANIMATION(Masquerain); +#endif //P_FAMILY_SURSKIT +#if P_FAMILY_SHROOMISH +SINGLE_ANIMATION(Shroomish); +SINGLE_ANIMATION(Breloom); +#endif //P_FAMILY_SHROOMISH +#if P_FAMILY_SLAKOTH +SINGLE_ANIMATION(Slakoth); +SINGLE_ANIMATION(Vigoroth); +SINGLE_ANIMATION(Slaking); +#endif //P_FAMILY_SLAKOTH +#if P_FAMILY_NINCADA +SINGLE_ANIMATION(Nincada); +SINGLE_ANIMATION(Ninjask); +SINGLE_ANIMATION(Shedinja); +#endif //P_FAMILY_NINCADA +#if P_FAMILY_WHISMUR +SINGLE_ANIMATION(Whismur); +SINGLE_ANIMATION(Loudred); +SINGLE_ANIMATION(Exploud); +#endif //P_FAMILY_WHISMUR +#if P_FAMILY_MAKUHITA +SINGLE_ANIMATION(Makuhita); +SINGLE_ANIMATION(Hariyama); +#endif //P_FAMILY_MAKUHITA +#if P_FAMILY_NOSEPASS +SINGLE_ANIMATION(Nosepass); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Probopass); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS +#if P_FAMILY_SKITTY +SINGLE_ANIMATION(Skitty); +SINGLE_ANIMATION(Delcatty); +#endif //P_FAMILY_SKITTY +#if P_FAMILY_SABLEYE +SINGLE_ANIMATION(Sableye); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(SableyeMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SABLEYE +#if P_FAMILY_MAWILE +SINGLE_ANIMATION(Mawile); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(MawileMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAWILE +#if P_FAMILY_ARON +SINGLE_ANIMATION(Aron); +SINGLE_ANIMATION(Lairon); +SINGLE_ANIMATION(Aggron); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AggronMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ARON +#if P_FAMILY_MEDITITE +SINGLE_ANIMATION(Meditite); +SINGLE_ANIMATION(Medicham); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(MedichamMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEDITITE +#if P_FAMILY_ELECTRIKE +SINGLE_ANIMATION(Electrike); +SINGLE_ANIMATION(Manectric); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(ManectricMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ELECTRIKE +#if P_FAMILY_PLUSLE +SINGLE_ANIMATION(Plusle); +#endif //P_FAMILY_PLUSLE +#if P_FAMILY_MINUN +SINGLE_ANIMATION(Minun); +#endif //P_FAMILY_MINUN +#if P_FAMILY_VOLBEAT_ILLUMISE +SINGLE_ANIMATION(Volbeat); +SINGLE_ANIMATION(Illumise); +#endif //P_FAMILY_VOLBEAT_ILLUMISE +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Budew); +#endif //P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Roselia); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Roserade); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA +#if P_FAMILY_GULPIN +SINGLE_ANIMATION(Gulpin); +SINGLE_ANIMATION(Swalot); +#endif //P_FAMILY_GULPIN +#if P_FAMILY_CARVANHA +SINGLE_ANIMATION(Carvanha); +SINGLE_ANIMATION(Sharpedo); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(SharpedoMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_CARVANHA +#if P_FAMILY_WAILMER +SINGLE_ANIMATION(Wailmer); +SINGLE_ANIMATION(Wailord); +#endif //P_FAMILY_WAILMER +#if P_FAMILY_NUMEL +SINGLE_ANIMATION(Numel); +SINGLE_ANIMATION(Camerupt); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(CameruptMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_NUMEL +#if P_FAMILY_TORKOAL +SINGLE_ANIMATION(Torkoal); +#endif //P_FAMILY_TORKOAL +#if P_FAMILY_SPOINK +SINGLE_ANIMATION(Spoink); +SINGLE_ANIMATION(Grumpig); +#endif //P_FAMILY_SPOINK +#if P_FAMILY_SPINDA +SINGLE_ANIMATION(Spinda); +#endif //P_FAMILY_SPINDA +#if P_FAMILY_TRAPINCH +SINGLE_ANIMATION(Trapinch); +SINGLE_ANIMATION(Vibrava); +SINGLE_ANIMATION(Flygon); +#endif //P_FAMILY_TRAPINCH +#if P_FAMILY_CACNEA +SINGLE_ANIMATION(Cacnea); +SINGLE_ANIMATION(Cacturne); +#endif //P_FAMILY_CACNEA +#if P_FAMILY_SWABLU +SINGLE_ANIMATION(Swablu); +SINGLE_ANIMATION(Altaria); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AltariaMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SWABLU +#if P_FAMILY_ZANGOOSE +SINGLE_ANIMATION(Zangoose); +#endif //P_FAMILY_ZANGOOSE +#if P_FAMILY_SEVIPER +SINGLE_ANIMATION(Seviper); +#endif //P_FAMILY_SEVIPER +#if P_FAMILY_LUNATONE +SINGLE_ANIMATION(Lunatone); +#endif //P_FAMILY_LUNATONE +#if P_FAMILY_SOLROCK +SINGLE_ANIMATION(Solrock); +#endif //P_FAMILY_SOLROCK +#if P_FAMILY_BARBOACH +SINGLE_ANIMATION(Barboach); +SINGLE_ANIMATION(Whiscash); +#endif //P_FAMILY_BARBOACH +#if P_FAMILY_CORPHISH +SINGLE_ANIMATION(Corphish); +SINGLE_ANIMATION(Crawdaunt); +#endif //P_FAMILY_CORPHISH +#if P_FAMILY_BALTOY +SINGLE_ANIMATION(Baltoy); +SINGLE_ANIMATION(Claydol); +#endif //P_FAMILY_BALTOY +#if P_FAMILY_LILEEP +SINGLE_ANIMATION(Lileep); +SINGLE_ANIMATION(Cradily); +#endif //P_FAMILY_LILEEP +#if P_FAMILY_ANORITH +SINGLE_ANIMATION(Anorith); +SINGLE_ANIMATION(Armaldo); +#endif //P_FAMILY_ANORITH +#if P_FAMILY_FEEBAS +SINGLE_ANIMATION(Feebas); +SINGLE_ANIMATION(Milotic); +#endif //P_FAMILY_FEEBAS +#if P_FAMILY_CASTFORM +SINGLE_ANIMATION(CastformNormal); +SINGLE_ANIMATION(CastformSunny); +SINGLE_ANIMATION(CastformRainy); +SINGLE_ANIMATION(CastformSnowy); +#endif //P_FAMILY_CASTFORM +#if P_FAMILY_KECLEON +SINGLE_ANIMATION(Kecleon); +#endif //P_FAMILY_KECLEON +#if P_FAMILY_SHUPPET +SINGLE_ANIMATION(Shuppet); +SINGLE_ANIMATION(Banette); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(BanetteMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SHUPPET +#if P_FAMILY_DUSKULL +SINGLE_ANIMATION(Duskull); +SINGLE_ANIMATION(Dusclops); +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Dusknoir); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL +#if P_FAMILY_TROPIUS +SINGLE_ANIMATION(Tropius); +#endif //P_FAMILY_TROPIUS +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Chingling); +#endif //P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Chimecho); +#endif //P_FAMILY_CHIMECHO +#if P_FAMILY_ABSOL +SINGLE_ANIMATION(Absol); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AbsolMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABSOL +#if P_FAMILY_SNORUNT +SINGLE_ANIMATION(Snorunt); +SINGLE_ANIMATION(Glalie); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(GlalieMega); +#endif //P_MEGA_EVOLUTIONS +#if P_GEN_4_CROSS_EVOS +SINGLE_ANIMATION(Froslass); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT +#if P_FAMILY_SPHEAL +SINGLE_ANIMATION(Spheal); +SINGLE_ANIMATION(Sealeo); +SINGLE_ANIMATION(Walrein); +#endif //P_FAMILY_SPHEAL +#if P_FAMILY_CLAMPERL +SINGLE_ANIMATION(Clamperl); +SINGLE_ANIMATION(Huntail); +SINGLE_ANIMATION(Gorebyss); +#endif //P_FAMILY_CLAMPERL +#if P_FAMILY_RELICANTH +SINGLE_ANIMATION(Relicanth); +#endif //P_FAMILY_RELICANTH +#if P_FAMILY_LUVDISC +SINGLE_ANIMATION(Luvdisc); +#endif //P_FAMILY_LUVDISC +#if P_FAMILY_BAGON +SINGLE_ANIMATION(Bagon); +SINGLE_ANIMATION(Shelgon); +SINGLE_ANIMATION(Salamence); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(SalamenceMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BAGON +#if P_FAMILY_BELDUM +SINGLE_ANIMATION(Beldum); +SINGLE_ANIMATION(Metang); +SINGLE_ANIMATION(Metagross); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(MetagrossMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BELDUM +#if P_FAMILY_REGIROCK +SINGLE_ANIMATION(Regirock); +#endif //P_FAMILY_REGIROCK +#if P_FAMILY_REGICE +SINGLE_ANIMATION(Regice); +#endif //P_FAMILY_REGICE +#if P_FAMILY_REGISTEEL +SINGLE_ANIMATION(Registeel); +#endif //P_FAMILY_REGISTEEL +#if P_FAMILY_LATIAS +SINGLE_ANIMATION(Latias); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(LatiasMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIAS +#if P_FAMILY_LATIOS +SINGLE_ANIMATION(Latios); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(LatiosMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIOS +#if P_FAMILY_KYOGRE +SINGLE_ANIMATION(Kyogre); +#if P_PRIMAL_REVERSIONS +SINGLE_ANIMATION(KyogrePrimal); +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_KYOGRE +#if P_FAMILY_GROUDON +SINGLE_ANIMATION(Groudon); +#if P_PRIMAL_REVERSIONS +SINGLE_ANIMATION(GroudonPrimal); +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_GROUDON +#if P_FAMILY_RAYQUAZA +SINGLE_ANIMATION(Rayquaza); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(RayquazaMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RAYQUAZA +#if P_FAMILY_JIRACHI +SINGLE_ANIMATION(Jirachi); +#endif //P_FAMILY_JIRACHI +#if P_FAMILY_DEOXYS +SINGLE_ANIMATION(DeoxysNormal); +SINGLE_ANIMATION(DeoxysAttack); +SINGLE_ANIMATION(DeoxysDefense); +SINGLE_ANIMATION(DeoxysSpeed); +#endif //P_FAMILY_DEOXYS +#if P_FAMILY_TURTWIG +SINGLE_ANIMATION(Turtwig); +SINGLE_ANIMATION(Grotle); +SINGLE_ANIMATION(Torterra); +#endif //P_FAMILY_TURTWIG +#if P_FAMILY_CHIMCHAR +SINGLE_ANIMATION(Chimchar); +SINGLE_ANIMATION(Monferno); +SINGLE_ANIMATION(Infernape); +#endif //P_FAMILY_CHIMCHAR +#if P_FAMILY_PIPLUP +SINGLE_ANIMATION(Piplup); +SINGLE_ANIMATION(Prinplup); +SINGLE_ANIMATION(Empoleon); +#endif //P_FAMILY_PIPLUP +#if P_FAMILY_STARLY +SINGLE_ANIMATION(Starly); +SINGLE_ANIMATION(Staravia); +SINGLE_ANIMATION(Staraptor); +#endif //P_FAMILY_STARLY +#if P_FAMILY_BIDOOF +SINGLE_ANIMATION(Bidoof); +SINGLE_ANIMATION(Bibarel); +#endif //P_FAMILY_BIDOOF +#if P_FAMILY_KRICKETOT +SINGLE_ANIMATION(Kricketot); +SINGLE_ANIMATION(Kricketune); +#endif //P_FAMILY_KRICKETOT +#if P_FAMILY_SHINX +SINGLE_ANIMATION(Shinx); +SINGLE_ANIMATION(Luxio); +SINGLE_ANIMATION(Luxray); +#endif //P_FAMILY_SHINX +#if P_FAMILY_CRANIDOS +SINGLE_ANIMATION(Cranidos); +SINGLE_ANIMATION(Rampardos); +#endif //P_FAMILY_CRANIDOS +#if P_FAMILY_SHIELDON +SINGLE_ANIMATION(Shieldon); +SINGLE_ANIMATION(Bastiodon); +#endif //P_FAMILY_SHIELDON +#if P_FAMILY_BURMY +SINGLE_ANIMATION(Burmy); +SINGLE_ANIMATION(Wormadam); +SINGLE_ANIMATION(Mothim); +#endif //P_FAMILY_BURMY +#if P_FAMILY_COMBEE +SINGLE_ANIMATION(Combee); +SINGLE_ANIMATION(Vespiquen); +#endif //P_FAMILY_COMBEE +#if P_FAMILY_PACHIRISU +SINGLE_ANIMATION(Pachirisu); +#endif //P_FAMILY_PACHIRISU +#if P_FAMILY_BUIZEL +SINGLE_ANIMATION(Buizel); +SINGLE_ANIMATION(Floatzel); +#endif //P_FAMILY_BUIZEL +#if P_FAMILY_CHERUBI +SINGLE_ANIMATION(Cherubi); +SINGLE_ANIMATION(CherrimOvercast); +SINGLE_ANIMATION(CherrimSunshine); +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_SHELLOS +SINGLE_ANIMATION(Shellos); +SINGLE_ANIMATION(Gastrodon); +#endif //P_FAMILY_SHELLOS +#if P_FAMILY_DRIFLOON +SINGLE_ANIMATION(Drifloon); +SINGLE_ANIMATION(Drifblim); +#endif //P_FAMILY_DRIFLOON +#if P_FAMILY_BUNEARY +SINGLE_ANIMATION(Buneary); +SINGLE_ANIMATION(Lopunny); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(LopunnyMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BUNEARY +#if P_FAMILY_GLAMEOW +SINGLE_ANIMATION(Glameow); +SINGLE_ANIMATION(Purugly); +#endif //P_FAMILY_GLAMEOW +#if P_FAMILY_STUNKY +SINGLE_ANIMATION(Stunky); +SINGLE_ANIMATION(Skuntank); +#endif //P_FAMILY_STUNKY +#if P_FAMILY_BRONZOR +SINGLE_ANIMATION(Bronzor); +SINGLE_ANIMATION(Bronzong); +#endif //P_FAMILY_BRONZOR +#if P_FAMILY_CHATOT +SINGLE_ANIMATION(Chatot); +#endif //P_FAMILY_CHATOT +#if P_FAMILY_SPIRITOMB +SINGLE_ANIMATION(Spiritomb); +#endif //P_FAMILY_SPIRITOMB +#if P_FAMILY_GIBLE +SINGLE_ANIMATION(Gible); +SINGLE_ANIMATION(Gabite); +SINGLE_ANIMATION(Garchomp); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(GarchompMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_GIBLE +#if P_FAMILY_RIOLU +SINGLE_ANIMATION(Riolu); +SINGLE_ANIMATION(Lucario); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(LucarioMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RIOLU +#if P_FAMILY_HIPPOPOTAS +SINGLE_ANIMATION(Hippopotas); +SINGLE_ANIMATION(Hippowdon); +#endif //P_FAMILY_HIPPOPOTAS +#if P_FAMILY_SKORUPI +SINGLE_ANIMATION(Skorupi); +SINGLE_ANIMATION(Drapion); +#endif //P_FAMILY_SKORUPI +#if P_FAMILY_CROAGUNK +SINGLE_ANIMATION(Croagunk); +SINGLE_ANIMATION(Toxicroak); +#endif //P_FAMILY_CROAGUNK +#if P_FAMILY_CARNIVINE +SINGLE_ANIMATION(Carnivine); +#endif //P_FAMILY_CARNIVINE +#if P_FAMILY_FINNEON +SINGLE_ANIMATION(Finneon); +SINGLE_ANIMATION(Lumineon); +#endif //P_FAMILY_FINNEON +#if P_FAMILY_SNOVER +SINGLE_ANIMATION(Snover); +SINGLE_ANIMATION(Abomasnow); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AbomasnowMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SNOVER +#if P_FAMILY_ROTOM +SINGLE_ANIMATION(Rotom); +SINGLE_ANIMATION(RotomHeat); +SINGLE_ANIMATION(RotomWash); +SINGLE_ANIMATION(RotomFrost); +SINGLE_ANIMATION(RotomFan); +SINGLE_ANIMATION(RotomMow); +#endif //P_FAMILY_ROTOM +#if P_FAMILY_UXIE +SINGLE_ANIMATION(Uxie); +#endif //P_FAMILY_UXIE +#if P_FAMILY_MESPRIT +SINGLE_ANIMATION(Mesprit); +#endif //P_FAMILY_MESPRIT +#if P_FAMILY_AZELF +SINGLE_ANIMATION(Azelf); +#endif //P_FAMILY_AZELF +#if P_FAMILY_DIALGA +SINGLE_ANIMATION(Dialga); SINGLE_ANIMATION(DialgaOrigin); +#endif //P_FAMILY_DIALGA +#if P_FAMILY_PALKIA +SINGLE_ANIMATION(Palkia); SINGLE_ANIMATION(PalkiaOrigin); -DOUBLE_ANIMATION(GiratinaOrigin); +#endif //P_FAMILY_PALKIA +#if P_FAMILY_HEATRAN +SINGLE_ANIMATION(Heatran); +#endif //P_FAMILY_HEATRAN +#if P_FAMILY_REGIGIGAS +SINGLE_ANIMATION(Regigigas); +#endif //P_FAMILY_REGIGIGAS +#if P_FAMILY_GIRATINA +SINGLE_ANIMATION(GiratinaAltered); +SINGLE_ANIMATION(GiratinaOrigin); +#endif //P_FAMILY_GIRATINA +#if P_FAMILY_CRESSELIA +SINGLE_ANIMATION(Cresselia); +#endif //P_FAMILY_CRESSELIA +#if P_FAMILY_MANAPHY +SINGLE_ANIMATION(Phione); +SINGLE_ANIMATION(Manaphy); +#endif //P_FAMILY_MANAPHY +#if P_FAMILY_DARKRAI +SINGLE_ANIMATION(Darkrai); +#endif //P_FAMILY_DARKRAI +#if P_FAMILY_SHAYMIN +SINGLE_ANIMATION(ShayminLand); SINGLE_ANIMATION(ShayminSky); -#endif -#if P_GEN_5_POKEMON == TRUE +#endif //P_FAMILY_SHAYMIN +#if P_FAMILY_ARCEUS +SINGLE_ANIMATION(Arceus); +#endif //P_FAMILY_ARCEUS +#if P_FAMILY_VICTINI +SINGLE_ANIMATION(Victini); +#endif //P_FAMILY_VICTINI +#if P_FAMILY_SNIVY +SINGLE_ANIMATION(Snivy); +SINGLE_ANIMATION(Servine); +SINGLE_ANIMATION(Serperior); +#endif //P_FAMILY_SNIVY +#if P_FAMILY_TEPIG +SINGLE_ANIMATION(Tepig); +SINGLE_ANIMATION(Pignite); +SINGLE_ANIMATION(Emboar); +#endif //P_FAMILY_TEPIG +#if P_FAMILY_OSHAWOTT +SINGLE_ANIMATION(Oshawott); +SINGLE_ANIMATION(Dewott); +SINGLE_ANIMATION(Samurott); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(SamurottHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT +#if P_FAMILY_PATRAT +SINGLE_ANIMATION(Patrat); +SINGLE_ANIMATION(Watchog); +#endif //P_FAMILY_PATRAT +#if P_FAMILY_LILLIPUP +SINGLE_ANIMATION(Lillipup); +SINGLE_ANIMATION(Herdier); +SINGLE_ANIMATION(Stoutland); +#endif //P_FAMILY_LILLIPUP +#if P_FAMILY_PURRLOIN +SINGLE_ANIMATION(Purrloin); +SINGLE_ANIMATION(Liepard); +#endif //P_FAMILY_PURRLOIN +#if P_FAMILY_PANSAGE +SINGLE_ANIMATION(Pansage); +SINGLE_ANIMATION(Simisage); +#endif //P_FAMILY_PANSAGE +#if P_FAMILY_PANSEAR +SINGLE_ANIMATION(Pansear); +SINGLE_ANIMATION(Simisear); +#endif //P_FAMILY_PANSEAR +#if P_FAMILY_PANPOUR +SINGLE_ANIMATION(Panpour); +SINGLE_ANIMATION(Simipour); +#endif //P_FAMILY_PANPOUR +#if P_FAMILY_MUNNA +SINGLE_ANIMATION(Munna); +SINGLE_ANIMATION(Musharna); +#endif //P_FAMILY_MUNNA +#if P_FAMILY_PIDOVE +SINGLE_ANIMATION(Pidove); +SINGLE_ANIMATION(Tranquill); +SINGLE_ANIMATION(Unfezant); +#endif //P_FAMILY_PIDOVE +#if P_FAMILY_BLITZLE +SINGLE_ANIMATION(Blitzle); +SINGLE_ANIMATION(Zebstrika); +#endif //P_FAMILY_BLITZLE +#if P_FAMILY_ROGGENROLA +SINGLE_ANIMATION(Roggenrola); +SINGLE_ANIMATION(Boldore); +SINGLE_ANIMATION(Gigalith); +#endif //P_FAMILY_ROGGENROLA +#if P_FAMILY_WOOBAT +SINGLE_ANIMATION(Woobat); +SINGLE_ANIMATION(Swoobat); +#endif //P_FAMILY_WOOBAT +#if P_FAMILY_DRILBUR +SINGLE_ANIMATION(Drilbur); +SINGLE_ANIMATION(Excadrill); +#endif //P_FAMILY_DRILBUR +#if P_FAMILY_AUDINO +SINGLE_ANIMATION(Audino); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(AudinoMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AUDINO +#if P_FAMILY_TIMBURR +SINGLE_ANIMATION(Timburr); +SINGLE_ANIMATION(Gurdurr); +SINGLE_ANIMATION(Conkeldurr); +#endif //P_FAMILY_TIMBURR +#if P_FAMILY_TYMPOLE +SINGLE_ANIMATION(Tympole); +SINGLE_ANIMATION(Palpitoad); +SINGLE_ANIMATION(Seismitoad); +#endif //P_FAMILY_TYMPOLE +#if P_FAMILY_THROH +SINGLE_ANIMATION(Throh); +#endif //P_FAMILY_THROH +#if P_FAMILY_SAWK +SINGLE_ANIMATION(Sawk); +#endif //P_FAMILY_SAWK +#if P_FAMILY_SEWADDLE +SINGLE_ANIMATION(Sewaddle); +SINGLE_ANIMATION(Swadloon); +SINGLE_ANIMATION(Leavanny); +#endif //P_FAMILY_SEWADDLE +#if P_FAMILY_VENIPEDE +SINGLE_ANIMATION(Venipede); +SINGLE_ANIMATION(Whirlipede); +SINGLE_ANIMATION(Scolipede); +#endif //P_FAMILY_VENIPEDE +#if P_FAMILY_COTTONEE +SINGLE_ANIMATION(Cottonee); +SINGLE_ANIMATION(Whimsicott); +#endif //P_FAMILY_COTTONEE +#if P_FAMILY_PETILIL +SINGLE_ANIMATION(Petilil); +SINGLE_ANIMATION(Lilligant); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(LilligantHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL +#if P_FAMILY_BASCULIN +SINGLE_ANIMATION(Basculin); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(Basculegion); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN +#if P_FAMILY_SANDILE +SINGLE_ANIMATION(Sandile); +SINGLE_ANIMATION(Krokorok); +SINGLE_ANIMATION(Krookodile); +#endif //P_FAMILY_SANDILE +#if P_FAMILY_DARUMAKA +SINGLE_ANIMATION(Darumaka); +SINGLE_ANIMATION(DarmanitanStandardMode); SINGLE_ANIMATION(DarmanitanZenMode); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(DarumakaGalarian); +SINGLE_ANIMATION(DarmanitanGalarianStandardMode); SINGLE_ANIMATION(DarmanitanGalarianZenMode); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA +#if P_FAMILY_MARACTUS +SINGLE_ANIMATION(Maractus); +#endif //P_FAMILY_MARACTUS +#if P_FAMILY_DWEBBLE +SINGLE_ANIMATION(Dwebble); +SINGLE_ANIMATION(Crustle); +#endif //P_FAMILY_DWEBBLE +#if P_FAMILY_SCRAGGY +SINGLE_ANIMATION(Scraggy); +SINGLE_ANIMATION(Scrafty); +#endif //P_FAMILY_SCRAGGY +#if P_FAMILY_SIGILYPH +SINGLE_ANIMATION(Sigilyph); +#endif //P_FAMILY_SIGILYPH +#if P_FAMILY_YAMASK +SINGLE_ANIMATION(Yamask); +SINGLE_ANIMATION(Cofagrigus); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(YamaskGalarian); +SINGLE_ANIMATION(Runerigus); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK +#if P_FAMILY_TIRTOUGA +SINGLE_ANIMATION(Tirtouga); +SINGLE_ANIMATION(Carracosta); +#endif //P_FAMILY_TIRTOUGA +#if P_FAMILY_ARCHEN +SINGLE_ANIMATION(Archen); +SINGLE_ANIMATION(Archeops); +#endif //P_FAMILY_ARCHEN +#if P_FAMILY_TRUBBISH +SINGLE_ANIMATION(Trubbish); +SINGLE_ANIMATION(Garbodor); +#if P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(GarbodorGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TRUBBISH +#if P_FAMILY_ZORUA +SINGLE_ANIMATION(Zorua); +SINGLE_ANIMATION(Zoroark); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(ZoruaHisuian); +SINGLE_ANIMATION(ZoroarkHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA +#if P_FAMILY_MINCCINO +SINGLE_ANIMATION(Minccino); +SINGLE_ANIMATION(Cinccino); +#endif //P_FAMILY_MINCCINO +#if P_FAMILY_GOTHITA +SINGLE_ANIMATION(Gothita); +SINGLE_ANIMATION(Gothorita); +SINGLE_ANIMATION(Gothitelle); +#endif //P_FAMILY_GOTHITA +#if P_FAMILY_SOLOSIS +SINGLE_ANIMATION(Solosis); +SINGLE_ANIMATION(Duosion); +SINGLE_ANIMATION(Reuniclus); +#endif //P_FAMILY_SOLOSIS +#if P_FAMILY_DUCKLETT +SINGLE_ANIMATION(Ducklett); +SINGLE_ANIMATION(Swanna); +#endif //P_FAMILY_DUCKLETT +#if P_FAMILY_VANILLITE +SINGLE_ANIMATION(Vanillite); +SINGLE_ANIMATION(Vanillish); +SINGLE_ANIMATION(Vanilluxe); +#endif //P_FAMILY_VANILLITE +#if P_FAMILY_DEERLING +SINGLE_ANIMATION(Deerling); +SINGLE_ANIMATION(Sawsbuck); +#endif //P_FAMILY_DEERLING +#if P_FAMILY_EMOLGA +SINGLE_ANIMATION(Emolga); +#endif //P_FAMILY_EMOLGA +#if P_FAMILY_KARRABLAST +SINGLE_ANIMATION(Karrablast); +SINGLE_ANIMATION(Escavalier); +#endif //P_FAMILY_KARRABLAST +#if P_FAMILY_FOONGUS +SINGLE_ANIMATION(Foongus); +SINGLE_ANIMATION(Amoonguss); +#endif //P_FAMILY_FOONGUS +#if P_FAMILY_FRILLISH +SINGLE_ANIMATION(Frillish); +SINGLE_ANIMATION(Jellicent); +#endif //P_FAMILY_FRILLISH +#if P_FAMILY_ALOMOMOLA +SINGLE_ANIMATION(Alomomola); +#endif //P_FAMILY_ALOMOMOLA +#if P_FAMILY_JOLTIK +SINGLE_ANIMATION(Joltik); +SINGLE_ANIMATION(Galvantula); +#endif //P_FAMILY_JOLTIK +#if P_FAMILY_FERROSEED +SINGLE_ANIMATION(Ferroseed); +SINGLE_ANIMATION(Ferrothorn); +#endif //P_FAMILY_FERROSEED +#if P_FAMILY_KLINK +SINGLE_ANIMATION(Klink); +SINGLE_ANIMATION(Klang); +SINGLE_ANIMATION(Klinklang); +#endif //P_FAMILY_KLINK +#if P_FAMILY_TYNAMO +SINGLE_ANIMATION(Tynamo); +SINGLE_ANIMATION(Eelektrik); +SINGLE_ANIMATION(Eelektross); +#endif //P_FAMILY_TYNAMO +#if P_FAMILY_ELGYEM +SINGLE_ANIMATION(Elgyem); +SINGLE_ANIMATION(Beheeyem); +#endif //P_FAMILY_ELGYEM +#if P_FAMILY_LITWICK +SINGLE_ANIMATION(Litwick); +SINGLE_ANIMATION(Lampent); +SINGLE_ANIMATION(Chandelure); +#endif //P_FAMILY_LITWICK +#if P_FAMILY_AXEW +SINGLE_ANIMATION(Axew); +SINGLE_ANIMATION(Fraxure); +SINGLE_ANIMATION(Haxorus); +#endif //P_FAMILY_AXEW +#if P_FAMILY_CUBCHOO +SINGLE_ANIMATION(Cubchoo); +SINGLE_ANIMATION(Beartic); +#endif //P_FAMILY_CUBCHOO +#if P_FAMILY_CRYOGONAL +SINGLE_ANIMATION(Cryogonal); +#endif //P_FAMILY_CRYOGONAL +#if P_FAMILY_SHELMET +SINGLE_ANIMATION(Shelmet); +SINGLE_ANIMATION(Accelgor); +#endif //P_FAMILY_SHELMET +#if P_FAMILY_STUNFISK +SINGLE_ANIMATION(Stunfisk); +#if P_GALARIAN_FORMS +SINGLE_ANIMATION(StunfiskGalarian); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK +#if P_FAMILY_MIENFOO +SINGLE_ANIMATION(Mienfoo); +SINGLE_ANIMATION(Mienshao); +#endif //P_FAMILY_MIENFOO +#if P_FAMILY_DRUDDIGON +SINGLE_ANIMATION(Druddigon); +#endif //P_FAMILY_DRUDDIGON +#if P_FAMILY_GOLETT +SINGLE_ANIMATION(Golett); +SINGLE_ANIMATION(Golurk); +#endif //P_FAMILY_GOLETT +#if P_FAMILY_PAWNIARD +SINGLE_ANIMATION(Pawniard); +SINGLE_ANIMATION(Bisharp); +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Kingambit); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD +#if P_FAMILY_BOUFFALANT +SINGLE_ANIMATION(Bouffalant); +#endif //P_FAMILY_BOUFFALANT +#if P_FAMILY_RUFFLET +SINGLE_ANIMATION(Rufflet); +SINGLE_ANIMATION(Braviary); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(BraviaryHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET +#if P_FAMILY_VULLABY +SINGLE_ANIMATION(Vullaby); +SINGLE_ANIMATION(Mandibuzz); +#endif //P_FAMILY_VULLABY +#if P_FAMILY_HEATMOR +SINGLE_ANIMATION(Heatmor); +#endif //P_FAMILY_HEATMOR +#if P_FAMILY_DURANT +SINGLE_ANIMATION(Durant); +#endif //P_FAMILY_DURANT +#if P_FAMILY_DEINO +SINGLE_ANIMATION(Deino); +SINGLE_ANIMATION(Zweilous); +SINGLE_ANIMATION(Hydreigon); +#endif //P_FAMILY_DEINO +#if P_FAMILY_LARVESTA +SINGLE_ANIMATION(Larvesta); +SINGLE_ANIMATION(Volcarona); +#endif //P_FAMILY_LARVESTA +#if P_FAMILY_COBALION +SINGLE_ANIMATION(Cobalion); +#endif //P_FAMILY_COBALION +#if P_FAMILY_TERRAKION +SINGLE_ANIMATION(Terrakion); +#endif //P_FAMILY_TERRAKION +#if P_FAMILY_VIRIZION +SINGLE_ANIMATION(Virizion); +#endif //P_FAMILY_VIRIZION +#if P_FAMILY_TORNADUS +SINGLE_ANIMATION(TornadusIncarnate); SINGLE_ANIMATION(TornadusTherian); +#endif //P_FAMILY_TORNADUS +#if P_FAMILY_THUNDURUS +SINGLE_ANIMATION(ThundurusIncarnate); SINGLE_ANIMATION(ThundurusTherian); +#endif //P_FAMILY_THUNDURUS +#if P_FAMILY_RESHIRAM +SINGLE_ANIMATION(Reshiram); +#endif //P_FAMILY_RESHIRAM +#if P_FAMILY_ZEKROM +SINGLE_ANIMATION(Zekrom); +#endif //P_FAMILY_ZEKROM +#if P_FAMILY_LANDORUS +SINGLE_ANIMATION(LandorusIncarnate); SINGLE_ANIMATION(LandorusTherian); -SINGLE_ANIMATION(KyuremBlack); +#endif //P_FAMILY_LANDORUS +#if P_FAMILY_KYUREM +SINGLE_ANIMATION(Kyurem); +#if P_FUSION_FORMS SINGLE_ANIMATION(KyuremWhite); +SINGLE_ANIMATION(KyuremBlack); +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM +#if P_FAMILY_KELDEO +SINGLE_ANIMATION(KeldeoOrdinary); SINGLE_ANIMATION(KeldeoResolute); +#endif //P_FAMILY_KELDEO +#if P_FAMILY_MELOETTA +SINGLE_ANIMATION(MeloettaAria); SINGLE_ANIMATION(MeloettaPirouette); -#endif -#if P_GEN_6_POKEMON == TRUE +#endif //P_FAMILY_MELOETTA +#if P_FAMILY_GENESECT +SINGLE_ANIMATION(Genesect); +#endif //P_FAMILY_GENESECT +#if P_FAMILY_CHESPIN +SINGLE_ANIMATION(Chespin); +SINGLE_ANIMATION(Quilladin); +SINGLE_ANIMATION(Chesnaught); +#endif //P_FAMILY_CHESPIN +#if P_FAMILY_FENNEKIN +SINGLE_ANIMATION(Fennekin); +SINGLE_ANIMATION(Braixen); +SINGLE_ANIMATION(Delphox); +#endif //P_FAMILY_FENNEKIN +#if P_FAMILY_FROAKIE +SINGLE_ANIMATION(Froakie); +SINGLE_ANIMATION(Frogadier); +SINGLE_ANIMATION(Greninja); +SINGLE_ANIMATION(GreninjaAsh); +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_BUNNELBY +SINGLE_ANIMATION(Bunnelby); +SINGLE_ANIMATION(Diggersby); +#endif //P_FAMILY_BUNNELBY +#if P_FAMILY_FLETCHLING +SINGLE_ANIMATION(Fletchling); +SINGLE_ANIMATION(Fletchinder); +SINGLE_ANIMATION(Talonflame); +#endif //P_FAMILY_FLETCHLING +#if P_FAMILY_SCATTERBUG +SINGLE_ANIMATION(Scatterbug); +SINGLE_ANIMATION(Spewpa); +SINGLE_ANIMATION(Vivillon); +#endif //P_FAMILY_SCATTERBUG +#if P_FAMILY_LITLEO +SINGLE_ANIMATION(Litleo); +SINGLE_ANIMATION(Pyroar); +#endif //P_FAMILY_LITLEO +#if P_FAMILY_FLABEBE +SINGLE_ANIMATION(Flabebe); +SINGLE_ANIMATION(Floette); +SINGLE_ANIMATION(Florges); +#endif //P_FAMILY_FLABEBE +#if P_FAMILY_SKIDDO +SINGLE_ANIMATION(Skiddo); +SINGLE_ANIMATION(Gogoat); +#endif //P_FAMILY_SKIDDO +#if P_FAMILY_PANCHAM +SINGLE_ANIMATION(Pancham); +SINGLE_ANIMATION(Pangoro); +#endif //P_FAMILY_PANCHAM +#if P_FAMILY_FURFROU +SINGLE_ANIMATION(Furfrou); +#endif //P_FAMILY_FURFROU +#if P_FAMILY_ESPURR +SINGLE_ANIMATION(Espurr); +SINGLE_ANIMATION(Meowstic); +#endif //P_FAMILY_ESPURR +#if P_FAMILY_HONEDGE +SINGLE_ANIMATION(Honedge); +SINGLE_ANIMATION(Doublade); +SINGLE_ANIMATION(AegislashShield); SINGLE_ANIMATION(AegislashBlade); +#endif //P_FAMILY_HONEDGE +#if P_FAMILY_SPRITZEE +SINGLE_ANIMATION(Spritzee); +SINGLE_ANIMATION(Aromatisse); +#endif //P_FAMILY_SPRITZEE +#if P_FAMILY_SWIRLIX +SINGLE_ANIMATION(Swirlix); +SINGLE_ANIMATION(Slurpuff); +#endif //P_FAMILY_SWIRLIX +#if P_FAMILY_INKAY +SINGLE_ANIMATION(Inkay); +SINGLE_ANIMATION(Malamar); +#endif //P_FAMILY_INKAY +#if P_FAMILY_BINACLE +SINGLE_ANIMATION(Binacle); +SINGLE_ANIMATION(Barbaracle); +#endif //P_FAMILY_BINACLE +#if P_FAMILY_SKRELP +SINGLE_ANIMATION(Skrelp); +SINGLE_ANIMATION(Dragalge); +#endif //P_FAMILY_SKRELP +#if P_FAMILY_CLAUNCHER +SINGLE_ANIMATION(Clauncher); +SINGLE_ANIMATION(Clawitzer); +#endif //P_FAMILY_CLAUNCHER +#if P_FAMILY_HELIOPTILE +SINGLE_ANIMATION(Helioptile); +SINGLE_ANIMATION(Heliolisk); +#endif //P_FAMILY_HELIOPTILE +#if P_FAMILY_TYRUNT +SINGLE_ANIMATION(Tyrunt); +SINGLE_ANIMATION(Tyrantrum); +#endif //P_FAMILY_TYRUNT +#if P_FAMILY_AMAURA +SINGLE_ANIMATION(Amaura); +SINGLE_ANIMATION(Aurorus); +#endif //P_FAMILY_AMAURA +#if P_FAMILY_HAWLUCHA +SINGLE_ANIMATION(Hawlucha); +#endif //P_FAMILY_HAWLUCHA +#if P_FAMILY_DEDENNE +SINGLE_ANIMATION(Dedenne); +#endif //P_FAMILY_DEDENNE +#if P_FAMILY_CARBINK +SINGLE_ANIMATION(Carbink); +#endif //P_FAMILY_CARBINK +#if P_FAMILY_GOOMY +SINGLE_ANIMATION(Goomy); +SINGLE_ANIMATION(Sliggoo); +SINGLE_ANIMATION(Goodra); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(SliggooHisuian); +SINGLE_ANIMATION(GoodraHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY +#if P_FAMILY_KLEFKI +SINGLE_ANIMATION(Klefki); +#endif //P_FAMILY_KLEFKI +#if P_FAMILY_PHANTUMP +SINGLE_ANIMATION(Phantump); +SINGLE_ANIMATION(Trevenant); +#endif //P_FAMILY_PHANTUMP +#if P_FAMILY_PUMPKABOO +SINGLE_ANIMATION(Pumpkaboo); +SINGLE_ANIMATION(Gourgeist); +#endif //P_FAMILY_PUMPKABOO +#if P_FAMILY_BERGMITE +SINGLE_ANIMATION(Bergmite); +SINGLE_ANIMATION(Avalugg); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(AvaluggHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE +#if P_FAMILY_NOIBAT +SINGLE_ANIMATION(Noibat); +SINGLE_ANIMATION(Noivern); +#endif //P_FAMILY_NOIBAT +#if P_FAMILY_XERNEAS +SINGLE_ANIMATION(Xerneas); +#endif //P_FAMILY_XERNEAS +#if P_FAMILY_YVELTAL +SINGLE_ANIMATION(Yveltal); +#endif //P_FAMILY_YVELTAL +#if P_FAMILY_ZYGARDE +SINGLE_ANIMATION(Zygarde50); SINGLE_ANIMATION(Zygarde10); SINGLE_ANIMATION(ZygardeComplete); +#endif //P_FAMILY_ZYGARDE +#if P_FAMILY_DIANCIE +SINGLE_ANIMATION(Diancie); +#if P_MEGA_EVOLUTIONS +SINGLE_ANIMATION(DiancieMega); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_DIANCIE +#if P_FAMILY_HOOPA +SINGLE_ANIMATION(HoopaConfined); SINGLE_ANIMATION(HoopaUnbound); -#endif -#if P_GEN_7_POKEMON == TRUE -SINGLE_ANIMATION(MiniorCore); -SINGLE_ANIMATION(WishiwashiSchool); -SINGLE_ANIMATION(MimikyuBusted); +#endif //P_FAMILY_HOOPA +#if P_FAMILY_VOLCANION +SINGLE_ANIMATION(Volcanion); +#endif //P_FAMILY_VOLCANION +#if P_FAMILY_ROWLET +SINGLE_ANIMATION(Rowlet); +SINGLE_ANIMATION(Dartrix); +SINGLE_ANIMATION(Decidueye); +#if P_HISUIAN_FORMS +SINGLE_ANIMATION(DecidueyeHisuian); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET +#if P_FAMILY_LITTEN +SINGLE_ANIMATION(Litten); +SINGLE_ANIMATION(Torracat); +SINGLE_ANIMATION(Incineroar); +#endif //P_FAMILY_LITTEN +#if P_FAMILY_POPPLIO +SINGLE_ANIMATION(Popplio); +SINGLE_ANIMATION(Brionne); +SINGLE_ANIMATION(Primarina); +#endif //P_FAMILY_POPPLIO +#if P_FAMILY_PIKIPEK +SINGLE_ANIMATION(Pikipek); +SINGLE_ANIMATION(Trumbeak); +SINGLE_ANIMATION(Toucannon); +#endif //P_FAMILY_PIKIPEK +#if P_FAMILY_YUNGOOS +SINGLE_ANIMATION(Yungoos); +SINGLE_ANIMATION(Gumshoos); +#endif //P_FAMILY_YUNGOOS +#if P_FAMILY_GRUBBIN +SINGLE_ANIMATION(Grubbin); +SINGLE_ANIMATION(Charjabug); +SINGLE_ANIMATION(Vikavolt); +#endif //P_FAMILY_GRUBBIN +#if P_FAMILY_CRABRAWLER +SINGLE_ANIMATION(Crabrawler); +SINGLE_ANIMATION(Crabominable); +#endif //P_FAMILY_CRABRAWLER +#if P_FAMILY_ORICORIO +SINGLE_ANIMATION(Oricorio); +#endif //P_FAMILY_ORICORIO +#if P_FAMILY_CUTIEFLY +SINGLE_ANIMATION(Cutiefly); +SINGLE_ANIMATION(Ribombee); +#endif //P_FAMILY_CUTIEFLY +#if P_FAMILY_ROCKRUFF +SINGLE_ANIMATION(Rockruff); +SINGLE_ANIMATION(LycanrocMidday); SINGLE_ANIMATION(LycanrocMidnight); SINGLE_ANIMATION(LycanrocDusk); -#endif -#if P_GEN_8_POKEMON == TRUE -SINGLE_ANIMATION(EnamorusTherian); -SINGLE_ANIMATION(UrsalunaBloodmoon); -#endif -// Gigantamax Forms -SINGLE_ANIMATION(VenusaurGigantamax); -SINGLE_ANIMATION(CharizardGigantamax); -SINGLE_ANIMATION(BlastoiseGigantamax); -SINGLE_ANIMATION(ButterfreeGigantamax); -SINGLE_ANIMATION(PikachuGigantamax); -SINGLE_ANIMATION(MeowthGigantamax); -SINGLE_ANIMATION(MachampGigantamax); -SINGLE_ANIMATION(GengarGigantamax); -SINGLE_ANIMATION(KinglerGigantamax); -SINGLE_ANIMATION(LaprasGigantamax); -SINGLE_ANIMATION(EeveeGigantamax); -SINGLE_ANIMATION(SnorlaxGigantamax); -#if P_GEN_5_POKEMON == TRUE -SINGLE_ANIMATION(GarbodorGigantamax); -#endif -#if P_GEN_7_POKEMON == TRUE +#endif //P_FAMILY_ROCKRUFF +#if P_FAMILY_WISHIWASHI +SINGLE_ANIMATION(WishiwashiSolo); +SINGLE_ANIMATION(WishiwashiSchool); +#endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_MAREANIE +SINGLE_ANIMATION(Mareanie); +SINGLE_ANIMATION(Toxapex); +#endif //P_FAMILY_MAREANIE +#if P_FAMILY_MUDBRAY +SINGLE_ANIMATION(Mudbray); +SINGLE_ANIMATION(Mudsdale); +#endif //P_FAMILY_MUDBRAY +#if P_FAMILY_DEWPIDER +SINGLE_ANIMATION(Dewpider); +SINGLE_ANIMATION(Araquanid); +#endif //P_FAMILY_DEWPIDER +#if P_FAMILY_FOMANTIS +SINGLE_ANIMATION(Fomantis); +SINGLE_ANIMATION(Lurantis); +#endif //P_FAMILY_FOMANTIS +#if P_FAMILY_MORELULL +SINGLE_ANIMATION(Morelull); +SINGLE_ANIMATION(Shiinotic); +#endif //P_FAMILY_MORELULL +#if P_FAMILY_SALANDIT +SINGLE_ANIMATION(Salandit); +SINGLE_ANIMATION(Salazzle); +#endif //P_FAMILY_SALANDIT +#if P_FAMILY_STUFFUL +SINGLE_ANIMATION(Stufful); +SINGLE_ANIMATION(Bewear); +#endif //P_FAMILY_STUFFUL +#if P_FAMILY_BOUNSWEET +SINGLE_ANIMATION(Bounsweet); +SINGLE_ANIMATION(Steenee); +SINGLE_ANIMATION(Tsareena); +#endif //P_FAMILY_BOUNSWEET +#if P_FAMILY_COMFEY +SINGLE_ANIMATION(Comfey); +#endif //P_FAMILY_COMFEY +#if P_FAMILY_ORANGURU +SINGLE_ANIMATION(Oranguru); +#endif //P_FAMILY_ORANGURU +#if P_FAMILY_PASSIMIAN +SINGLE_ANIMATION(Passimian); +#endif //P_FAMILY_PASSIMIAN +#if P_FAMILY_WIMPOD +SINGLE_ANIMATION(Wimpod); +SINGLE_ANIMATION(Golisopod); +#endif //P_FAMILY_WIMPOD +#if P_FAMILY_SANDYGAST +SINGLE_ANIMATION(Sandygast); +SINGLE_ANIMATION(Palossand); +#endif //P_FAMILY_SANDYGAST +#if P_FAMILY_PYUKUMUKU +SINGLE_ANIMATION(Pyukumuku); +#endif //P_FAMILY_PYUKUMUKU +#if P_FAMILY_TYPE_NULL +SINGLE_ANIMATION(TypeNull); +SINGLE_ANIMATION(Silvally); +#endif //P_FAMILY_TYPE_NULL +#if P_FAMILY_MINIOR +SINGLE_ANIMATION(MiniorMeteor); +SINGLE_ANIMATION(MiniorCore); +#endif //P_FAMILY_MINIOR +#if P_FAMILY_KOMALA +SINGLE_ANIMATION(Komala); +#endif //P_FAMILY_KOMALA +#if P_FAMILY_TURTONATOR +SINGLE_ANIMATION(Turtonator); +#endif //P_FAMILY_TURTONATOR +#if P_FAMILY_TOGEDEMARU +SINGLE_ANIMATION(Togedemaru); +#endif //P_FAMILY_TOGEDEMARU +#if P_FAMILY_MIMIKYU +SINGLE_ANIMATION(MimikyuDisguised); +SINGLE_ANIMATION(MimikyuBusted); +#endif //P_FAMILY_MIMIKYU +#if P_FAMILY_BRUXISH +SINGLE_ANIMATION(Bruxish); +#endif //P_FAMILY_BRUXISH +#if P_FAMILY_DRAMPA +SINGLE_ANIMATION(Drampa); +#endif //P_FAMILY_DRAMPA +#if P_FAMILY_DHELMISE +SINGLE_ANIMATION(Dhelmise); +#endif //P_FAMILY_DHELMISE +#if P_FAMILY_JANGMO_O +SINGLE_ANIMATION(Jangmo_O); +SINGLE_ANIMATION(Hakamo_O); +SINGLE_ANIMATION(Kommo_O); +#endif //P_FAMILY_JANGMO_O +#if P_FAMILY_TAPU_KOKO +SINGLE_ANIMATION(TapuKoko); +#endif //P_FAMILY_TAPU_KOKO +#if P_FAMILY_TAPU_LELE +SINGLE_ANIMATION(TapuLele); +#endif //P_FAMILY_TAPU_LELE +#if P_FAMILY_TAPU_BULU +SINGLE_ANIMATION(TapuBulu); +#endif //P_FAMILY_TAPU_BULU +#if P_FAMILY_TAPU_FINI +SINGLE_ANIMATION(TapuFini); +#endif //P_FAMILY_TAPU_FINI +#if P_FAMILY_COSMOG +SINGLE_ANIMATION(Cosmog); +SINGLE_ANIMATION(Cosmoem); +SINGLE_ANIMATION(Solgaleo); +SINGLE_ANIMATION(Lunala); +#endif //P_FAMILY_COSMOG +#if P_FAMILY_NIHILEGO +SINGLE_ANIMATION(Nihilego); +#endif //P_FAMILY_NIHILEGO +#if P_FAMILY_BUZZWOLE +SINGLE_ANIMATION(Buzzwole); +#endif //P_FAMILY_BUZZWOLE +#if P_FAMILY_PHEROMOSA +SINGLE_ANIMATION(Pheromosa); +#endif //P_FAMILY_PHEROMOSA +#if P_FAMILY_XURKITREE +SINGLE_ANIMATION(Xurkitree); +#endif //P_FAMILY_XURKITREE +#if P_FAMILY_CELESTEELA +SINGLE_ANIMATION(Celesteela); +#endif //P_FAMILY_CELESTEELA +#if P_FAMILY_KARTANA +SINGLE_ANIMATION(Kartana); +#endif //P_FAMILY_KARTANA +#if P_FAMILY_GUZZLORD +SINGLE_ANIMATION(Guzzlord); +#endif //P_FAMILY_GUZZLORD +#if P_FAMILY_NECROZMA +SINGLE_ANIMATION(Necrozma); +#endif //P_FAMILY_NECROZMA +#if P_FAMILY_MAGEARNA +SINGLE_ANIMATION(Magearna); +#endif //P_FAMILY_MAGEARNA +#if P_FAMILY_MARSHADOW +SINGLE_ANIMATION(Marshadow); +#endif //P_FAMILY_MARSHADOW +#if P_FAMILY_POIPOLE +SINGLE_ANIMATION(Poipole); +SINGLE_ANIMATION(Naganadel); +#endif //P_FAMILY_POIPOLE +#if P_FAMILY_STAKATAKA +SINGLE_ANIMATION(Stakataka); +#endif //P_FAMILY_STAKATAKA +#if P_FAMILY_BLACEPHALON +SINGLE_ANIMATION(Blacephalon); +#endif //P_FAMILY_BLACEPHALON +#if P_FAMILY_ZERAORA +SINGLE_ANIMATION(Zeraora); +#endif //P_FAMILY_ZERAORA +#if P_FAMILY_MELTAN +SINGLE_ANIMATION(Meltan); +SINGLE_ANIMATION(Melmetal); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(MelmetalGigantamax); -#endif -#if P_GEN_8_POKEMON == TRUE +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MELTAN +#if P_FAMILY_GROOKEY +SINGLE_ANIMATION(Grookey); +SINGLE_ANIMATION(Thwackey); +SINGLE_ANIMATION(Rillaboom); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(RillaboomGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GROOKEY +#if P_FAMILY_SCORBUNNY +SINGLE_ANIMATION(Scorbunny); +SINGLE_ANIMATION(Raboot); +SINGLE_ANIMATION(Cinderace); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(CinderaceGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SCORBUNNY +#if P_FAMILY_SOBBLE +SINGLE_ANIMATION(Sobble); +SINGLE_ANIMATION(Drizzile); +SINGLE_ANIMATION(Inteleon); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(InteleonGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SOBBLE +#if P_FAMILY_SKWOVET +SINGLE_ANIMATION(Skwovet); +SINGLE_ANIMATION(Greedent); +#endif //P_FAMILY_SKWOVET +#if P_FAMILY_ROOKIDEE +SINGLE_ANIMATION(Rookidee); +SINGLE_ANIMATION(Corvisquire); +SINGLE_ANIMATION(Corviknight); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(CorviknightGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROOKIDEE +#if P_FAMILY_BLIPBUG +SINGLE_ANIMATION(Blipbug); +SINGLE_ANIMATION(Dottler); +SINGLE_ANIMATION(Orbeetle); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(OrbeetleGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BLIPBUG +#if P_FAMILY_NICKIT +SINGLE_ANIMATION(Nickit); +SINGLE_ANIMATION(Thievul); +#endif //P_FAMILY_NICKIT +#if P_FAMILY_GOSSIFLEUR +SINGLE_ANIMATION(Gossifleur); +SINGLE_ANIMATION(Eldegoss); +#endif //P_FAMILY_GOSSIFLEUR +#if P_FAMILY_WOOLOO +SINGLE_ANIMATION(Wooloo); +SINGLE_ANIMATION(Dubwool); +#endif //P_FAMILY_WOOLOO +#if P_FAMILY_CHEWTLE +SINGLE_ANIMATION(Chewtle); +SINGLE_ANIMATION(Drednaw); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(DrednawGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHEWTLE +#if P_FAMILY_YAMPER +SINGLE_ANIMATION(Yamper); +SINGLE_ANIMATION(Boltund); +#endif //P_FAMILY_YAMPER +#if P_FAMILY_ROLYCOLY +SINGLE_ANIMATION(Rolycoly); +SINGLE_ANIMATION(Carkol); +SINGLE_ANIMATION(Coalossal); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(CoalossalGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROLYCOLY +#if P_FAMILY_APPLIN +SINGLE_ANIMATION(Applin); +SINGLE_ANIMATION(Flapple); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(FlappleGigantamax); +#endif //P_GIGANTAMAX_FORMS +SINGLE_ANIMATION(Appletun); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(AppletunGigantamax); +#endif //P_GIGANTAMAX_FORMS +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Dipplin); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN +#if P_FAMILY_SILICOBRA +SINGLE_ANIMATION(Silicobra); +SINGLE_ANIMATION(Sandaconda); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(SandacondaGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SILICOBRA +#if P_FAMILY_CRAMORANT +SINGLE_ANIMATION(Cramorant); +#endif //P_FAMILY_CRAMORANT +#if P_FAMILY_ARROKUDA +SINGLE_ANIMATION(Arrokuda); +SINGLE_ANIMATION(Barraskewda); +#endif //P_FAMILY_ARROKUDA +#if P_FAMILY_TOXEL +SINGLE_ANIMATION(Toxel); +SINGLE_ANIMATION(Toxtricity); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(ToxtricityGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TOXEL +#if P_FAMILY_SIZZLIPEDE +SINGLE_ANIMATION(Sizzlipede); +SINGLE_ANIMATION(Centiskorch); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(CentiskorchGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SIZZLIPEDE +#if P_FAMILY_CLOBBOPUS +SINGLE_ANIMATION(Clobbopus); +SINGLE_ANIMATION(Grapploct); +#endif //P_FAMILY_CLOBBOPUS +#if P_FAMILY_SINISTEA +SINGLE_ANIMATION(Sinistea); +SINGLE_ANIMATION(Polteageist); +#endif //P_FAMILY_SINISTEA +#if P_FAMILY_HATENNA +SINGLE_ANIMATION(Hatenna); +SINGLE_ANIMATION(Hattrem); +SINGLE_ANIMATION(Hatterene); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(HattereneGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_HATENNA +#if P_FAMILY_IMPIDIMP +SINGLE_ANIMATION(Impidimp); +SINGLE_ANIMATION(Morgrem); +SINGLE_ANIMATION(Grimmsnarl); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(GrimmsnarlGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_IMPIDIMP +#if P_FAMILY_MILCERY +SINGLE_ANIMATION(Milcery); +SINGLE_ANIMATION(Alcremie); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(AlcremieGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MILCERY +#if P_FAMILY_FALINKS +SINGLE_ANIMATION(Falinks); +#endif //P_FAMILY_FALINKS +#if P_FAMILY_PINCURCHIN +SINGLE_ANIMATION(Pincurchin); +#endif //P_FAMILY_PINCURCHIN +#if P_FAMILY_SNOM +SINGLE_ANIMATION(Snom); +SINGLE_ANIMATION(Frosmoth); +#endif //P_FAMILY_SNOM +#if P_FAMILY_STONJOURNER +SINGLE_ANIMATION(Stonjourner); +#endif //P_FAMILY_STONJOURNER +#if P_FAMILY_EISCUE +SINGLE_ANIMATION(Eiscue); +#endif //P_FAMILY_EISCUE +#if P_FAMILY_INDEEDEE +SINGLE_ANIMATION(Indeedee); +#endif //P_FAMILY_INDEEDEE +#if P_FAMILY_MORPEKO +SINGLE_ANIMATION(Morpeko); +#endif //P_FAMILY_MORPEKO +#if P_FAMILY_CUFANT +SINGLE_ANIMATION(Cufant); +SINGLE_ANIMATION(Copperajah); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(CopperajahGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CUFANT +#if P_FAMILY_DRACOZOLT +SINGLE_ANIMATION(Dracozolt); +#endif //P_FAMILY_DRACOZOLT +#if P_FAMILY_ARCTOZOLT +SINGLE_ANIMATION(Arctozolt); +#endif //P_FAMILY_ARCTOZOLT +#if P_FAMILY_DRACOVISH +SINGLE_ANIMATION(Dracovish); +#endif //P_FAMILY_DRACOVISH +#if P_FAMILY_ARCTOVISH +SINGLE_ANIMATION(Arctovish); +#endif //P_FAMILY_ARCTOVISH +#if P_FAMILY_DURALUDON +SINGLE_ANIMATION(Duraludon); +#if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(DuraludonGigantamax); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_DURALUDON +#if P_FAMILY_DREEPY +SINGLE_ANIMATION(Dreepy); +SINGLE_ANIMATION(Drakloak); +SINGLE_ANIMATION(Dragapult); +#endif //P_FAMILY_DREEPY +#if P_FAMILY_ZACIAN +SINGLE_ANIMATION(Zacian); +#endif //P_FAMILY_ZACIAN +#if P_FAMILY_ZAMAZENTA +SINGLE_ANIMATION(Zamazenta); +#endif //P_FAMILY_ZAMAZENTA +#if P_FAMILY_ETERNATUS +SINGLE_ANIMATION(Eternatus); +#endif //P_FAMILY_ETERNATUS +#if P_FAMILY_KUBFU +SINGLE_ANIMATION(Kubfu); +SINGLE_ANIMATION(Urshifu); +#if P_GIGANTAMAX_FORMS 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_TAUROS_PALDEAN_COMBAT_BREED] = sAnims_TaurosPaldean, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = sAnims_TaurosPaldean, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = sAnims_TaurosPaldean, - [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_WOOPER_PALDEAN] = sAnims_WooperPaldean, - [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_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_ALCREMIE_BERRY_VANILLA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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 -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = sAnims_Sprigatito, - [SPECIES_FLORAGATO] = sAnims_Floragato, - [SPECIES_MEOWSCARADA] = sAnims_Meowscarada, - [SPECIES_FUECOCO] = sAnims_Fuecoco, - [SPECIES_CROCALOR] = sAnims_Crocalor, - [SPECIES_SKELEDIRGE] = sAnims_Skeledirge, - [SPECIES_QUAXLY] = sAnims_Quaxly, - [SPECIES_QUAXWELL] = sAnims_Quaxwell, - [SPECIES_QUAQUAVAL] = sAnims_Quaquaval, - [SPECIES_LECHONK] = sAnims_Lechonk, - [SPECIES_OINKOLOGNE_MALE] = sAnims_Oinkologne, - [SPECIES_OINKOLOGNE_FEMALE] = sAnims_Oinkologne, - [SPECIES_TAROUNTULA] = sAnims_Tarountula, - [SPECIES_SPIDOPS] = sAnims_Spidops, - [SPECIES_NYMBLE] = sAnims_Nymble, - [SPECIES_LOKIX] = sAnims_Lokix, - [SPECIES_PAWMI] = sAnims_Pawmi, - [SPECIES_PAWMO] = sAnims_Pawmo, - [SPECIES_PAWMOT] = sAnims_Pawmot, - [SPECIES_TANDEMAUS] = sAnims_Tandemaus, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = sAnims_Maushold, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = sAnims_Maushold, - [SPECIES_FIDOUGH] = sAnims_Fidough, - [SPECIES_DACHSBUN] = sAnims_Dachsbun, - [SPECIES_SMOLIV] = sAnims_Smoliv, - [SPECIES_DOLLIV] = sAnims_Dolliv, - [SPECIES_ARBOLIVA] = sAnims_Arboliva, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = sAnims_Squawkabilly, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = sAnims_Squawkabilly, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = sAnims_Squawkabilly, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = sAnims_Squawkabilly, - [SPECIES_NACLI] = sAnims_Nacli, - [SPECIES_NACLSTACK] = sAnims_Naclstack, - [SPECIES_GARGANACL] = sAnims_Garganacl, - [SPECIES_CHARCADET] = sAnims_Charcadet, - [SPECIES_ARMAROUGE] = sAnims_Armarouge, - [SPECIES_CERULEDGE] = sAnims_Ceruledge, - [SPECIES_TADBULB] = sAnims_Tadbulb, - [SPECIES_BELLIBOLT] = sAnims_Bellibolt, - [SPECIES_WATTREL] = sAnims_Wattrel, - [SPECIES_KILOWATTREL] = sAnims_Kilowattrel, - [SPECIES_MASCHIFF] = sAnims_Maschiff, - [SPECIES_MABOSSTIFF] = sAnims_Mabosstiff, - [SPECIES_SHROODLE] = sAnims_Shroodle, - [SPECIES_GRAFAIAI] = sAnims_Grafaiai, - [SPECIES_BRAMBLIN] = sAnims_Bramblin, - [SPECIES_BRAMBLEGHAST] = sAnims_Brambleghast, - [SPECIES_TOEDSCOOL] = sAnims_Toedscool, - [SPECIES_TOEDSCRUEL] = sAnims_Toedscruel, - [SPECIES_KLAWF] = sAnims_Klawf, - [SPECIES_CAPSAKID] = sAnims_Capsakid, - [SPECIES_SCOVILLAIN] = sAnims_Scovillain, - [SPECIES_RELLOR] = sAnims_Rellor, - [SPECIES_RABSCA] = sAnims_Rabsca, - [SPECIES_FLITTLE] = sAnims_Flittle, - [SPECIES_ESPATHRA] = sAnims_Espathra, - [SPECIES_TINKATINK] = sAnims_Tinkatink, - [SPECIES_TINKATUFF] = sAnims_Tinkatuff, - [SPECIES_TINKATON] = sAnims_Tinkaton, - [SPECIES_WIGLETT] = sAnims_Wiglett, - [SPECIES_WUGTRIO] = sAnims_Wugtrio, - [SPECIES_BOMBIRDIER] = sAnims_Bombirdier, - [SPECIES_FINIZEN] = sAnims_Finizen, - [SPECIES_PALAFIN_ZERO] = sAnims_Palafin, - [SPECIES_PALAFIN_HERO] = sAnims_Palafin, - [SPECIES_VAROOM] = sAnims_Varoom, - [SPECIES_REVAVROOM] = sAnims_Revavroom, - [SPECIES_CYCLIZAR] = sAnims_Cyclizar, - [SPECIES_ORTHWORM] = sAnims_Orthworm, - [SPECIES_GLIMMET] = sAnims_Glimmet, - [SPECIES_GLIMMORA] = sAnims_Glimmora, - [SPECIES_GREAVARD] = sAnims_Greavard, - [SPECIES_HOUNDSTONE] = sAnims_Houndstone, - [SPECIES_FLAMIGO] = sAnims_Flamigo, - [SPECIES_CETODDLE] = sAnims_Cetoddle, - [SPECIES_CETITAN] = sAnims_Cetitan, - [SPECIES_VELUZA] = sAnims_Veluza, - [SPECIES_DONDOZO] = sAnims_Dondozo, - [SPECIES_TATSUGIRI_CURLY] = sAnims_Tatsugiri, - [SPECIES_TATSUGIRI_DROOPY] = sAnims_Tatsugiri, - [SPECIES_TATSUGIRI_STRETCHY] = sAnims_Tatsugiri, - [SPECIES_ANNIHILAPE] = sAnims_Annihilape, - [SPECIES_CLODSIRE] = sAnims_Clodsire, - [SPECIES_FARIGIRAF] = sAnims_Farigiraf, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = sAnims_Dudunsparce, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = sAnims_Dudunsparce, - [SPECIES_KINGAMBIT] = sAnims_Kingambit, - [SPECIES_GREAT_TUSK] = sAnims_GreatTusk, - [SPECIES_SCREAM_TAIL] = sAnims_ScreamTail, - [SPECIES_BRUTE_BONNET] = sAnims_BruteBonnet, - [SPECIES_FLUTTER_MANE] = sAnims_FlutterMane, - [SPECIES_SLITHER_WING] = sAnims_SlitherWing, - [SPECIES_SANDY_SHOCKS] = sAnims_SandyShocks, - [SPECIES_IRON_TREADS] = sAnims_IronTreads, - [SPECIES_IRON_BUNDLE] = sAnims_IronBundle, - [SPECIES_IRON_HANDS] = sAnims_IronHands, - [SPECIES_IRON_JUGULIS] = sAnims_IronJugulis, - [SPECIES_IRON_MOTH] = sAnims_IronMoth, - [SPECIES_IRON_THORNS] = sAnims_IronThorns, - [SPECIES_FRIGIBAX] = sAnims_Frigibax, - [SPECIES_ARCTIBAX] = sAnims_Arctibax, - [SPECIES_BAXCALIBUR] = sAnims_Baxcalibur, - [SPECIES_GIMMIGHOUL_CHEST] = sAnims_Gimmighoul, - [SPECIES_GIMMIGHOUL_ROAMING] = sAnims_Gimmighoul, - [SPECIES_GHOLDENGO] = sAnims_Gholdengo, - [SPECIES_WO_CHIEN] = sAnims_WoChien, - [SPECIES_CHIEN_PAO] = sAnims_ChienPao, - [SPECIES_TING_LU] = sAnims_TingLu, - [SPECIES_CHI_YU] = sAnims_ChiYu, - [SPECIES_ROARING_MOON] = sAnims_RoaringMoon, - [SPECIES_IRON_VALIANT] = sAnims_IronValiant, - [SPECIES_KORAIDON] = sAnims_Koraidon, - [SPECIES_MIRAIDON] = sAnims_Miraidon, - [SPECIES_WALKING_WAKE] = sAnims_WalkingWake, - [SPECIES_IRON_LEAVES] = sAnims_IronLeaves, - [SPECIES_DIPPLIN] = sAnims_Dipplin, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = sAnims_Poltchageist, - [SPECIES_POLTCHAGEIST_ARTISAN] = sAnims_Poltchageist, - [SPECIES_SINISTCHA_UNREMARKABLE] = sAnims_Sinistcha, - [SPECIES_SINISTCHA_MASTERPIECE] = sAnims_Sinistcha, - [SPECIES_OKIDOGI] = sAnims_Okidogi, - [SPECIES_MUNKIDORI] = sAnims_Munkidori, - [SPECIES_FEZANDIPITI] = sAnims_Fezandipiti, - [SPECIES_OGERPON_TEAL_MASK] = sAnims_Ogerpon, - [SPECIES_OGERPON_WELLSPRING_MASK] = sAnims_Ogerpon, - [SPECIES_OGERPON_HEARTHFLAME_MASK] = sAnims_Ogerpon, - [SPECIES_OGERPON_CORNERSTONE_MASK] = sAnims_Ogerpon, - [SPECIES_OGERPON_TEAL_MASK_TERA] = sAnims_Ogerpon, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = sAnims_Ogerpon, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = sAnims_Ogerpon, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = sAnims_Ogerpon, -#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_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, - [SPECIES_URSALUNA_BLOODMOON] = sAnims_UrsalunaBloodmoon, -#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, -}; +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_KUBFU +#if P_FAMILY_ZARUDE +SINGLE_ANIMATION(Zarude); +#endif //P_FAMILY_ZARUDE +#if P_FAMILY_REGIELEKI +SINGLE_ANIMATION(Regieleki); +#endif //P_FAMILY_REGIELEKI +#if P_FAMILY_REGIDRAGO +SINGLE_ANIMATION(Regidrago); +#endif //P_FAMILY_REGIDRAGO +#if P_FAMILY_GLASTRIER +SINGLE_ANIMATION(Glastrier); +#endif //P_FAMILY_GLASTRIER +#if P_FAMILY_SPECTRIER +SINGLE_ANIMATION(Spectrier); +#endif //P_FAMILY_SPECTRIER +#if P_FAMILY_CALYREX +SINGLE_ANIMATION(Calyrex); +#endif //P_FAMILY_CALYREX +#if P_FAMILY_ENAMORUS +SINGLE_ANIMATION(EnamorusIncarnate); +SINGLE_ANIMATION(EnamorusTherian); +#endif //P_FAMILY_ENAMORUS +#if P_FAMILY_SPRIGATITO +SINGLE_ANIMATION(Sprigatito); +SINGLE_ANIMATION(Floragato); +SINGLE_ANIMATION(Meowscarada); +#endif //P_FAMILY_SPRIGATITO +#if P_FAMILY_FUECOCO +SINGLE_ANIMATION(Fuecoco); +SINGLE_ANIMATION(Crocalor); +SINGLE_ANIMATION(Skeledirge); +#endif //P_FAMILY_FUECOCO +#if P_FAMILY_QUAXLY +SINGLE_ANIMATION(Quaxly); +SINGLE_ANIMATION(Quaxwell); +SINGLE_ANIMATION(Quaquaval); +#endif //P_FAMILY_QUAXLY +#if P_FAMILY_LECHONK +SINGLE_ANIMATION(Lechonk); +SINGLE_ANIMATION(Oinkologne); +#endif //P_FAMILY_LECHONK +#if P_FAMILY_TAROUNTULA +SINGLE_ANIMATION(Tarountula); +SINGLE_ANIMATION(Spidops); +#endif //P_FAMILY_TAROUNTULA +#if P_FAMILY_NYMBLE +SINGLE_ANIMATION(Nymble); +SINGLE_ANIMATION(Lokix); +#endif //P_FAMILY_NYMBLE +#if P_FAMILY_PAWMI +SINGLE_ANIMATION(Pawmi); +SINGLE_ANIMATION(Pawmo); +SINGLE_ANIMATION(Pawmot); +#endif //P_FAMILY_PAWMI +#if P_FAMILY_TANDEMAUS +SINGLE_ANIMATION(Tandemaus); +SINGLE_ANIMATION(Maushold); +#endif //P_FAMILY_TANDEMAUS +#if P_FAMILY_FIDOUGH +SINGLE_ANIMATION(Fidough); +SINGLE_ANIMATION(Dachsbun); +#endif //P_FAMILY_FIDOUGH +#if P_FAMILY_SMOLIV +SINGLE_ANIMATION(Smoliv); +SINGLE_ANIMATION(Dolliv); +SINGLE_ANIMATION(Arboliva); +#endif //P_FAMILY_SMOLIV +#if P_FAMILY_SQUAWKABILLY +SINGLE_ANIMATION(Squawkabilly); +#endif //P_FAMILY_SQUAWKABILLY +#if P_FAMILY_NACLI +SINGLE_ANIMATION(Nacli); +SINGLE_ANIMATION(Naclstack); +SINGLE_ANIMATION(Garganacl); +#endif //P_FAMILY_NACLI +#if P_FAMILY_CHARCADET +SINGLE_ANIMATION(Charcadet); +SINGLE_ANIMATION(Armarouge); +SINGLE_ANIMATION(Ceruledge); +#endif //P_FAMILY_CHARCADET +#if P_FAMILY_TADBULB +SINGLE_ANIMATION(Tadbulb); +SINGLE_ANIMATION(Bellibolt); +#endif //P_FAMILY_TADBULB +#if P_FAMILY_WATTREL +SINGLE_ANIMATION(Wattrel); +SINGLE_ANIMATION(Kilowattrel); +#endif //P_FAMILY_WATTREL +#if P_FAMILY_MASCHIFF +SINGLE_ANIMATION(Maschiff); +SINGLE_ANIMATION(Mabosstiff); +#endif //P_FAMILY_MASCHIFF +#if P_FAMILY_SHROODLE +SINGLE_ANIMATION(Shroodle); +SINGLE_ANIMATION(Grafaiai); +#endif //P_FAMILY_SHROODLE +#if P_FAMILY_BRAMBLIN +SINGLE_ANIMATION(Bramblin); +SINGLE_ANIMATION(Brambleghast); +#endif //P_FAMILY_BRAMBLIN +#if P_FAMILY_TOEDSCOOL +SINGLE_ANIMATION(Toedscool); +SINGLE_ANIMATION(Toedscruel); +#endif //P_FAMILY_TOEDSCOOL +#if P_FAMILY_KLAWF +SINGLE_ANIMATION(Klawf); +#endif //P_FAMILY_KLAWF +#if P_FAMILY_CAPSAKID +SINGLE_ANIMATION(Capsakid); +SINGLE_ANIMATION(Scovillain); +#endif //P_FAMILY_CAPSAKID +#if P_FAMILY_RELLOR +SINGLE_ANIMATION(Rellor); +SINGLE_ANIMATION(Rabsca); +#endif //P_FAMILY_RELLOR +#if P_FAMILY_FLITTLE +SINGLE_ANIMATION(Flittle); +SINGLE_ANIMATION(Espathra); +#endif //P_FAMILY_FLITTLE +#if P_FAMILY_TINKATINK +SINGLE_ANIMATION(Tinkatink); +SINGLE_ANIMATION(Tinkatuff); +SINGLE_ANIMATION(Tinkaton); +#endif //P_FAMILY_TINKATINK +#if P_FAMILY_WIGLETT +SINGLE_ANIMATION(Wiglett); +SINGLE_ANIMATION(Wugtrio); +#endif //P_FAMILY_WIGLETT +#if P_FAMILY_BOMBIRDIER +SINGLE_ANIMATION(Bombirdier); +#endif //P_FAMILY_BOMBIRDIER +#if P_FAMILY_FINIZEN +SINGLE_ANIMATION(Finizen); +SINGLE_ANIMATION(Palafin); +#endif //P_FAMILY_FINIZEN +#if P_FAMILY_VAROOM +SINGLE_ANIMATION(Varoom); +SINGLE_ANIMATION(Revavroom); +#endif //P_FAMILY_VAROOM +#if P_FAMILY_CYCLIZAR +SINGLE_ANIMATION(Cyclizar); +#endif //P_FAMILY_CYCLIZAR +#if P_FAMILY_ORTHWORM +SINGLE_ANIMATION(Orthworm); +#endif //P_FAMILY_ORTHWORM +#if P_FAMILY_GLIMMET +SINGLE_ANIMATION(Glimmet); +SINGLE_ANIMATION(Glimmora); +#endif //P_FAMILY_GLIMMET +#if P_FAMILY_GREAVARD +SINGLE_ANIMATION(Greavard); +SINGLE_ANIMATION(Houndstone); +#endif //P_FAMILY_GREAVARD +#if P_FAMILY_FLAMIGO +SINGLE_ANIMATION(Flamigo); +#endif //P_FAMILY_FLAMIGO +#if P_FAMILY_CETODDLE +SINGLE_ANIMATION(Cetoddle); +SINGLE_ANIMATION(Cetitan); +#endif //P_FAMILY_CETODDLE +#if P_FAMILY_VELUZA +SINGLE_ANIMATION(Veluza); +#endif //P_FAMILY_VELUZA +#if P_FAMILY_DONDOZO +SINGLE_ANIMATION(Dondozo); +#endif //P_FAMILY_DONDOZO +#if P_FAMILY_TATSUGIRI +SINGLE_ANIMATION(Tatsugiri); +#endif //P_FAMILY_TATSUGIRI +#if P_FAMILY_GREAT_TUSK +SINGLE_ANIMATION(GreatTusk); +#endif //P_FAMILY_GREAT_TUSK +#if P_FAMILY_SCREAM_TAIL +SINGLE_ANIMATION(ScreamTail); +#endif //P_FAMILY_SCREAM_TAIL +#if P_FAMILY_BRUTE_BONNET +SINGLE_ANIMATION(BruteBonnet); +#endif //P_FAMILY_BRUTE_BONNET +#if P_FAMILY_FLUTTER_MANE +SINGLE_ANIMATION(FlutterMane); +#endif //P_FAMILY_FLUTTER_MANE +#if P_FAMILY_SLITHER_WING +SINGLE_ANIMATION(SlitherWing); +#endif //P_FAMILY_SLITHER_WING +#if P_FAMILY_SANDY_SHOCKS +SINGLE_ANIMATION(SandyShocks); +#endif //P_FAMILY_SANDY_SHOCKS +#if P_FAMILY_IRON_TREADS +SINGLE_ANIMATION(IronTreads); +#endif //P_FAMILY_IRON_TREADS +#if P_FAMILY_IRON_BUNDLE +SINGLE_ANIMATION(IronBundle); +#endif //P_FAMILY_IRON_BUNDLE +#if P_FAMILY_IRON_HANDS +SINGLE_ANIMATION(IronHands); +#endif //P_FAMILY_IRON_HANDS +#if P_FAMILY_IRON_JUGULIS +SINGLE_ANIMATION(IronJugulis); +#endif //P_FAMILY_IRON_JUGULIS +#if P_FAMILY_IRON_MOTH +SINGLE_ANIMATION(IronMoth); +#endif //P_FAMILY_IRON_MOTH +#if P_FAMILY_IRON_THORNS +SINGLE_ANIMATION(IronThorns); +#endif //P_FAMILY_IRON_THORNS +#if P_FAMILY_FRIGIBAX +SINGLE_ANIMATION(Frigibax); +SINGLE_ANIMATION(Arctibax); +SINGLE_ANIMATION(Baxcalibur); +#endif //P_FAMILY_FRIGIBAX +#if P_FAMILY_GIMMIGHOUL +SINGLE_ANIMATION(Gimmighoul); +SINGLE_ANIMATION(Gholdengo); +#endif //P_FAMILY_GIMMIGHOUL +#if P_FAMILY_WO_CHIEN +SINGLE_ANIMATION(WoChien); +#endif //P_FAMILY_WO_CHIEN +#if P_FAMILY_CHIEN_PAO +SINGLE_ANIMATION(ChienPao); +#endif //P_FAMILY_CHIEN_PAO +#if P_FAMILY_TING_LU +SINGLE_ANIMATION(TingLu); +#endif //P_FAMILY_TING_LU +#if P_FAMILY_CHI_YU +SINGLE_ANIMATION(ChiYu); +#endif //P_FAMILY_CHI_YU +#if P_FAMILY_ROARING_MOON +SINGLE_ANIMATION(RoaringMoon); +#endif //P_FAMILY_ROARING_MOON +#if P_FAMILY_IRON_VALIANT +SINGLE_ANIMATION(IronValiant); +#endif //P_FAMILY_IRON_VALIANT +#if P_FAMILY_KORAIDON +SINGLE_ANIMATION(Koraidon); +#endif //P_FAMILY_KORAIDON +#if P_FAMILY_MIRAIDON +SINGLE_ANIMATION(Miraidon); +#endif //P_FAMILY_MIRAIDON +#if P_FAMILY_WALKING_WAKE +SINGLE_ANIMATION(WalkingWake); +#endif //P_FAMILY_WALKING_WAKE +#if P_FAMILY_IRON_LEAVES +SINGLE_ANIMATION(IronLeaves); +#endif //P_FAMILY_IRON_LEAVES +#if P_FAMILY_POLTCHAGEIST +SINGLE_ANIMATION(Poltchageist); +SINGLE_ANIMATION(Sinistcha); +#endif //P_FAMILY_POLTCHAGEIST +#if P_FAMILY_OKIDOGI +SINGLE_ANIMATION(Okidogi); +#endif //P_FAMILY_OKIDOGI +#if P_FAMILY_MUNKIDORI +SINGLE_ANIMATION(Munkidori); +#endif //P_FAMILY_MUNKIDORI +#if P_FAMILY_FEZANDIPITI +SINGLE_ANIMATION(Fezandipiti); +#endif //P_FAMILY_FEZANDIPITI +#if P_FAMILY_OGERPON +SINGLE_ANIMATION(Ogerpon); +#endif //P_FAMILY_OGERPON +SINGLE_ANIMATION(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 2527bc58e4..0000000000 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ /dev/null @@ -1,1573 +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_TAUROS_PALDEAN_COMBAT_BREED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = { .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_WOOPER_PALDEAN] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 12 }, - [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(31, 37), .y_offset = 12 }, - [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(34, 47), .y_offset = 8 }, - [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(45, 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(29, 40), .y_offset = 10 }, - [SPECIES_TRUMBEAK] = { .size = MON_COORDS_SIZE(44, 53), .y_offset = 4 }, - [SPECIES_TOUCANNON] = { .size = MON_COORDS_SIZE(59, 59), .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(33, 35), .y_offset = 16 }, - [SPECIES_RIBOMBEE] = { .size = MON_COORDS_SIZE(32, 47), .y_offset = 5 }, - [SPECIES_ROCKRUFF] = { .size = MON_COORDS_SIZE(37, 39), .y_offset = 11 }, - [SPECIES_LYCANROC_MIDDAY] = { .size = MON_COORDS_SIZE(57, 53), .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(57, 60), .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 = 5 }, - [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(36, 43), .y_offset = 5 }, - [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(53, 61), .y_offset = 1 }, - [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(63, 63), .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_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 }, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = { .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 -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_FLORAGATO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MEOWSCARADA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FUECOCO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_CROCALOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_SKELEDIRGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_QUAXLY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_QUAXWELL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_QUAQUAVAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LECHONK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_OINKOLOGNE_MALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_OINKOLOGNE_FEMALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_TAROUNTULA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_SPIDOPS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_NYMBLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_LOKIX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PAWMI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_PAWMO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_PAWMOT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TANDEMAUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_FIDOUGH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_DACHSBUN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_SMOLIV] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_DOLLIV] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ARBOLIVA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_NACLI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_NACLSTACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_GARGANACL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CHARCADET] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ARMAROUGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CERULEDGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TADBULB] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BELLIBOLT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_WATTREL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_KILOWATTREL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_MASCHIFF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_MABOSSTIFF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SHROODLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 15 }, - [SPECIES_GRAFAIAI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_BRAMBLIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_BRAMBLEGHAST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_TOEDSCOOL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TOEDSCRUEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KLAWF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_CAPSAKID] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_SCOVILLAIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_RELLOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_RABSCA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLITTLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_ESPATHRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TINKATINK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TINKATUFF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TINKATON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WIGLETT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 17 }, - [SPECIES_WUGTRIO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BOMBIRDIER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FINIZEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_PALAFIN_ZERO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_PALAFIN_HERO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_VAROOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_REVAVROOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_CYCLIZAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ORTHWORM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GLIMMET] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GLIMMORA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GREAVARD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_HOUNDSTONE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLAMIGO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CETODDLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_CETITAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_VELUZA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DONDOZO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TATSUGIRI_CURLY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_TATSUGIRI_DROOPY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_TATSUGIRI_STRETCHY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_ANNIHILAPE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CLODSIRE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_FARIGIRAF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_KINGAMBIT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GREAT_TUSK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_SCREAM_TAIL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_BRUTE_BONNET] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_FLUTTER_MANE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SLITHER_WING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SANDY_SHOCKS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_IRON_TREADS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_IRON_BUNDLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_IRON_HANDS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_IRON_JUGULIS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_IRON_MOTH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_IRON_THORNS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FRIGIBAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_ARCTIBAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_BAXCALIBUR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GIMMIGHOUL_CHEST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GIMMIGHOUL_ROAMING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_GHOLDENGO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WO_CHIEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CHIEN_PAO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TING_LU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CHI_YU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ROARING_MOON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_IRON_VALIANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KORAIDON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MIRAIDON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WALKING_WAKE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_IRON_LEAVES] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DIPPLIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_POLTCHAGEIST_ARTISAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SINISTCHA_UNREMARKABLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SINISTCHA_MASTERPIECE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OKIDOGI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MUNKIDORI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FEZANDIPITI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_TEAL_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_WELLSPRING_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_HEARTHFLAME_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_CORNERSTONE_MASK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_TEAL_MASK_TERA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = { .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, 61), .y_offset = 0 }, - [SPECIES_LYCANROC_DUSK] = { .size = MON_COORDS_SIZE(57, 58), .y_offset = 6 }, - // 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 - // 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 e865738970..0000000000 --- a/src/data/pokemon_graphics/front_pic_table.h +++ /dev/null @@ -1,1668 +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(TAUROS_PALDEAN_COMBAT_BREED, gMonFrontPic_TaurosPaldeanCombatBreed), - SPECIES_SPRITE(TAUROS_PALDEAN_BLAZE_BREED, gMonFrontPic_TaurosPaldeanBlazeBreed), - SPECIES_SPRITE(TAUROS_PALDEAN_AQUA_BREED, gMonFrontPic_TaurosPaldeanAquaBreed), - 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(WOOPER_PALDEAN, gMonFrontPic_WooperPaldean), - 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_STRAWBERRY_VANILLA_CREAM, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonFrontPic_AlcremieStrawberry), - SPECIES_SPRITE(ALCREMIE_BERRY_VANILLA_CREAM, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_CREAM, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_MATCHA_CREAM, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_MINT_CREAM, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_LEMON_CREAM, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_SALTED_CREAM, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_RUBY_SWIRL, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonFrontPic_AlcremieBerry), - SPECIES_SPRITE(ALCREMIE_LOVE_VANILLA_CREAM, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_CREAM, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_MATCHA_CREAM, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_MINT_CREAM, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_LEMON_CREAM, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_SALTED_CREAM, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_RUBY_SWIRL, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonFrontPic_AlcremieLove), - SPECIES_SPRITE(ALCREMIE_STAR_VANILLA_CREAM, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_RUBY_CREAM, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_MATCHA_CREAM, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_MINT_CREAM, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_LEMON_CREAM, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_SALTED_CREAM, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_RUBY_SWIRL, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_CARAMEL_SWIRL, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_STAR_RAINBOW_SWIRL, gMonFrontPic_AlcremieStar), - SPECIES_SPRITE(ALCREMIE_CLOVER_VANILLA_CREAM, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_CREAM, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_MATCHA_CREAM, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_MINT_CREAM, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_LEMON_CREAM, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_SALTED_CREAM, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_RUBY_SWIRL, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonFrontPic_AlcremieClover), - SPECIES_SPRITE(ALCREMIE_FLOWER_VANILLA_CREAM, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_CREAM, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_MATCHA_CREAM, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_MINT_CREAM, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_LEMON_CREAM, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_SALTED_CREAM, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_RUBY_SWIRL, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonFrontPic_AlcremieFlower), - SPECIES_SPRITE(ALCREMIE_RIBBON_VANILLA_CREAM, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_CREAM, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_MATCHA_CREAM, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_MINT_CREAM, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_LEMON_CREAM, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_SALTED_CREAM, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_RUBY_SWIRL, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonFrontPic_AlcremieRibbon), - SPECIES_SPRITE(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonFrontPic_AlcremieRibbon), - 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(URSALUNA_BLOODMOON, gMonFrontPic_UrsalunaBloodmoon), - 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(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 -#if P_GEN_9_POKEMON == TRUE - SPECIES_SPRITE(SPRIGATITO, gMonFrontPic_Sprigatito), - SPECIES_SPRITE(FLORAGATO, gMonFrontPic_Floragato), - SPECIES_SPRITE(MEOWSCARADA, gMonFrontPic_Meowscarada), - SPECIES_SPRITE(FUECOCO, gMonFrontPic_Fuecoco), - SPECIES_SPRITE(CROCALOR, gMonFrontPic_Crocalor), - SPECIES_SPRITE(SKELEDIRGE, gMonFrontPic_Skeledirge), - SPECIES_SPRITE(QUAXLY, gMonFrontPic_Quaxly), - SPECIES_SPRITE(QUAXWELL, gMonFrontPic_Quaxwell), - SPECIES_SPRITE(QUAQUAVAL, gMonFrontPic_Quaquaval), - SPECIES_SPRITE(LECHONK, gMonFrontPic_Lechonk), - SPECIES_SPRITE(OINKOLOGNE_MALE, gMonFrontPic_OinkologneMale), - SPECIES_SPRITE(OINKOLOGNE_FEMALE, gMonFrontPic_OinkologneFemale), - SPECIES_SPRITE(TAROUNTULA, gMonFrontPic_Tarountula), - SPECIES_SPRITE(SPIDOPS, gMonFrontPic_Spidops), - SPECIES_SPRITE(NYMBLE, gMonFrontPic_Nymble), - SPECIES_SPRITE(LOKIX, gMonFrontPic_Lokix), - SPECIES_SPRITE(PAWMI, gMonFrontPic_Pawmi), - SPECIES_SPRITE(PAWMO, gMonFrontPic_Pawmo), - SPECIES_SPRITE(PAWMOT, gMonFrontPic_Pawmot), - SPECIES_SPRITE(TANDEMAUS, gMonFrontPic_Tandemaus), - SPECIES_SPRITE(MAUSHOLD_FAMILY_OF_THREE, gMonFrontPic_MausholdFamilyOfThree), - SPECIES_SPRITE(MAUSHOLD_FAMILY_OF_FOUR, gMonFrontPic_MausholdFamilyOfFour), - SPECIES_SPRITE(FIDOUGH, gMonFrontPic_Fidough), - SPECIES_SPRITE(DACHSBUN, gMonFrontPic_Dachsbun), - SPECIES_SPRITE(SMOLIV, gMonFrontPic_Smoliv), - SPECIES_SPRITE(DOLLIV, gMonFrontPic_Dolliv), - SPECIES_SPRITE(ARBOLIVA, gMonFrontPic_Arboliva), - SPECIES_SPRITE(SQUAWKABILLY_GREEN_PLUMAGE, gMonFrontPic_Squawkabilly), - SPECIES_SPRITE(SQUAWKABILLY_BLUE_PLUMAGE, gMonFrontPic_Squawkabilly), - SPECIES_SPRITE(SQUAWKABILLY_YELLOW_PLUMAGE, gMonFrontPic_Squawkabilly), - SPECIES_SPRITE(SQUAWKABILLY_WHITE_PLUMAGE, gMonFrontPic_Squawkabilly), - SPECIES_SPRITE(NACLI, gMonFrontPic_Nacli), - SPECIES_SPRITE(NACLSTACK, gMonFrontPic_Naclstack), - SPECIES_SPRITE(GARGANACL, gMonFrontPic_Garganacl), - SPECIES_SPRITE(CHARCADET, gMonFrontPic_Charcadet), - SPECIES_SPRITE(ARMAROUGE, gMonFrontPic_Armarouge), - SPECIES_SPRITE(CERULEDGE, gMonFrontPic_Ceruledge), - SPECIES_SPRITE(TADBULB, gMonFrontPic_Tadbulb), - SPECIES_SPRITE(BELLIBOLT, gMonFrontPic_Bellibolt), - SPECIES_SPRITE(WATTREL, gMonFrontPic_Wattrel), - SPECIES_SPRITE(KILOWATTREL, gMonFrontPic_Kilowattrel), - SPECIES_SPRITE(MASCHIFF, gMonFrontPic_Maschiff), - SPECIES_SPRITE(MABOSSTIFF, gMonFrontPic_Mabosstiff), - SPECIES_SPRITE(SHROODLE, gMonFrontPic_Shroodle), - SPECIES_SPRITE(GRAFAIAI, gMonFrontPic_Grafaiai), - SPECIES_SPRITE(BRAMBLIN, gMonFrontPic_Bramblin), - SPECIES_SPRITE(BRAMBLEGHAST, gMonFrontPic_Brambleghast), - SPECIES_SPRITE(TOEDSCOOL, gMonFrontPic_Toedscool), - SPECIES_SPRITE(TOEDSCRUEL, gMonFrontPic_Toedscruel), - SPECIES_SPRITE(KLAWF, gMonFrontPic_Klawf), - SPECIES_SPRITE(CAPSAKID, gMonFrontPic_Capsakid), - SPECIES_SPRITE(SCOVILLAIN, gMonFrontPic_Scovillain), - SPECIES_SPRITE(RELLOR, gMonFrontPic_Rellor), - SPECIES_SPRITE(RABSCA, gMonFrontPic_Rabsca), - SPECIES_SPRITE(FLITTLE, gMonFrontPic_Flittle), - SPECIES_SPRITE(ESPATHRA, gMonFrontPic_Espathra), - SPECIES_SPRITE(TINKATINK, gMonFrontPic_Tinkatink), - SPECIES_SPRITE(TINKATUFF, gMonFrontPic_Tinkatuff), - SPECIES_SPRITE(TINKATON, gMonFrontPic_Tinkaton), - SPECIES_SPRITE(WIGLETT, gMonFrontPic_Wiglett), - SPECIES_SPRITE(WUGTRIO, gMonFrontPic_Wugtrio), - SPECIES_SPRITE(BOMBIRDIER, gMonFrontPic_Bombirdier), - SPECIES_SPRITE(FINIZEN, gMonFrontPic_Finizen), - SPECIES_SPRITE(PALAFIN_ZERO, gMonFrontPic_PalafinZero), - SPECIES_SPRITE(PALAFIN_HERO, gMonFrontPic_PalafinHero), - SPECIES_SPRITE(VAROOM, gMonFrontPic_Varoom), - SPECIES_SPRITE(REVAVROOM, gMonFrontPic_Revavroom), - SPECIES_SPRITE(CYCLIZAR, gMonFrontPic_Cyclizar), - SPECIES_SPRITE(ORTHWORM, gMonFrontPic_Orthworm), - SPECIES_SPRITE(GLIMMET, gMonFrontPic_Glimmet), - SPECIES_SPRITE(GLIMMORA, gMonFrontPic_Glimmora), - SPECIES_SPRITE(GREAVARD, gMonFrontPic_Greavard), - SPECIES_SPRITE(HOUNDSTONE, gMonFrontPic_Houndstone), - SPECIES_SPRITE(FLAMIGO, gMonFrontPic_Flamigo), - SPECIES_SPRITE(CETODDLE, gMonFrontPic_Cetoddle), - SPECIES_SPRITE(CETITAN, gMonFrontPic_Cetitan), - SPECIES_SPRITE(VELUZA, gMonFrontPic_Veluza), - SPECIES_SPRITE(DONDOZO, gMonFrontPic_Dondozo), - SPECIES_SPRITE(TATSUGIRI_CURLY, gMonFrontPic_TatsugiriCurly), - SPECIES_SPRITE(TATSUGIRI_DROOPY, gMonFrontPic_TatsugiriDroopy), - SPECIES_SPRITE(TATSUGIRI_STRETCHY, gMonFrontPic_TatsugiriStretchy), - SPECIES_SPRITE(ANNIHILAPE, gMonFrontPic_Annihilape), - SPECIES_SPRITE(CLODSIRE, gMonFrontPic_Clodsire), - SPECIES_SPRITE(FARIGIRAF, gMonFrontPic_Farigiraf), - SPECIES_SPRITE(DUDUNSPARCE_TWO_SEGMENT, gMonFrontPic_DudunsparceTwoSegment), - SPECIES_SPRITE(DUDUNSPARCE_THREE_SEGMENT, gMonFrontPic_DudunsparceThreeSegment), - SPECIES_SPRITE(KINGAMBIT, gMonFrontPic_Kingambit), - SPECIES_SPRITE(GREAT_TUSK, gMonFrontPic_GreatTusk), - SPECIES_SPRITE(SCREAM_TAIL, gMonFrontPic_ScreamTail), - SPECIES_SPRITE(BRUTE_BONNET, gMonFrontPic_BruteBonnet), - SPECIES_SPRITE(FLUTTER_MANE, gMonFrontPic_FlutterMane), - SPECIES_SPRITE(SLITHER_WING, gMonFrontPic_SlitherWing), - SPECIES_SPRITE(SANDY_SHOCKS, gMonFrontPic_SandyShocks), - SPECIES_SPRITE(IRON_TREADS, gMonFrontPic_IronTreads), - SPECIES_SPRITE(IRON_BUNDLE, gMonFrontPic_IronBundle), - SPECIES_SPRITE(IRON_HANDS, gMonFrontPic_IronHands), - SPECIES_SPRITE(IRON_JUGULIS, gMonFrontPic_IronJugulis), - SPECIES_SPRITE(IRON_MOTH, gMonFrontPic_IronMoth), - SPECIES_SPRITE(IRON_THORNS, gMonFrontPic_IronThorns), - SPECIES_SPRITE(FRIGIBAX, gMonFrontPic_Frigibax), - SPECIES_SPRITE(ARCTIBAX, gMonFrontPic_Arctibax), - SPECIES_SPRITE(BAXCALIBUR, gMonFrontPic_Baxcalibur), - SPECIES_SPRITE(GIMMIGHOUL_CHEST, gMonFrontPic_GimmighoulChest), - SPECIES_SPRITE(GIMMIGHOUL_ROAMING, gMonFrontPic_GimmighoulRoaming), - SPECIES_SPRITE(GHOLDENGO, gMonFrontPic_Gholdengo), - SPECIES_SPRITE(WO_CHIEN, gMonFrontPic_WoChien), - SPECIES_SPRITE(CHIEN_PAO, gMonFrontPic_ChienPao), - SPECIES_SPRITE(TING_LU, gMonFrontPic_TingLu), - SPECIES_SPRITE(CHI_YU, gMonFrontPic_ChiYu), - SPECIES_SPRITE(ROARING_MOON, gMonFrontPic_RoaringMoon), - SPECIES_SPRITE(IRON_VALIANT, gMonFrontPic_IronValiant), - SPECIES_SPRITE(KORAIDON, gMonFrontPic_Koraidon), - SPECIES_SPRITE(MIRAIDON, gMonFrontPic_Miraidon), - SPECIES_SPRITE(WALKING_WAKE, gMonFrontPic_WalkingWake), - SPECIES_SPRITE(IRON_LEAVES, gMonFrontPic_IronLeaves), - SPECIES_SPRITE(DIPPLIN, gMonFrontPic_Dipplin), - SPECIES_SPRITE(POLTCHAGEIST_COUNTERFEIT, gMonFrontPic_Poltchageist), - SPECIES_SPRITE(POLTCHAGEIST_ARTISAN, gMonFrontPic_Poltchageist), - SPECIES_SPRITE(SINISTCHA_UNREMARKABLE, gMonFrontPic_Sinistcha), - SPECIES_SPRITE(SINISTCHA_MASTERPIECE, gMonFrontPic_Sinistcha), - SPECIES_SPRITE(OKIDOGI, gMonFrontPic_Okidogi), - SPECIES_SPRITE(MUNKIDORI, gMonFrontPic_Munkidori), - SPECIES_SPRITE(FEZANDIPITI, gMonFrontPic_Fezandipiti), - SPECIES_SPRITE(OGERPON_TEAL_MASK, gMonFrontPic_OgerponTealMask), - SPECIES_SPRITE(OGERPON_WELLSPRING_MASK, gMonFrontPic_OgerponWellspringMask), - SPECIES_SPRITE(OGERPON_HEARTHFLAME_MASK, gMonFrontPic_OgerponHearthflameMask), - SPECIES_SPRITE(OGERPON_CORNERSTONE_MASK, gMonFrontPic_OgerponCornerstoneMask), - // SPECIES_SPRITE(OGERPON_TEAL_MASK_TERA, gMonFrontPic_OgerponTealMaskTera), - // SPECIES_SPRITE(OGERPON_WELLSPRING_MASK_TERA, gMonFrontPic_OgerponWellspringMaskTera), - // SPECIES_SPRITE(OGERPON_HEARTHFLAME_MASK_TERA, gMonFrontPic_OgerponHearthflameMaskTera), - // SPECIES_SPRITE(OGERPON_CORNERSTONE_MASK_TERA, gMonFrontPic_OgerponCornerstoneMaskTera), -#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/palette_table.h b/src/data/pokemon_graphics/palette_table.h deleted file mode 100644 index 9de97d1579..0000000000 --- a/src/data/pokemon_graphics/palette_table.h +++ /dev/null @@ -1,1579 +0,0 @@ -const struct CompressedSpritePalette gMonPaletteTable[NUM_SPECIES + 1] = -{ - SPECIES_PAL(NONE, gMonPalette_CircledQuestionMark), - SPECIES_PAL(BULBASAUR, gMonPalette_Bulbasaur), - SPECIES_PAL(IVYSAUR, gMonPalette_Ivysaur), - SPECIES_PAL(VENUSAUR, gMonPalette_Venusaur), - SPECIES_PAL(CHARMANDER, gMonPalette_Charmander), - SPECIES_PAL(CHARMELEON, gMonPalette_Charmeleon), - SPECIES_PAL(CHARIZARD, gMonPalette_Charizard), - SPECIES_PAL(SQUIRTLE, gMonPalette_Squirtle), - SPECIES_PAL(WARTORTLE, gMonPalette_Wartortle), - SPECIES_PAL(BLASTOISE, gMonPalette_Blastoise), - SPECIES_PAL(CATERPIE, gMonPalette_Caterpie), - SPECIES_PAL(METAPOD, gMonPalette_Metapod), - SPECIES_PAL(BUTTERFREE, gMonPalette_Butterfree), - SPECIES_PAL(WEEDLE, gMonPalette_Weedle), - SPECIES_PAL(KAKUNA, gMonPalette_Kakuna), - SPECIES_PAL(BEEDRILL, gMonPalette_Beedrill), - SPECIES_PAL(PIDGEY, gMonPalette_Pidgey), - SPECIES_PAL(PIDGEOTTO, gMonPalette_Pidgeotto), - SPECIES_PAL(PIDGEOT, gMonPalette_Pidgeot), - SPECIES_PAL(RATTATA, gMonPalette_Rattata), - SPECIES_PAL(RATICATE, gMonPalette_Raticate), - SPECIES_PAL(SPEAROW, gMonPalette_Spearow), - SPECIES_PAL(FEAROW, gMonPalette_Fearow), - SPECIES_PAL(EKANS, gMonPalette_Ekans), - SPECIES_PAL(ARBOK, gMonPalette_Arbok), - SPECIES_PAL(PIKACHU, gMonPalette_Pikachu), - SPECIES_PAL(RAICHU, gMonPalette_Raichu), - SPECIES_PAL(SANDSHREW, gMonPalette_Sandshrew), - SPECIES_PAL(SANDSLASH, gMonPalette_Sandslash), - SPECIES_PAL(NIDORAN_F, gMonPalette_NidoranF), - SPECIES_PAL(NIDORINA, gMonPalette_Nidorina), - SPECIES_PAL(NIDOQUEEN, gMonPalette_Nidoqueen), - SPECIES_PAL(NIDORAN_M, gMonPalette_NidoranM), - SPECIES_PAL(NIDORINO, gMonPalette_Nidorino), - SPECIES_PAL(NIDOKING, gMonPalette_Nidoking), - SPECIES_PAL(CLEFAIRY, gMonPalette_Clefairy), - SPECIES_PAL(CLEFABLE, gMonPalette_Clefable), - SPECIES_PAL(VULPIX, gMonPalette_Vulpix), - SPECIES_PAL(NINETALES, gMonPalette_Ninetales), - SPECIES_PAL(JIGGLYPUFF, gMonPalette_Jigglypuff), - SPECIES_PAL(WIGGLYTUFF, gMonPalette_Wigglytuff), - SPECIES_PAL(ZUBAT, gMonPalette_Zubat), - SPECIES_PAL(GOLBAT, gMonPalette_Golbat), - SPECIES_PAL(ODDISH, gMonPalette_Oddish), - SPECIES_PAL(GLOOM, gMonPalette_Gloom), - SPECIES_PAL(VILEPLUME, gMonPalette_Vileplume), - SPECIES_PAL(PARAS, gMonPalette_Paras), - SPECIES_PAL(PARASECT, gMonPalette_Parasect), - SPECIES_PAL(VENONAT, gMonPalette_Venonat), - SPECIES_PAL(VENOMOTH, gMonPalette_Venomoth), - SPECIES_PAL(DIGLETT, gMonPalette_Diglett), - SPECIES_PAL(DUGTRIO, gMonPalette_Dugtrio), - SPECIES_PAL(MEOWTH, gMonPalette_Meowth), - SPECIES_PAL(PERSIAN, gMonPalette_Persian), - SPECIES_PAL(PSYDUCK, gMonPalette_Psyduck), - SPECIES_PAL(GOLDUCK, gMonPalette_Golduck), - SPECIES_PAL(MANKEY, gMonPalette_Mankey), - SPECIES_PAL(PRIMEAPE, gMonPalette_Primeape), - SPECIES_PAL(GROWLITHE, gMonPalette_Growlithe), - SPECIES_PAL(ARCANINE, gMonPalette_Arcanine), - SPECIES_PAL(POLIWAG, gMonPalette_Poliwag), - SPECIES_PAL(POLIWHIRL, gMonPalette_Poliwhirl), - SPECIES_PAL(POLIWRATH, gMonPalette_Poliwrath), - SPECIES_PAL(ABRA, gMonPalette_Abra), - SPECIES_PAL(KADABRA, gMonPalette_Kadabra), - SPECIES_PAL(ALAKAZAM, gMonPalette_Alakazam), - SPECIES_PAL(MACHOP, gMonPalette_Machop), - SPECIES_PAL(MACHOKE, gMonPalette_Machoke), - SPECIES_PAL(MACHAMP, gMonPalette_Machamp), - SPECIES_PAL(BELLSPROUT, gMonPalette_Bellsprout), - SPECIES_PAL(WEEPINBELL, gMonPalette_Weepinbell), - SPECIES_PAL(VICTREEBEL, gMonPalette_Victreebel), - SPECIES_PAL(TENTACOOL, gMonPalette_Tentacool), - SPECIES_PAL(TENTACRUEL, gMonPalette_Tentacruel), - SPECIES_PAL(GEODUDE, gMonPalette_Geodude), - SPECIES_PAL(GRAVELER, gMonPalette_Graveler), - SPECIES_PAL(GOLEM, gMonPalette_Golem), - SPECIES_PAL(PONYTA, gMonPalette_Ponyta), - SPECIES_PAL(RAPIDASH, gMonPalette_Rapidash), - SPECIES_PAL(SLOWPOKE, gMonPalette_Slowpoke), - SPECIES_PAL(SLOWBRO, gMonPalette_Slowbro), - SPECIES_PAL(MAGNEMITE, gMonPalette_Magnemite), - SPECIES_PAL(MAGNETON, gMonPalette_Magneton), - SPECIES_PAL(FARFETCHD, gMonPalette_Farfetchd), - SPECIES_PAL(DODUO, gMonPalette_Doduo), - SPECIES_PAL(DODRIO, gMonPalette_Dodrio), - SPECIES_PAL(SEEL, gMonPalette_Seel), - SPECIES_PAL(DEWGONG, gMonPalette_Dewgong), - SPECIES_PAL(GRIMER, gMonPalette_Grimer), - SPECIES_PAL(MUK, gMonPalette_Muk), - SPECIES_PAL(SHELLDER, gMonPalette_Shellder), - SPECIES_PAL(CLOYSTER, gMonPalette_Cloyster), - SPECIES_PAL(GASTLY, gMonPalette_Gastly), - SPECIES_PAL(HAUNTER, gMonPalette_Haunter), - SPECIES_PAL(GENGAR, gMonPalette_Gengar), - SPECIES_PAL(ONIX, gMonPalette_Onix), - SPECIES_PAL(DROWZEE, gMonPalette_Drowzee), - SPECIES_PAL(HYPNO, gMonPalette_Hypno), - SPECIES_PAL(KRABBY, gMonPalette_Krabby), - SPECIES_PAL(KINGLER, gMonPalette_Kingler), - SPECIES_PAL(VOLTORB, gMonPalette_Voltorb), - SPECIES_PAL(ELECTRODE, gMonPalette_Electrode), - SPECIES_PAL(EXEGGCUTE, gMonPalette_Exeggcute), - SPECIES_PAL(EXEGGUTOR, gMonPalette_Exeggutor), - SPECIES_PAL(CUBONE, gMonPalette_Cubone), - SPECIES_PAL(MAROWAK, gMonPalette_Marowak), - SPECIES_PAL(HITMONLEE, gMonPalette_Hitmonlee), - SPECIES_PAL(HITMONCHAN, gMonPalette_Hitmonchan), - SPECIES_PAL(LICKITUNG, gMonPalette_Lickitung), - SPECIES_PAL(KOFFING, gMonPalette_Koffing), - SPECIES_PAL(WEEZING, gMonPalette_Weezing), - SPECIES_PAL(RHYHORN, gMonPalette_Rhyhorn), - SPECIES_PAL(RHYDON, gMonPalette_Rhydon), - SPECIES_PAL(CHANSEY, gMonPalette_Chansey), - SPECIES_PAL(TANGELA, gMonPalette_Tangela), - SPECIES_PAL(KANGASKHAN, gMonPalette_Kangaskhan), - SPECIES_PAL(HORSEA, gMonPalette_Horsea), - SPECIES_PAL(SEADRA, gMonPalette_Seadra), - SPECIES_PAL(GOLDEEN, gMonPalette_Goldeen), - SPECIES_PAL(SEAKING, gMonPalette_Seaking), - SPECIES_PAL(STARYU, gMonPalette_Staryu), - SPECIES_PAL(STARMIE, gMonPalette_Starmie), - SPECIES_PAL(MR_MIME, gMonPalette_MrMime), - SPECIES_PAL(SCYTHER, gMonPalette_Scyther), - SPECIES_PAL(JYNX, gMonPalette_Jynx), - SPECIES_PAL(ELECTABUZZ, gMonPalette_Electabuzz), - SPECIES_PAL(MAGMAR, gMonPalette_Magmar), - SPECIES_PAL(PINSIR, gMonPalette_Pinsir), - SPECIES_PAL(TAUROS, gMonPalette_Tauros), - SPECIES_PAL(TAUROS_PALDEAN_COMBAT_BREED, gMonPalette_TaurosPaldeanCombatBreed), - SPECIES_PAL(TAUROS_PALDEAN_BLAZE_BREED, gMonPalette_TaurosPaldeanBlazeBreed), - SPECIES_PAL(TAUROS_PALDEAN_AQUA_BREED, gMonPalette_TaurosPaldeanAquaBreed), - SPECIES_PAL(MAGIKARP, gMonPalette_Magikarp), - SPECIES_PAL(GYARADOS, gMonPalette_Gyarados), - SPECIES_PAL(LAPRAS, gMonPalette_Lapras), - SPECIES_PAL(DITTO, gMonPalette_Ditto), - SPECIES_PAL(EEVEE, gMonPalette_Eevee), - SPECIES_PAL(VAPOREON, gMonPalette_Vaporeon), - SPECIES_PAL(JOLTEON, gMonPalette_Jolteon), - SPECIES_PAL(FLAREON, gMonPalette_Flareon), - SPECIES_PAL(PORYGON, gMonPalette_Porygon), - SPECIES_PAL(OMANYTE, gMonPalette_Omanyte), - SPECIES_PAL(OMASTAR, gMonPalette_Omastar), - SPECIES_PAL(KABUTO, gMonPalette_Kabuto), - SPECIES_PAL(KABUTOPS, gMonPalette_Kabutops), - SPECIES_PAL(AERODACTYL, gMonPalette_Aerodactyl), - SPECIES_PAL(SNORLAX, gMonPalette_Snorlax), - SPECIES_PAL(ARTICUNO, gMonPalette_Articuno), - SPECIES_PAL(ZAPDOS, gMonPalette_Zapdos), - SPECIES_PAL(MOLTRES, gMonPalette_Moltres), - SPECIES_PAL(DRATINI, gMonPalette_Dratini), - SPECIES_PAL(DRAGONAIR, gMonPalette_Dragonair), - SPECIES_PAL(DRAGONITE, gMonPalette_Dragonite), - SPECIES_PAL(MEWTWO, gMonPalette_Mewtwo), - SPECIES_PAL(MEW, gMonPalette_Mew), - SPECIES_PAL(CHIKORITA, gMonPalette_Chikorita), - SPECIES_PAL(BAYLEEF, gMonPalette_Bayleef), - SPECIES_PAL(MEGANIUM, gMonPalette_Meganium), - SPECIES_PAL(CYNDAQUIL, gMonPalette_Cyndaquil), - SPECIES_PAL(QUILAVA, gMonPalette_Quilava), - SPECIES_PAL(TYPHLOSION, gMonPalette_Typhlosion), - SPECIES_PAL(TOTODILE, gMonPalette_Totodile), - SPECIES_PAL(CROCONAW, gMonPalette_Croconaw), - SPECIES_PAL(FERALIGATR, gMonPalette_Feraligatr), - SPECIES_PAL(SENTRET, gMonPalette_Sentret), - SPECIES_PAL(FURRET, gMonPalette_Furret), - SPECIES_PAL(HOOTHOOT, gMonPalette_Hoothoot), - SPECIES_PAL(NOCTOWL, gMonPalette_Noctowl), - SPECIES_PAL(LEDYBA, gMonPalette_Ledyba), - SPECIES_PAL(LEDIAN, gMonPalette_Ledian), - SPECIES_PAL(SPINARAK, gMonPalette_Spinarak), - SPECIES_PAL(ARIADOS, gMonPalette_Ariados), - SPECIES_PAL(CROBAT, gMonPalette_Crobat), - SPECIES_PAL(CHINCHOU, gMonPalette_Chinchou), - SPECIES_PAL(LANTURN, gMonPalette_Lanturn), - SPECIES_PAL(PICHU, gMonPalette_Pichu), - SPECIES_PAL(CLEFFA, gMonPalette_Cleffa), - SPECIES_PAL(IGGLYBUFF, gMonPalette_Igglybuff), - SPECIES_PAL(TOGEPI, gMonPalette_Togepi), - SPECIES_PAL(TOGETIC, gMonPalette_Togetic), - SPECIES_PAL(NATU, gMonPalette_Natu), - SPECIES_PAL(XATU, gMonPalette_Xatu), - SPECIES_PAL(MAREEP, gMonPalette_Mareep), - SPECIES_PAL(FLAAFFY, gMonPalette_Flaaffy), - SPECIES_PAL(AMPHAROS, gMonPalette_Ampharos), - SPECIES_PAL(BELLOSSOM, gMonPalette_Bellossom), - SPECIES_PAL(MARILL, gMonPalette_Marill), - SPECIES_PAL(AZUMARILL, gMonPalette_Azumarill), - SPECIES_PAL(SUDOWOODO, gMonPalette_Sudowoodo), - SPECIES_PAL(POLITOED, gMonPalette_Politoed), - SPECIES_PAL(HOPPIP, gMonPalette_Hoppip), - SPECIES_PAL(SKIPLOOM, gMonPalette_Skiploom), - SPECIES_PAL(JUMPLUFF, gMonPalette_Jumpluff), - SPECIES_PAL(AIPOM, gMonPalette_Aipom), - SPECIES_PAL(SUNKERN, gMonPalette_Sunkern), - SPECIES_PAL(SUNFLORA, gMonPalette_Sunflora), - SPECIES_PAL(YANMA, gMonPalette_Yanma), - SPECIES_PAL(WOOPER, gMonPalette_Wooper), - SPECIES_PAL(WOOPER_PALDEAN, gMonPalette_WooperPaldean), - SPECIES_PAL(QUAGSIRE, gMonPalette_Quagsire), - SPECIES_PAL(ESPEON, gMonPalette_Espeon), - SPECIES_PAL(UMBREON, gMonPalette_Umbreon), - SPECIES_PAL(MURKROW, gMonPalette_Murkrow), - SPECIES_PAL(SLOWKING, gMonPalette_Slowking), - SPECIES_PAL(MISDREAVUS, gMonPalette_Misdreavus), - SPECIES_PAL(UNOWN, gMonPalette_Unown), - SPECIES_PAL(WOBBUFFET, gMonPalette_Wobbuffet), - SPECIES_PAL(GIRAFARIG, gMonPalette_Girafarig), - SPECIES_PAL(PINECO, gMonPalette_Pineco), - SPECIES_PAL(FORRETRESS, gMonPalette_Forretress), - SPECIES_PAL(DUNSPARCE, gMonPalette_Dunsparce), - SPECIES_PAL(GLIGAR, gMonPalette_Gligar), - SPECIES_PAL(STEELIX, gMonPalette_Steelix), - SPECIES_PAL(SNUBBULL, gMonPalette_Snubbull), - SPECIES_PAL(GRANBULL, gMonPalette_Granbull), - SPECIES_PAL(QWILFISH, gMonPalette_Qwilfish), - SPECIES_PAL(SCIZOR, gMonPalette_Scizor), - SPECIES_PAL(SHUCKLE, gMonPalette_Shuckle), - SPECIES_PAL(HERACROSS, gMonPalette_Heracross), - SPECIES_PAL(SNEASEL, gMonPalette_Sneasel), - SPECIES_PAL(TEDDIURSA, gMonPalette_Teddiursa), - SPECIES_PAL(URSARING, gMonPalette_Ursaring), - SPECIES_PAL(SLUGMA, gMonPalette_Slugma), - SPECIES_PAL(MAGCARGO, gMonPalette_Magcargo), - SPECIES_PAL(SWINUB, gMonPalette_Swinub), - SPECIES_PAL(PILOSWINE, gMonPalette_Piloswine), - SPECIES_PAL(CORSOLA, gMonPalette_Corsola), - SPECIES_PAL(REMORAID, gMonPalette_Remoraid), - SPECIES_PAL(OCTILLERY, gMonPalette_Octillery), - SPECIES_PAL(DELIBIRD, gMonPalette_Delibird), - SPECIES_PAL(MANTINE, gMonPalette_Mantine), - SPECIES_PAL(SKARMORY, gMonPalette_Skarmory), - SPECIES_PAL(HOUNDOUR, gMonPalette_Houndour), - SPECIES_PAL(HOUNDOOM, gMonPalette_Houndoom), - SPECIES_PAL(KINGDRA, gMonPalette_Kingdra), - SPECIES_PAL(PHANPY, gMonPalette_Phanpy), - SPECIES_PAL(DONPHAN, gMonPalette_Donphan), - SPECIES_PAL(PORYGON2, gMonPalette_Porygon2), - SPECIES_PAL(STANTLER, gMonPalette_Stantler), - SPECIES_PAL(SMEARGLE, gMonPalette_Smeargle), - SPECIES_PAL(TYROGUE, gMonPalette_Tyrogue), - SPECIES_PAL(HITMONTOP, gMonPalette_Hitmontop), - SPECIES_PAL(SMOOCHUM, gMonPalette_Smoochum), - SPECIES_PAL(ELEKID, gMonPalette_Elekid), - SPECIES_PAL(MAGBY, gMonPalette_Magby), - SPECIES_PAL(MILTANK, gMonPalette_Miltank), - SPECIES_PAL(BLISSEY, gMonPalette_Blissey), - SPECIES_PAL(RAIKOU, gMonPalette_Raikou), - SPECIES_PAL(ENTEI, gMonPalette_Entei), - SPECIES_PAL(SUICUNE, gMonPalette_Suicune), - SPECIES_PAL(LARVITAR, gMonPalette_Larvitar), - SPECIES_PAL(PUPITAR, gMonPalette_Pupitar), - SPECIES_PAL(TYRANITAR, gMonPalette_Tyranitar), - SPECIES_PAL(LUGIA, gMonPalette_Lugia), - SPECIES_PAL(HO_OH, gMonPalette_HoOh), - SPECIES_PAL(CELEBI, gMonPalette_Celebi), - SPECIES_PAL(TREECKO, gMonPalette_Treecko), - SPECIES_PAL(GROVYLE, gMonPalette_Grovyle), - SPECIES_PAL(SCEPTILE, gMonPalette_Sceptile), - SPECIES_PAL(TORCHIC, gMonPalette_Torchic), - SPECIES_PAL(COMBUSKEN, gMonPalette_Combusken), - SPECIES_PAL(BLAZIKEN, gMonPalette_Blaziken), - SPECIES_PAL(MUDKIP, gMonPalette_Mudkip), - SPECIES_PAL(MARSHTOMP, gMonPalette_Marshtomp), - SPECIES_PAL(SWAMPERT, gMonPalette_Swampert), - SPECIES_PAL(POOCHYENA, gMonPalette_Poochyena), - SPECIES_PAL(MIGHTYENA, gMonPalette_Mightyena), - SPECIES_PAL(ZIGZAGOON, gMonPalette_Zigzagoon), - SPECIES_PAL(LINOONE, gMonPalette_Linoone), - SPECIES_PAL(WURMPLE, gMonPalette_Wurmple), - SPECIES_PAL(SILCOON, gMonPalette_Silcoon), - SPECIES_PAL(BEAUTIFLY, gMonPalette_Beautifly), - SPECIES_PAL(CASCOON, gMonPalette_Cascoon), - SPECIES_PAL(DUSTOX, gMonPalette_Dustox), - SPECIES_PAL(LOTAD, gMonPalette_Lotad), - SPECIES_PAL(LOMBRE, gMonPalette_Lombre), - SPECIES_PAL(LUDICOLO, gMonPalette_Ludicolo), - SPECIES_PAL(SEEDOT, gMonPalette_Seedot), - SPECIES_PAL(NUZLEAF, gMonPalette_Nuzleaf), - SPECIES_PAL(SHIFTRY, gMonPalette_Shiftry), - SPECIES_PAL(NINCADA, gMonPalette_Nincada), - SPECIES_PAL(NINJASK, gMonPalette_Ninjask), - SPECIES_PAL(SHEDINJA, gMonPalette_Shedinja), - SPECIES_PAL(TAILLOW, gMonPalette_Taillow), - SPECIES_PAL(SWELLOW, gMonPalette_Swellow), - SPECIES_PAL(SHROOMISH, gMonPalette_Shroomish), - SPECIES_PAL(BRELOOM, gMonPalette_Breloom), - SPECIES_PAL(SPINDA, gMonPalette_Spinda), - SPECIES_PAL(WINGULL, gMonPalette_Wingull), - SPECIES_PAL(PELIPPER, gMonPalette_Pelipper), - SPECIES_PAL(SURSKIT, gMonPalette_Surskit), - SPECIES_PAL(MASQUERAIN, gMonPalette_Masquerain), - SPECIES_PAL(WAILMER, gMonPalette_Wailmer), - SPECIES_PAL(WAILORD, gMonPalette_Wailord), - SPECIES_PAL(SKITTY, gMonPalette_Skitty), - SPECIES_PAL(DELCATTY, gMonPalette_Delcatty), - SPECIES_PAL(KECLEON, gMonPalette_Kecleon), - SPECIES_PAL(BALTOY, gMonPalette_Baltoy), - SPECIES_PAL(CLAYDOL, gMonPalette_Claydol), - SPECIES_PAL(NOSEPASS, gMonPalette_Nosepass), - SPECIES_PAL(TORKOAL, gMonPalette_Torkoal), - SPECIES_PAL(SABLEYE, gMonPalette_Sableye), - SPECIES_PAL(BARBOACH, gMonPalette_Barboach), - SPECIES_PAL(WHISCASH, gMonPalette_Whiscash), - SPECIES_PAL(LUVDISC, gMonPalette_Luvdisc), - SPECIES_PAL(CORPHISH, gMonPalette_Corphish), - SPECIES_PAL(CRAWDAUNT, gMonPalette_Crawdaunt), - SPECIES_PAL(FEEBAS, gMonPalette_Feebas), - SPECIES_PAL(MILOTIC, gMonPalette_Milotic), - SPECIES_PAL(CARVANHA, gMonPalette_Carvanha), - SPECIES_PAL(SHARPEDO, gMonPalette_Sharpedo), - SPECIES_PAL(TRAPINCH, gMonPalette_Trapinch), - SPECIES_PAL(VIBRAVA, gMonPalette_Vibrava), - SPECIES_PAL(FLYGON, gMonPalette_Flygon), - SPECIES_PAL(MAKUHITA, gMonPalette_Makuhita), - SPECIES_PAL(HARIYAMA, gMonPalette_Hariyama), - SPECIES_PAL(ELECTRIKE, gMonPalette_Electrike), - SPECIES_PAL(MANECTRIC, gMonPalette_Manectric), - SPECIES_PAL(NUMEL, gMonPalette_Numel), - SPECIES_PAL(CAMERUPT, gMonPalette_Camerupt), - SPECIES_PAL(SPHEAL, gMonPalette_Spheal), - SPECIES_PAL(SEALEO, gMonPalette_Sealeo), - SPECIES_PAL(WALREIN, gMonPalette_Walrein), - SPECIES_PAL(CACNEA, gMonPalette_Cacnea), - SPECIES_PAL(CACTURNE, gMonPalette_Cacturne), - SPECIES_PAL(SNORUNT, gMonPalette_Snorunt), - SPECIES_PAL(GLALIE, gMonPalette_Glalie), - SPECIES_PAL(LUNATONE, gMonPalette_Lunatone), - SPECIES_PAL(SOLROCK, gMonPalette_Solrock), - SPECIES_PAL(AZURILL, gMonPalette_Azurill), - SPECIES_PAL(SPOINK, gMonPalette_Spoink), - SPECIES_PAL(GRUMPIG, gMonPalette_Grumpig), - SPECIES_PAL(PLUSLE, gMonPalette_Plusle), - SPECIES_PAL(MINUN, gMonPalette_Minun), - SPECIES_PAL(MAWILE, gMonPalette_Mawile), - SPECIES_PAL(MEDITITE, gMonPalette_Meditite), - SPECIES_PAL(MEDICHAM, gMonPalette_Medicham), - SPECIES_PAL(SWABLU, gMonPalette_Swablu), - SPECIES_PAL(ALTARIA, gMonPalette_Altaria), - SPECIES_PAL(WYNAUT, gMonPalette_Wynaut), - SPECIES_PAL(DUSKULL, gMonPalette_Duskull), - SPECIES_PAL(DUSCLOPS, gMonPalette_Dusclops), - SPECIES_PAL(ROSELIA, gMonPalette_Roselia), - SPECIES_PAL(SLAKOTH, gMonPalette_Slakoth), - SPECIES_PAL(VIGOROTH, gMonPalette_Vigoroth), - SPECIES_PAL(SLAKING, gMonPalette_Slaking), - SPECIES_PAL(GULPIN, gMonPalette_Gulpin), - SPECIES_PAL(SWALOT, gMonPalette_Swalot), - SPECIES_PAL(TROPIUS, gMonPalette_Tropius), - SPECIES_PAL(WHISMUR, gMonPalette_Whismur), - SPECIES_PAL(LOUDRED, gMonPalette_Loudred), - SPECIES_PAL(EXPLOUD, gMonPalette_Exploud), - SPECIES_PAL(CLAMPERL, gMonPalette_Clamperl), - SPECIES_PAL(HUNTAIL, gMonPalette_Huntail), - SPECIES_PAL(GOREBYSS, gMonPalette_Gorebyss), - SPECIES_PAL(ABSOL, gMonPalette_Absol), - SPECIES_PAL(SHUPPET, gMonPalette_Shuppet), - SPECIES_PAL(BANETTE, gMonPalette_Banette), - SPECIES_PAL(SEVIPER, gMonPalette_Seviper), - SPECIES_PAL(ZANGOOSE, gMonPalette_Zangoose), - SPECIES_PAL(RELICANTH, gMonPalette_Relicanth), - SPECIES_PAL(ARON, gMonPalette_Aron), - SPECIES_PAL(LAIRON, gMonPalette_Lairon), - SPECIES_PAL(AGGRON, gMonPalette_Aggron), - SPECIES_PAL(CASTFORM_NORMAL, gMonPalette_CastformNormal), - SPECIES_PAL(VOLBEAT, gMonPalette_Volbeat), - SPECIES_PAL(ILLUMISE, gMonPalette_Illumise), - SPECIES_PAL(LILEEP, gMonPalette_Lileep), - SPECIES_PAL(CRADILY, gMonPalette_Cradily), - SPECIES_PAL(ANORITH, gMonPalette_Anorith), - SPECIES_PAL(ARMALDO, gMonPalette_Armaldo), - SPECIES_PAL(RALTS, gMonPalette_Ralts), - SPECIES_PAL(KIRLIA, gMonPalette_Kirlia), - SPECIES_PAL(GARDEVOIR, gMonPalette_Gardevoir), - SPECIES_PAL(BAGON, gMonPalette_Bagon), - SPECIES_PAL(SHELGON, gMonPalette_Shelgon), - SPECIES_PAL(SALAMENCE, gMonPalette_Salamence), - SPECIES_PAL(BELDUM, gMonPalette_Beldum), - SPECIES_PAL(METANG, gMonPalette_Metang), - SPECIES_PAL(METAGROSS, gMonPalette_Metagross), - SPECIES_PAL(REGIROCK, gMonPalette_Regirock), - SPECIES_PAL(REGICE, gMonPalette_Regice), - SPECIES_PAL(REGISTEEL, gMonPalette_Registeel), - SPECIES_PAL(KYOGRE, gMonPalette_Kyogre), - SPECIES_PAL(GROUDON, gMonPalette_Groudon), - SPECIES_PAL(RAYQUAZA, gMonPalette_Rayquaza), - SPECIES_PAL(LATIAS, gMonPalette_Latias), - SPECIES_PAL(LATIOS, gMonPalette_Latios), - SPECIES_PAL(JIRACHI, gMonPalette_Jirachi), - SPECIES_PAL(DEOXYS_NORMAL, gMonPalette_DeoxysNormal), - SPECIES_PAL(CHIMECHO, gMonPalette_Chimecho), -#if P_GEN_4_POKEMON == TRUE - SPECIES_PAL(TURTWIG, gMonPalette_Turtwig), - SPECIES_PAL(GROTLE, gMonPalette_Grotle), - SPECIES_PAL(TORTERRA, gMonPalette_Torterra), - SPECIES_PAL(CHIMCHAR, gMonPalette_Chimchar), - SPECIES_PAL(MONFERNO, gMonPalette_Monferno), - SPECIES_PAL(INFERNAPE, gMonPalette_Infernape), - SPECIES_PAL(PIPLUP, gMonPalette_Piplup), - SPECIES_PAL(PRINPLUP, gMonPalette_Prinplup), - SPECIES_PAL(EMPOLEON, gMonPalette_Empoleon), - SPECIES_PAL(STARLY, gMonPalette_Starly), - SPECIES_PAL(STARAVIA, gMonPalette_Staravia), - SPECIES_PAL(STARAPTOR, gMonPalette_Staraptor), - SPECIES_PAL(BIDOOF, gMonPalette_Bidoof), - SPECIES_PAL(BIBAREL, gMonPalette_Bibarel), - SPECIES_PAL(KRICKETOT, gMonPalette_Kricketot), - SPECIES_PAL(KRICKETUNE, gMonPalette_Kricketune), - SPECIES_PAL(SHINX, gMonPalette_Shinx), - SPECIES_PAL(LUXIO, gMonPalette_Luxio), - SPECIES_PAL(LUXRAY, gMonPalette_Luxray), - SPECIES_PAL(BUDEW, gMonPalette_Budew), - SPECIES_PAL(ROSERADE, gMonPalette_Roserade), - SPECIES_PAL(CRANIDOS, gMonPalette_Cranidos), - SPECIES_PAL(RAMPARDOS, gMonPalette_Rampardos), - SPECIES_PAL(SHIELDON, gMonPalette_Shieldon), - SPECIES_PAL(BASTIODON, gMonPalette_Bastiodon), - SPECIES_PAL(BURMY_PLANT_CLOAK, gMonPalette_BurmyPlantCloak), - SPECIES_PAL(WORMADAM_PLANT_CLOAK, gMonPalette_WormadamPlantCloak), - SPECIES_PAL(MOTHIM, gMonPalette_Mothim), - SPECIES_PAL(COMBEE, gMonPalette_Combee), - SPECIES_PAL(VESPIQUEN, gMonPalette_Vespiquen), - SPECIES_PAL(PACHIRISU, gMonPalette_Pachirisu), - SPECIES_PAL(BUIZEL, gMonPalette_Buizel), - SPECIES_PAL(FLOATZEL, gMonPalette_Floatzel), - SPECIES_PAL(CHERUBI, gMonPalette_Cherubi), - SPECIES_PAL(CHERRIM_OVERCAST, gMonPalette_CherrimOvercast), - SPECIES_PAL(SHELLOS_WEST_SEA, gMonPalette_ShellosWestSea), - SPECIES_PAL(GASTRODON_WEST_SEA, gMonPalette_GastrodonWestSea), - SPECIES_PAL(AMBIPOM, gMonPalette_Ambipom), - SPECIES_PAL(DRIFLOON, gMonPalette_Drifloon), - SPECIES_PAL(DRIFBLIM, gMonPalette_Drifblim), - SPECIES_PAL(BUNEARY, gMonPalette_Buneary), - SPECIES_PAL(LOPUNNY, gMonPalette_Lopunny), - SPECIES_PAL(MISMAGIUS, gMonPalette_Mismagius), - SPECIES_PAL(HONCHKROW, gMonPalette_Honchkrow), - SPECIES_PAL(GLAMEOW, gMonPalette_Glameow), - SPECIES_PAL(PURUGLY, gMonPalette_Purugly), - SPECIES_PAL(CHINGLING, gMonPalette_Chingling), - SPECIES_PAL(STUNKY, gMonPalette_Stunky), - SPECIES_PAL(SKUNTANK, gMonPalette_Skuntank), - SPECIES_PAL(BRONZOR, gMonPalette_Bronzor), - SPECIES_PAL(BRONZONG, gMonPalette_Bronzong), - SPECIES_PAL(BONSLY, gMonPalette_Bonsly), - SPECIES_PAL(MIME_JR, gMonPalette_MimeJr), - SPECIES_PAL(HAPPINY, gMonPalette_Happiny), - SPECIES_PAL(CHATOT, gMonPalette_Chatot), - SPECIES_PAL(SPIRITOMB, gMonPalette_Spiritomb), - SPECIES_PAL(GIBLE, gMonPalette_Gible), - SPECIES_PAL(GABITE, gMonPalette_Gabite), - SPECIES_PAL(GARCHOMP, gMonPalette_Garchomp), - SPECIES_PAL(MUNCHLAX, gMonPalette_Munchlax), - SPECIES_PAL(RIOLU, gMonPalette_Riolu), - SPECIES_PAL(LUCARIO, gMonPalette_Lucario), - SPECIES_PAL(HIPPOPOTAS, gMonPalette_Hippopotas), - SPECIES_PAL(HIPPOWDON, gMonPalette_Hippowdon), - SPECIES_PAL(SKORUPI, gMonPalette_Skorupi), - SPECIES_PAL(DRAPION, gMonPalette_Drapion), - SPECIES_PAL(CROAGUNK, gMonPalette_Croagunk), - SPECIES_PAL(TOXICROAK, gMonPalette_Toxicroak), - SPECIES_PAL(CARNIVINE, gMonPalette_Carnivine), - SPECIES_PAL(FINNEON, gMonPalette_Finneon), - SPECIES_PAL(LUMINEON, gMonPalette_Lumineon), - SPECIES_PAL(MANTYKE, gMonPalette_Mantyke), - SPECIES_PAL(SNOVER, gMonPalette_Snover), - SPECIES_PAL(ABOMASNOW, gMonPalette_Abomasnow), - SPECIES_PAL(WEAVILE, gMonPalette_Weavile), - SPECIES_PAL(MAGNEZONE, gMonPalette_Magnezone), - SPECIES_PAL(LICKILICKY, gMonPalette_Lickilicky), - SPECIES_PAL(RHYPERIOR, gMonPalette_Rhyperior), - SPECIES_PAL(TANGROWTH, gMonPalette_Tangrowth), - SPECIES_PAL(ELECTIVIRE, gMonPalette_Electivire), - SPECIES_PAL(MAGMORTAR, gMonPalette_Magmortar), - SPECIES_PAL(TOGEKISS, gMonPalette_Togekiss), - SPECIES_PAL(YANMEGA, gMonPalette_Yanmega), - SPECIES_PAL(LEAFEON, gMonPalette_Leafeon), - SPECIES_PAL(GLACEON, gMonPalette_Glaceon), - SPECIES_PAL(GLISCOR, gMonPalette_Gliscor), - SPECIES_PAL(MAMOSWINE, gMonPalette_Mamoswine), - SPECIES_PAL(PORYGON_Z, gMonPalette_PorygonZ), - SPECIES_PAL(GALLADE, gMonPalette_Gallade), - SPECIES_PAL(PROBOPASS, gMonPalette_Probopass), - SPECIES_PAL(DUSKNOIR, gMonPalette_Dusknoir), - SPECIES_PAL(FROSLASS, gMonPalette_Froslass), - SPECIES_PAL(ROTOM, gMonPalette_Rotom), - SPECIES_PAL(UXIE, gMonPalette_Uxie), - SPECIES_PAL(MESPRIT, gMonPalette_Mesprit), - SPECIES_PAL(AZELF, gMonPalette_Azelf), - SPECIES_PAL(DIALGA, gMonPalette_Dialga), - SPECIES_PAL(PALKIA, gMonPalette_Palkia), - SPECIES_PAL(HEATRAN, gMonPalette_Heatran), - SPECIES_PAL(REGIGIGAS, gMonPalette_Regigigas), - SPECIES_PAL(GIRATINA_ALTERED, gMonPalette_GiratinaAltered), - SPECIES_PAL(CRESSELIA, gMonPalette_Cresselia), - SPECIES_PAL(PHIONE, gMonPalette_Phione), - SPECIES_PAL(MANAPHY, gMonPalette_Manaphy), - SPECIES_PAL(DARKRAI, gMonPalette_Darkrai), - SPECIES_PAL(SHAYMIN_LAND, gMonPalette_ShayminLand), - SPECIES_PAL(ARCEUS, gMonPalette_Arceus), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_PAL(VICTINI, gMonPalette_Victini), - SPECIES_PAL(SNIVY, gMonPalette_Snivy), - SPECIES_PAL(SERVINE, gMonPalette_Servine), - SPECIES_PAL(SERPERIOR, gMonPalette_Serperior), - SPECIES_PAL(TEPIG, gMonPalette_Tepig), - SPECIES_PAL(PIGNITE, gMonPalette_Pignite), - SPECIES_PAL(EMBOAR, gMonPalette_Emboar), - SPECIES_PAL(OSHAWOTT, gMonPalette_Oshawott), - SPECIES_PAL(DEWOTT, gMonPalette_Dewott), - SPECIES_PAL(SAMUROTT, gMonPalette_Samurott), - SPECIES_PAL(PATRAT, gMonPalette_Patrat), - SPECIES_PAL(WATCHOG, gMonPalette_Watchog), - SPECIES_PAL(LILLIPUP, gMonPalette_Lillipup), - SPECIES_PAL(HERDIER, gMonPalette_Herdier), - SPECIES_PAL(STOUTLAND, gMonPalette_Stoutland), - SPECIES_PAL(PURRLOIN, gMonPalette_Purrloin), - SPECIES_PAL(LIEPARD, gMonPalette_Liepard), - SPECIES_PAL(PANSAGE, gMonPalette_Pansage), - SPECIES_PAL(SIMISAGE, gMonPalette_Simisage), - SPECIES_PAL(PANSEAR, gMonPalette_Pansear), - SPECIES_PAL(SIMISEAR, gMonPalette_Simisear), - SPECIES_PAL(PANPOUR, gMonPalette_Panpour), - SPECIES_PAL(SIMIPOUR, gMonPalette_Simipour), - SPECIES_PAL(MUNNA, gMonPalette_Munna), - SPECIES_PAL(MUSHARNA, gMonPalette_Musharna), - SPECIES_PAL(PIDOVE, gMonPalette_Pidove), - SPECIES_PAL(TRANQUILL, gMonPalette_Tranquill), - SPECIES_PAL(UNFEZANT, gMonPalette_Unfezant), - SPECIES_PAL(BLITZLE, gMonPalette_Blitzle), - SPECIES_PAL(ZEBSTRIKA, gMonPalette_Zebstrika), - SPECIES_PAL(ROGGENROLA, gMonPalette_Roggenrola), - SPECIES_PAL(BOLDORE, gMonPalette_Boldore), - SPECIES_PAL(GIGALITH, gMonPalette_Gigalith), - SPECIES_PAL(WOOBAT, gMonPalette_Woobat), - SPECIES_PAL(SWOOBAT, gMonPalette_Swoobat), - SPECIES_PAL(DRILBUR, gMonPalette_Drilbur), - SPECIES_PAL(EXCADRILL, gMonPalette_Excadrill), - SPECIES_PAL(AUDINO, gMonPalette_Audino), - SPECIES_PAL(TIMBURR, gMonPalette_Timburr), - SPECIES_PAL(GURDURR, gMonPalette_Gurdurr), - SPECIES_PAL(CONKELDURR, gMonPalette_Conkeldurr), - SPECIES_PAL(TYMPOLE, gMonPalette_Tympole), - SPECIES_PAL(PALPITOAD, gMonPalette_Palpitoad), - SPECIES_PAL(SEISMITOAD, gMonPalette_Seismitoad), - SPECIES_PAL(THROH, gMonPalette_Throh), - SPECIES_PAL(SAWK, gMonPalette_Sawk), - SPECIES_PAL(SEWADDLE, gMonPalette_Sewaddle), - SPECIES_PAL(SWADLOON, gMonPalette_Swadloon), - SPECIES_PAL(LEAVANNY, gMonPalette_Leavanny), - SPECIES_PAL(VENIPEDE, gMonPalette_Venipede), - SPECIES_PAL(WHIRLIPEDE, gMonPalette_Whirlipede), - SPECIES_PAL(SCOLIPEDE, gMonPalette_Scolipede), - SPECIES_PAL(COTTONEE, gMonPalette_Cottonee), - SPECIES_PAL(WHIMSICOTT, gMonPalette_Whimsicott), - SPECIES_PAL(PETILIL, gMonPalette_Petilil), - SPECIES_PAL(LILLIGANT, gMonPalette_Lilligant), - SPECIES_PAL(BASCULIN, gMonPalette_BasculinRedStriped), - SPECIES_PAL(SANDILE, gMonPalette_Sandile), - SPECIES_PAL(KROKOROK, gMonPalette_Krokorok), - SPECIES_PAL(KROOKODILE, gMonPalette_Krookodile), - SPECIES_PAL(DARUMAKA, gMonPalette_Darumaka), - SPECIES_PAL(DARMANITAN_STANDARD_MODE, gMonPalette_DarmanitanStandardMode), - SPECIES_PAL(MARACTUS, gMonPalette_Maractus), - SPECIES_PAL(DWEBBLE, gMonPalette_Dwebble), - SPECIES_PAL(CRUSTLE, gMonPalette_Crustle), - SPECIES_PAL(SCRAGGY, gMonPalette_Scraggy), - SPECIES_PAL(SCRAFTY, gMonPalette_Scrafty), - SPECIES_PAL(SIGILYPH, gMonPalette_Sigilyph), - SPECIES_PAL(YAMASK, gMonPalette_Yamask), - SPECIES_PAL(COFAGRIGUS, gMonPalette_Cofagrigus), - SPECIES_PAL(TIRTOUGA, gMonPalette_Tirtouga), - SPECIES_PAL(CARRACOSTA, gMonPalette_Carracosta), - SPECIES_PAL(ARCHEN, gMonPalette_Archen), - SPECIES_PAL(ARCHEOPS, gMonPalette_Archeops), - SPECIES_PAL(TRUBBISH, gMonPalette_Trubbish), - SPECIES_PAL(GARBODOR, gMonPalette_Garbodor), - SPECIES_PAL(ZORUA, gMonPalette_Zorua), - SPECIES_PAL(ZOROARK, gMonPalette_Zoroark), - SPECIES_PAL(MINCCINO, gMonPalette_Minccino), - SPECIES_PAL(CINCCINO, gMonPalette_Cinccino), - SPECIES_PAL(GOTHITA, gMonPalette_Gothita), - SPECIES_PAL(GOTHORITA, gMonPalette_Gothorita), - SPECIES_PAL(GOTHITELLE, gMonPalette_Gothitelle), - SPECIES_PAL(SOLOSIS, gMonPalette_Solosis), - SPECIES_PAL(DUOSION, gMonPalette_Duosion), - SPECIES_PAL(REUNICLUS, gMonPalette_Reuniclus), - SPECIES_PAL(DUCKLETT, gMonPalette_Ducklett), - SPECIES_PAL(SWANNA, gMonPalette_Swanna), - SPECIES_PAL(VANILLITE, gMonPalette_Vanillite), - SPECIES_PAL(VANILLISH, gMonPalette_Vanillish), - SPECIES_PAL(VANILLUXE, gMonPalette_Vanilluxe), - SPECIES_PAL(DEERLING_SPRING, gMonPalette_DeerlingSpring), - SPECIES_PAL(SAWSBUCK_SPRING, gMonPalette_SawsbuckSpring), - SPECIES_PAL(EMOLGA, gMonPalette_Emolga), - SPECIES_PAL(KARRABLAST, gMonPalette_Karrablast), - SPECIES_PAL(ESCAVALIER, gMonPalette_Escavalier), - SPECIES_PAL(FOONGUS, gMonPalette_Foongus), - SPECIES_PAL(AMOONGUSS, gMonPalette_Amoonguss), - SPECIES_PAL(FRILLISH, gMonPalette_Frillish), - SPECIES_PAL(JELLICENT, gMonPalette_Jellicent), - SPECIES_PAL(ALOMOMOLA, gMonPalette_Alomomola), - SPECIES_PAL(JOLTIK, gMonPalette_Joltik), - SPECIES_PAL(GALVANTULA, gMonPalette_Galvantula), - SPECIES_PAL(FERROSEED, gMonPalette_Ferroseed), - SPECIES_PAL(FERROTHORN, gMonPalette_Ferrothorn), - SPECIES_PAL(KLINK, gMonPalette_Klink), - SPECIES_PAL(KLANG, gMonPalette_Klang), - SPECIES_PAL(KLINKLANG, gMonPalette_Klinklang), - SPECIES_PAL(TYNAMO, gMonPalette_Tynamo), - SPECIES_PAL(EELEKTRIK, gMonPalette_Eelektrik), - SPECIES_PAL(EELEKTROSS, gMonPalette_Eelektross), - SPECIES_PAL(ELGYEM, gMonPalette_Elgyem), - SPECIES_PAL(BEHEEYEM, gMonPalette_Beheeyem), - SPECIES_PAL(LITWICK, gMonPalette_Litwick), - SPECIES_PAL(LAMPENT, gMonPalette_Lampent), - SPECIES_PAL(CHANDELURE, gMonPalette_Chandelure), - SPECIES_PAL(AXEW, gMonPalette_Axew), - SPECIES_PAL(FRAXURE, gMonPalette_Fraxure), - SPECIES_PAL(HAXORUS, gMonPalette_Haxorus), - SPECIES_PAL(CUBCHOO, gMonPalette_Cubchoo), - SPECIES_PAL(BEARTIC, gMonPalette_Beartic), - SPECIES_PAL(CRYOGONAL, gMonPalette_Cryogonal), - SPECIES_PAL(SHELMET, gMonPalette_Shelmet), - SPECIES_PAL(ACCELGOR, gMonPalette_Accelgor), - SPECIES_PAL(STUNFISK, gMonPalette_Stunfisk), - SPECIES_PAL(MIENFOO, gMonPalette_Mienfoo), - SPECIES_PAL(MIENSHAO, gMonPalette_Mienshao), - SPECIES_PAL(DRUDDIGON, gMonPalette_Druddigon), - SPECIES_PAL(GOLETT, gMonPalette_Golett), - SPECIES_PAL(GOLURK, gMonPalette_Golurk), - SPECIES_PAL(PAWNIARD, gMonPalette_Pawniard), - SPECIES_PAL(BISHARP, gMonPalette_Bisharp), - SPECIES_PAL(BOUFFALANT, gMonPalette_Bouffalant), - SPECIES_PAL(RUFFLET, gMonPalette_Rufflet), - SPECIES_PAL(BRAVIARY, gMonPalette_Braviary), - SPECIES_PAL(VULLABY, gMonPalette_Vullaby), - SPECIES_PAL(MANDIBUZZ, gMonPalette_Mandibuzz), - SPECIES_PAL(HEATMOR, gMonPalette_Heatmor), - SPECIES_PAL(DURANT, gMonPalette_Durant), - SPECIES_PAL(DEINO, gMonPalette_Deino), - SPECIES_PAL(ZWEILOUS, gMonPalette_Zweilous), - SPECIES_PAL(HYDREIGON, gMonPalette_Hydreigon), - SPECIES_PAL(LARVESTA, gMonPalette_Larvesta), - SPECIES_PAL(VOLCARONA, gMonPalette_Volcarona), - SPECIES_PAL(COBALION, gMonPalette_Cobalion), - SPECIES_PAL(TERRAKION, gMonPalette_Terrakion), - SPECIES_PAL(VIRIZION, gMonPalette_Virizion), - SPECIES_PAL(TORNADUS_INCARNATE, gMonPalette_TornadusIncarnate), - SPECIES_PAL(THUNDURUS_INCARNATE, gMonPalette_ThundurusIncarnate), - SPECIES_PAL(RESHIRAM, gMonPalette_Reshiram), - SPECIES_PAL(ZEKROM, gMonPalette_Zekrom), - SPECIES_PAL(LANDORUS_INCARNATE, gMonPalette_LandorusIncarnate), - SPECIES_PAL(KYUREM, gMonPalette_Kyurem), - SPECIES_PAL(KELDEO_ORDINARY, gMonPalette_KeldeoOrdinary), - SPECIES_PAL(MELOETTA, gMonPalette_MeloettaAria), - SPECIES_PAL(GENESECT, gMonPalette_Genesect), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_PAL(CHESPIN, gMonPalette_Chespin), - SPECIES_PAL(QUILLADIN, gMonPalette_Quilladin), - SPECIES_PAL(CHESNAUGHT, gMonPalette_Chesnaught), - SPECIES_PAL(FENNEKIN, gMonPalette_Fennekin), - SPECIES_PAL(BRAIXEN, gMonPalette_Braixen), - SPECIES_PAL(DELPHOX, gMonPalette_Delphox), - SPECIES_PAL(FROAKIE, gMonPalette_Froakie), - SPECIES_PAL(FROGADIER, gMonPalette_Frogadier), - SPECIES_PAL(GRENINJA, gMonPalette_Greninja), - SPECIES_PAL(BUNNELBY, gMonPalette_Bunnelby), - SPECIES_PAL(DIGGERSBY, gMonPalette_Diggersby), - SPECIES_PAL(FLETCHLING, gMonPalette_Fletchling), - SPECIES_PAL(FLETCHINDER, gMonPalette_Fletchinder), - SPECIES_PAL(TALONFLAME, gMonPalette_Talonflame), - SPECIES_PAL(SCATTERBUG, gMonPalette_Scatterbug), - SPECIES_PAL(SPEWPA, gMonPalette_Spewpa), - SPECIES_PAL(VIVILLON_ICY_SNOW, gMonPalette_VivillonIcySnow), - SPECIES_PAL(LITLEO, gMonPalette_Litleo), - SPECIES_PAL(PYROAR, gMonPalette_Pyroar), - SPECIES_PAL(FLABEBE_RED_FLOWER, gMonPalette_FlabebeRedFlower), - SPECIES_PAL(FLOETTE_RED_FLOWER, gMonPalette_FloetteRedFlower), - SPECIES_PAL(FLORGES_RED_FLOWER, gMonPalette_FlorgesRedFlower), - SPECIES_PAL(SKIDDO, gMonPalette_Skiddo), - SPECIES_PAL(GOGOAT, gMonPalette_Gogoat), - SPECIES_PAL(PANCHAM, gMonPalette_Pancham), - SPECIES_PAL(PANGORO, gMonPalette_Pangoro), - SPECIES_PAL(FURFROU_NATURAL, gMonPalette_FurfrouNatural), - SPECIES_PAL(ESPURR, gMonPalette_Espurr), - SPECIES_PAL(MEOWSTIC_MALE, gMonPalette_MeowsticMale), - SPECIES_PAL(HONEDGE, gMonPalette_Honedge), - SPECIES_PAL(DOUBLADE, gMonPalette_Doublade), - SPECIES_PAL(AEGISLASH_SHIELD, gMonPalette_AegislashShield), - SPECIES_PAL(SPRITZEE, gMonPalette_Spritzee), - SPECIES_PAL(AROMATISSE, gMonPalette_Aromatisse), - SPECIES_PAL(SWIRLIX, gMonPalette_Swirlix), - SPECIES_PAL(SLURPUFF, gMonPalette_Slurpuff), - SPECIES_PAL(INKAY, gMonPalette_Inkay), - SPECIES_PAL(MALAMAR, gMonPalette_Malamar), - SPECIES_PAL(BINACLE, gMonPalette_Binacle), - SPECIES_PAL(BARBARACLE, gMonPalette_Barbaracle), - SPECIES_PAL(SKRELP, gMonPalette_Skrelp), - SPECIES_PAL(DRAGALGE, gMonPalette_Dragalge), - SPECIES_PAL(CLAUNCHER, gMonPalette_Clauncher), - SPECIES_PAL(CLAWITZER, gMonPalette_Clawitzer), - SPECIES_PAL(HELIOPTILE, gMonPalette_Helioptile), - SPECIES_PAL(HELIOLISK, gMonPalette_Heliolisk), - SPECIES_PAL(TYRUNT, gMonPalette_Tyrunt), - SPECIES_PAL(TYRANTRUM, gMonPalette_Tyrantrum), - SPECIES_PAL(AMAURA, gMonPalette_Amaura), - SPECIES_PAL(AURORUS, gMonPalette_Aurorus), - SPECIES_PAL(SYLVEON, gMonPalette_Sylveon), - SPECIES_PAL(HAWLUCHA, gMonPalette_Hawlucha), - SPECIES_PAL(DEDENNE, gMonPalette_Dedenne), - SPECIES_PAL(CARBINK, gMonPalette_Carbink), - SPECIES_PAL(GOOMY, gMonPalette_Goomy), - SPECIES_PAL(SLIGGOO, gMonPalette_Sliggoo), - SPECIES_PAL(GOODRA, gMonPalette_Goodra), - SPECIES_PAL(KLEFKI, gMonPalette_Klefki), - SPECIES_PAL(PHANTUMP, gMonPalette_Phantump), - SPECIES_PAL(TREVENANT, gMonPalette_Trevenant), - SPECIES_PAL(PUMPKABOO_AVERAGE, gMonPalette_Pumpkaboo), - SPECIES_PAL(GOURGEIST_AVERAGE, gMonPalette_Gourgeist), - SPECIES_PAL(BERGMITE, gMonPalette_Bergmite), - SPECIES_PAL(AVALUGG, gMonPalette_Avalugg), - SPECIES_PAL(NOIBAT, gMonPalette_Noibat), - SPECIES_PAL(NOIVERN, gMonPalette_Noivern), - SPECIES_PAL(XERNEAS_NEUTRAL, gMonPalette_XerneasNeutral), - SPECIES_PAL(YVELTAL, gMonPalette_Yveltal), - SPECIES_PAL(ZYGARDE_50_AURA_BREAK, gMonPalette_Zygarde50), - SPECIES_PAL(DIANCIE, gMonPalette_Diancie), - SPECIES_PAL(HOOPA_CONFINED, gMonPalette_HoopaConfined), - SPECIES_PAL(VOLCANION, gMonPalette_Volcanion), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_PAL(ROWLET, gMonPalette_Rowlet), - SPECIES_PAL(DARTRIX, gMonPalette_Dartrix), - SPECIES_PAL(DECIDUEYE, gMonPalette_Decidueye), - SPECIES_PAL(LITTEN, gMonPalette_Litten), - SPECIES_PAL(TORRACAT, gMonPalette_Torracat), - SPECIES_PAL(INCINEROAR, gMonPalette_Incineroar), - SPECIES_PAL(POPPLIO, gMonPalette_Popplio), - SPECIES_PAL(BRIONNE, gMonPalette_Brionne), - SPECIES_PAL(PRIMARINA, gMonPalette_Primarina), - SPECIES_PAL(PIKIPEK, gMonPalette_Pikipek), - SPECIES_PAL(TRUMBEAK, gMonPalette_Trumbeak), - SPECIES_PAL(TOUCANNON, gMonPalette_Toucannon), - SPECIES_PAL(YUNGOOS, gMonPalette_Yungoos), - SPECIES_PAL(GUMSHOOS, gMonPalette_Gumshoos), - SPECIES_PAL(GRUBBIN, gMonPalette_Grubbin), - SPECIES_PAL(CHARJABUG, gMonPalette_Charjabug), - SPECIES_PAL(VIKAVOLT, gMonPalette_Vikavolt), - SPECIES_PAL(CRABRAWLER, gMonPalette_Crabrawler), - SPECIES_PAL(CRABOMINABLE, gMonPalette_Crabominable), - SPECIES_PAL(ORICORIO_BAILE, gMonPalette_OricorioBaile), - SPECIES_PAL(CUTIEFLY, gMonPalette_Cutiefly), - SPECIES_PAL(RIBOMBEE, gMonPalette_Ribombee), - SPECIES_PAL(ROCKRUFF, gMonPalette_Rockruff), - SPECIES_PAL(LYCANROC_MIDDAY, gMonPalette_LycanrocMidday), - SPECIES_PAL(WISHIWASHI_SOLO, gMonPalette_WishiwashiSolo), - SPECIES_PAL(MAREANIE, gMonPalette_Mareanie), - SPECIES_PAL(TOXAPEX, gMonPalette_Toxapex), - SPECIES_PAL(MUDBRAY, gMonPalette_Mudbray), - SPECIES_PAL(MUDSDALE, gMonPalette_Mudsdale), - SPECIES_PAL(DEWPIDER, gMonPalette_Dewpider), - SPECIES_PAL(ARAQUANID, gMonPalette_Araquanid), - SPECIES_PAL(FOMANTIS, gMonPalette_Fomantis), - SPECIES_PAL(LURANTIS, gMonPalette_Lurantis), - SPECIES_PAL(MORELULL, gMonPalette_Morelull), - SPECIES_PAL(SHIINOTIC, gMonPalette_Shiinotic), - SPECIES_PAL(SALANDIT, gMonPalette_Salandit), - SPECIES_PAL(SALAZZLE, gMonPalette_Salazzle), - SPECIES_PAL(STUFFUL, gMonPalette_Stufful), - SPECIES_PAL(BEWEAR, gMonPalette_Bewear), - SPECIES_PAL(BOUNSWEET, gMonPalette_Bounsweet), - SPECIES_PAL(STEENEE, gMonPalette_Steenee), - SPECIES_PAL(TSAREENA, gMonPalette_Tsareena), - SPECIES_PAL(COMFEY, gMonPalette_Comfey), - SPECIES_PAL(ORANGURU, gMonPalette_Oranguru), - SPECIES_PAL(PASSIMIAN, gMonPalette_Passimian), - SPECIES_PAL(WIMPOD, gMonPalette_Wimpod), - SPECIES_PAL(GOLISOPOD, gMonPalette_Golisopod), - SPECIES_PAL(SANDYGAST, gMonPalette_Sandygast), - SPECIES_PAL(PALOSSAND, gMonPalette_Palossand), - SPECIES_PAL(PYUKUMUKU, gMonPalette_Pyukumuku), - SPECIES_PAL(TYPE_NULL, gMonPalette_TypeNull), - SPECIES_PAL(SILVALLY_NORMAL, gMonPalette_SilvallyNormal), - SPECIES_PAL(MINIOR_METEOR_RED, gMonPalette_MiniorMeteor), - SPECIES_PAL(KOMALA, gMonPalette_Komala), - SPECIES_PAL(TURTONATOR, gMonPalette_Turtonator), - SPECIES_PAL(TOGEDEMARU, gMonPalette_Togedemaru), - SPECIES_PAL(MIMIKYU_DISGUISED, gMonPalette_MimikyuDisguised), - SPECIES_PAL(BRUXISH, gMonPalette_Bruxish), - SPECIES_PAL(DRAMPA, gMonPalette_Drampa), - SPECIES_PAL(DHELMISE, gMonPalette_Dhelmise), - SPECIES_PAL(JANGMO_O, gMonPalette_JangmoO), - SPECIES_PAL(HAKAMO_O, gMonPalette_HakamoO), - SPECIES_PAL(KOMMO_O, gMonPalette_KommoO), - SPECIES_PAL(TAPU_KOKO, gMonPalette_TapuKoko), - SPECIES_PAL(TAPU_LELE, gMonPalette_TapuLele), - SPECIES_PAL(TAPU_BULU, gMonPalette_TapuBulu), - SPECIES_PAL(TAPU_FINI, gMonPalette_TapuFini), - SPECIES_PAL(COSMOG, gMonPalette_Cosmog), - SPECIES_PAL(COSMOEM, gMonPalette_Cosmoem), - SPECIES_PAL(SOLGALEO, gMonPalette_Solgaleo), - SPECIES_PAL(LUNALA, gMonPalette_Lunala), - SPECIES_PAL(NIHILEGO, gMonPalette_Nihilego), - SPECIES_PAL(BUZZWOLE, gMonPalette_Buzzwole), - SPECIES_PAL(PHEROMOSA, gMonPalette_Pheromosa), - SPECIES_PAL(XURKITREE, gMonPalette_Xurkitree), - SPECIES_PAL(CELESTEELA, gMonPalette_Celesteela), - SPECIES_PAL(KARTANA, gMonPalette_Kartana), - SPECIES_PAL(GUZZLORD, gMonPalette_Guzzlord), - SPECIES_PAL(NECROZMA, gMonPalette_Necrozma), - SPECIES_PAL(MAGEARNA, gMonPalette_Magearna), - SPECIES_PAL(MARSHADOW, gMonPalette_Marshadow), - SPECIES_PAL(POIPOLE, gMonPalette_Poipole), - SPECIES_PAL(NAGANADEL, gMonPalette_Naganadel), - SPECIES_PAL(STAKATAKA, gMonPalette_Stakataka), - SPECIES_PAL(BLACEPHALON, gMonPalette_Blacephalon), - SPECIES_PAL(ZERAORA, gMonPalette_Zeraora), - SPECIES_PAL(MELTAN, gMonPalette_Meltan), - SPECIES_PAL(MELMETAL, gMonPalette_Melmetal), -#endif -#if P_GEN_8_POKEMON == TRUE - SPECIES_PAL(GROOKEY, gMonPalette_Grookey), - SPECIES_PAL(THWACKEY, gMonPalette_Thwackey), - SPECIES_PAL(RILLABOOM, gMonPalette_Rillaboom), - SPECIES_PAL(SCORBUNNY, gMonPalette_Scorbunny), - SPECIES_PAL(RABOOT, gMonPalette_Raboot), - SPECIES_PAL(CINDERACE, gMonPalette_Cinderace), - SPECIES_PAL(SOBBLE, gMonPalette_Sobble), - SPECIES_PAL(DRIZZILE, gMonPalette_Drizzile), - SPECIES_PAL(INTELEON, gMonPalette_Inteleon), - SPECIES_PAL(SKWOVET, gMonPalette_Skwovet), - SPECIES_PAL(GREEDENT, gMonPalette_Greedent), - SPECIES_PAL(ROOKIDEE, gMonPalette_Rookidee), - SPECIES_PAL(CORVISQUIRE, gMonPalette_Corvisquire), - SPECIES_PAL(CORVIKNIGHT, gMonPalette_Corviknight), - SPECIES_PAL(BLIPBUG, gMonPalette_Blipbug), - SPECIES_PAL(DOTTLER, gMonPalette_Dottler), - SPECIES_PAL(ORBEETLE, gMonPalette_Orbeetle), - SPECIES_PAL(NICKIT, gMonPalette_Nickit), - SPECIES_PAL(THIEVUL, gMonPalette_Thievul), - SPECIES_PAL(GOSSIFLEUR, gMonPalette_Gossifleur), - SPECIES_PAL(ELDEGOSS, gMonPalette_Eldegoss), - SPECIES_PAL(WOOLOO, gMonPalette_Wooloo), - SPECIES_PAL(DUBWOOL, gMonPalette_Dubwool), - SPECIES_PAL(CHEWTLE, gMonPalette_Chewtle), - SPECIES_PAL(DREDNAW, gMonPalette_Drednaw), - SPECIES_PAL(YAMPER, gMonPalette_Yamper), - SPECIES_PAL(BOLTUND, gMonPalette_Boltund), - SPECIES_PAL(ROLYCOLY, gMonPalette_Rolycoly), - SPECIES_PAL(CARKOL, gMonPalette_Carkol), - SPECIES_PAL(COALOSSAL, gMonPalette_Coalossal), - SPECIES_PAL(APPLIN, gMonPalette_Applin), - SPECIES_PAL(FLAPPLE, gMonPalette_Flapple), - SPECIES_PAL(APPLETUN, gMonPalette_Appletun), - SPECIES_PAL(SILICOBRA, gMonPalette_Silicobra), - SPECIES_PAL(SANDACONDA, gMonPalette_Sandaconda), - SPECIES_PAL(CRAMORANT, gMonPalette_Cramorant), - SPECIES_PAL(ARROKUDA, gMonPalette_Arrokuda), - SPECIES_PAL(BARRASKEWDA, gMonPalette_Barraskewda), - SPECIES_PAL(TOXEL, gMonPalette_Toxel), - SPECIES_PAL(TOXTRICITY_AMPED, gMonPalette_ToxtricityAmped), - SPECIES_PAL(SIZZLIPEDE, gMonPalette_Sizzlipede), - SPECIES_PAL(CENTISKORCH, gMonPalette_Centiskorch), - SPECIES_PAL(CLOBBOPUS, gMonPalette_Clobbopus), - SPECIES_PAL(GRAPPLOCT, gMonPalette_Grapploct), - SPECIES_PAL(SINISTEA_PHONY, gMonPalette_Sinistea), - SPECIES_PAL(POLTEAGEIST_PHONY, gMonPalette_Polteageist), - SPECIES_PAL(HATENNA, gMonPalette_Hatenna), - SPECIES_PAL(HATTREM, gMonPalette_Hattrem), - SPECIES_PAL(HATTERENE, gMonPalette_Hatterene), - SPECIES_PAL(IMPIDIMP, gMonPalette_Impidimp), - SPECIES_PAL(MORGREM, gMonPalette_Morgrem), - SPECIES_PAL(GRIMMSNARL, gMonPalette_Grimmsnarl), - SPECIES_PAL(OBSTAGOON, gMonPalette_Obstagoon), - SPECIES_PAL(PERRSERKER, gMonPalette_Perrserker), - SPECIES_PAL(CURSOLA, gMonPalette_Cursola), - SPECIES_PAL(SIRFETCHD, gMonPalette_Sirfetchd), - SPECIES_PAL(MR_RIME, gMonPalette_MrRime), - SPECIES_PAL(RUNERIGUS, gMonPalette_Runerigus), - SPECIES_PAL(MILCERY, gMonPalette_Milcery), - SPECIES_PAL(ALCREMIE_STRAWBERRY_VANILLA_CREAM, gMonPalette_AlcremieStrawberryVanillaCream), - SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonPalette_AlcremieStrawberryRubyCream), - SPECIES_PAL(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonPalette_AlcremieStrawberryMatchaCream), - SPECIES_PAL(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonPalette_AlcremieStrawberryMintCream), - SPECIES_PAL(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonPalette_AlcremieStrawberryLemonCream), - SPECIES_PAL(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonPalette_AlcremieStrawberrySaltedCream), - SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonPalette_AlcremieStrawberryRubySwirl), - SPECIES_PAL(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonPalette_AlcremieStrawberryCaramelSwirl), - SPECIES_PAL(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonPalette_AlcremieStrawberryRainbowSwirl), - SPECIES_PAL(ALCREMIE_BERRY_VANILLA_CREAM, gMonPalette_AlcremieBerryVanillaCream), - SPECIES_PAL(ALCREMIE_BERRY_RUBY_CREAM, gMonPalette_AlcremieBerryRubyCream), - SPECIES_PAL(ALCREMIE_BERRY_MATCHA_CREAM, gMonPalette_AlcremieBerryMatchaCream), - SPECIES_PAL(ALCREMIE_BERRY_MINT_CREAM, gMonPalette_AlcremieBerryMintCream), - SPECIES_PAL(ALCREMIE_BERRY_LEMON_CREAM, gMonPalette_AlcremieBerryLemonCream), - SPECIES_PAL(ALCREMIE_BERRY_SALTED_CREAM, gMonPalette_AlcremieBerrySaltedCream), - SPECIES_PAL(ALCREMIE_BERRY_RUBY_SWIRL, gMonPalette_AlcremieBerryRubySwirl), - SPECIES_PAL(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonPalette_AlcremieBerryCaramelSwirl), - SPECIES_PAL(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonPalette_AlcremieBerryRainbowSwirl), - SPECIES_PAL(ALCREMIE_LOVE_VANILLA_CREAM, gMonPalette_AlcremieLoveVanillaCream), - SPECIES_PAL(ALCREMIE_LOVE_RUBY_CREAM, gMonPalette_AlcremieLoveRubyCream), - SPECIES_PAL(ALCREMIE_LOVE_MATCHA_CREAM, gMonPalette_AlcremieLoveMatchaCream), - SPECIES_PAL(ALCREMIE_LOVE_MINT_CREAM, gMonPalette_AlcremieLoveMintCream), - SPECIES_PAL(ALCREMIE_LOVE_LEMON_CREAM, gMonPalette_AlcremieLoveLemonCream), - SPECIES_PAL(ALCREMIE_LOVE_SALTED_CREAM, gMonPalette_AlcremieLoveSaltedCream), - SPECIES_PAL(ALCREMIE_LOVE_RUBY_SWIRL, gMonPalette_AlcremieLoveRubySwirl), - SPECIES_PAL(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonPalette_AlcremieLoveCaramelSwirl), - SPECIES_PAL(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonPalette_AlcremieLoveRainbowSwirl), - SPECIES_PAL(ALCREMIE_STAR_VANILLA_CREAM, gMonPalette_AlcremieStarVanillaCream), - SPECIES_PAL(ALCREMIE_STAR_RUBY_CREAM, gMonPalette_AlcremieStarRubyCream), - SPECIES_PAL(ALCREMIE_STAR_MATCHA_CREAM, gMonPalette_AlcremieStarMatchaCream), - SPECIES_PAL(ALCREMIE_STAR_MINT_CREAM, gMonPalette_AlcremieStarMintCream), - SPECIES_PAL(ALCREMIE_STAR_LEMON_CREAM, gMonPalette_AlcremieStarLemonCream), - SPECIES_PAL(ALCREMIE_STAR_SALTED_CREAM, gMonPalette_AlcremieStarSaltedCream), - SPECIES_PAL(ALCREMIE_STAR_RUBY_SWIRL, gMonPalette_AlcremieStarRubySwirl), - SPECIES_PAL(ALCREMIE_STAR_CARAMEL_SWIRL, gMonPalette_AlcremieStarCaramelSwirl), - SPECIES_PAL(ALCREMIE_STAR_RAINBOW_SWIRL, gMonPalette_AlcremieStarRainbowSwirl), - SPECIES_PAL(ALCREMIE_CLOVER_VANILLA_CREAM, gMonPalette_AlcremieCloverVanillaCream), - SPECIES_PAL(ALCREMIE_CLOVER_RUBY_CREAM, gMonPalette_AlcremieCloverRubyCream), - SPECIES_PAL(ALCREMIE_CLOVER_MATCHA_CREAM, gMonPalette_AlcremieCloverMatchaCream), - SPECIES_PAL(ALCREMIE_CLOVER_MINT_CREAM, gMonPalette_AlcremieCloverMintCream), - SPECIES_PAL(ALCREMIE_CLOVER_LEMON_CREAM, gMonPalette_AlcremieCloverLemonCream), - SPECIES_PAL(ALCREMIE_CLOVER_SALTED_CREAM, gMonPalette_AlcremieCloverSaltedCream), - SPECIES_PAL(ALCREMIE_CLOVER_RUBY_SWIRL, gMonPalette_AlcremieCloverRubySwirl), - SPECIES_PAL(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonPalette_AlcremieCloverCaramelSwirl), - SPECIES_PAL(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonPalette_AlcremieCloverRainbowSwirl), - SPECIES_PAL(ALCREMIE_FLOWER_VANILLA_CREAM, gMonPalette_AlcremieFlowerVanillaCream), - SPECIES_PAL(ALCREMIE_FLOWER_RUBY_CREAM, gMonPalette_AlcremieFlowerRubyCream), - SPECIES_PAL(ALCREMIE_FLOWER_MATCHA_CREAM, gMonPalette_AlcremieFlowerMatchaCream), - SPECIES_PAL(ALCREMIE_FLOWER_MINT_CREAM, gMonPalette_AlcremieFlowerMintCream), - SPECIES_PAL(ALCREMIE_FLOWER_LEMON_CREAM, gMonPalette_AlcremieFlowerLemonCream), - SPECIES_PAL(ALCREMIE_FLOWER_SALTED_CREAM, gMonPalette_AlcremieFlowerSaltedCream), - SPECIES_PAL(ALCREMIE_FLOWER_RUBY_SWIRL, gMonPalette_AlcremieFlowerRubySwirl), - SPECIES_PAL(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonPalette_AlcremieFlowerCaramelSwirl), - SPECIES_PAL(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonPalette_AlcremieFlowerRainbowSwirl), - SPECIES_PAL(ALCREMIE_RIBBON_VANILLA_CREAM, gMonPalette_AlcremieRibbonVanillaCream), - SPECIES_PAL(ALCREMIE_RIBBON_RUBY_CREAM, gMonPalette_AlcremieRibbonRubyCream), - SPECIES_PAL(ALCREMIE_RIBBON_MATCHA_CREAM, gMonPalette_AlcremieRibbonMatchaCream), - SPECIES_PAL(ALCREMIE_RIBBON_MINT_CREAM, gMonPalette_AlcremieRibbonMintCream), - SPECIES_PAL(ALCREMIE_RIBBON_LEMON_CREAM, gMonPalette_AlcremieRibbonLemonCream), - SPECIES_PAL(ALCREMIE_RIBBON_SALTED_CREAM, gMonPalette_AlcremieRibbonSaltedCream), - SPECIES_PAL(ALCREMIE_RIBBON_RUBY_SWIRL, gMonPalette_AlcremieRibbonRubySwirl), - SPECIES_PAL(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonPalette_AlcremieRibbonCaramelSwirl), - SPECIES_PAL(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonPalette_AlcremieRibbonRainbowSwirl), - SPECIES_PAL(FALINKS, gMonPalette_Falinks), - SPECIES_PAL(PINCURCHIN, gMonPalette_Pincurchin), - SPECIES_PAL(SNOM, gMonPalette_Snom), - SPECIES_PAL(FROSMOTH, gMonPalette_Frosmoth), - SPECIES_PAL(STONJOURNER, gMonPalette_Stonjourner), - SPECIES_PAL(EISCUE_ICE_FACE, gMonPalette_EiscueIceFace), - SPECIES_PAL(INDEEDEE_MALE, gMonPalette_IndeedeeMale), - SPECIES_PAL(MORPEKO_FULL_BELLY, gMonPalette_MorpekoFullBelly), - SPECIES_PAL(CUFANT, gMonPalette_Cufant), - SPECIES_PAL(COPPERAJAH, gMonPalette_Copperajah), - SPECIES_PAL(DRACOZOLT, gMonPalette_Dracozolt), - SPECIES_PAL(ARCTOZOLT, gMonPalette_Arctozolt), - SPECIES_PAL(DRACOVISH, gMonPalette_Dracovish), - SPECIES_PAL(ARCTOVISH, gMonPalette_Arctovish), - SPECIES_PAL(DURALUDON, gMonPalette_Duraludon), - SPECIES_PAL(DREEPY, gMonPalette_Dreepy), - SPECIES_PAL(DRAKLOAK, gMonPalette_Drakloak), - SPECIES_PAL(DRAGAPULT, gMonPalette_Dragapult), - SPECIES_PAL(ZACIAN_HERO_OF_MANY_BATTLES, gMonPalette_ZacianHeroOfManyBattles), - SPECIES_PAL(ZAMAZENTA_HERO_OF_MANY_BATTLES, gMonPalette_ZamazentaHeroOfManyBattles), - SPECIES_PAL(ETERNATUS, gMonPalette_Eternatus), - SPECIES_PAL(KUBFU, gMonPalette_Kubfu), - SPECIES_PAL(URSHIFU_SINGLE_STRIKE_STYLE, gMonPalette_UrshifuSingleStrikeStyle), - SPECIES_PAL(ZARUDE, gMonPalette_Zarude), - SPECIES_PAL(REGIELEKI, gMonPalette_Regieleki), - SPECIES_PAL(REGIDRAGO, gMonPalette_Regidrago), - SPECIES_PAL(GLASTRIER, gMonPalette_Glastrier), - SPECIES_PAL(SPECTRIER, gMonPalette_Spectrier), - SPECIES_PAL(CALYREX, gMonPalette_Calyrex), - SPECIES_PAL(WYRDEER, gMonPalette_Wyrdeer), - SPECIES_PAL(KLEAVOR, gMonPalette_Kleavor), - SPECIES_PAL(URSALUNA, gMonPalette_Ursaluna), - SPECIES_PAL(URSALUNA_BLOODMOON, gMonPalette_UrsalunaBloodmoon), - SPECIES_PAL(BASCULEGION_MALE, gMonPalette_BasculegionMale), - SPECIES_PAL(SNEASLER, gMonPalette_Sneasler), - SPECIES_PAL(OVERQWIL, gMonPalette_Overqwil), - SPECIES_PAL(ENAMORUS_INCARNATE, gMonPalette_EnamorusIncarnate), -#endif - SPECIES_PAL(VENUSAUR_MEGA, gMonPalette_VenusaurMega), - SPECIES_PAL(CHARIZARD_MEGA_X, gMonPalette_CharizardMegaX), - SPECIES_PAL(CHARIZARD_MEGA_Y, gMonPalette_CharizardMegaY), - SPECIES_PAL(BLASTOISE_MEGA, gMonPalette_BlastoiseMega), - SPECIES_PAL(BEEDRILL_MEGA, gMonPalette_BeedrillMega), - SPECIES_PAL(PIDGEOT_MEGA, gMonPalette_PidgeotMega), - SPECIES_PAL(ALAKAZAM_MEGA, gMonPalette_AlakazamMega), - SPECIES_PAL(SLOWBRO_MEGA, gMonPalette_SlowbroMega), - SPECIES_PAL(GENGAR_MEGA, gMonPalette_GengarMega), - SPECIES_PAL(KANGASKHAN_MEGA, gMonPalette_KangaskhanMega), - SPECIES_PAL(PINSIR_MEGA, gMonPalette_PinsirMega), - SPECIES_PAL(GYARADOS_MEGA, gMonPalette_GyaradosMega), - SPECIES_PAL(AERODACTYL_MEGA, gMonPalette_AerodactylMega), - SPECIES_PAL(MEWTWO_MEGA_X, gMonPalette_MewtwoMegaX), - SPECIES_PAL(MEWTWO_MEGA_Y, gMonPalette_MewtwoMegaY), - SPECIES_PAL(AMPHAROS_MEGA, gMonPalette_AmpharosMega), - SPECIES_PAL(STEELIX_MEGA, gMonPalette_SteelixMega), - SPECIES_PAL(SCIZOR_MEGA, gMonPalette_ScizorMega), - SPECIES_PAL(HERACROSS_MEGA, gMonPalette_HeracrossMega), - SPECIES_PAL(HOUNDOOM_MEGA, gMonPalette_HoundoomMega), - SPECIES_PAL(TYRANITAR_MEGA, gMonPalette_TyranitarMega), - SPECIES_PAL(SCEPTILE_MEGA, gMonPalette_SceptileMega), - SPECIES_PAL(BLAZIKEN_MEGA, gMonPalette_BlazikenMega), - SPECIES_PAL(SWAMPERT_MEGA, gMonPalette_SwampertMega), - SPECIES_PAL(GARDEVOIR_MEGA, gMonPalette_GardevoirMega), - SPECIES_PAL(SABLEYE_MEGA, gMonPalette_SableyeMega), - SPECIES_PAL(MAWILE_MEGA, gMonPalette_MawileMega), - SPECIES_PAL(AGGRON_MEGA, gMonPalette_AggronMega), - SPECIES_PAL(MEDICHAM_MEGA, gMonPalette_MedichamMega), - SPECIES_PAL(MANECTRIC_MEGA, gMonPalette_ManectricMega), - SPECIES_PAL(SHARPEDO_MEGA, gMonPalette_SharpedoMega), - SPECIES_PAL(CAMERUPT_MEGA, gMonPalette_CameruptMega), - SPECIES_PAL(ALTARIA_MEGA, gMonPalette_AltariaMega), - SPECIES_PAL(BANETTE_MEGA, gMonPalette_BanetteMega), - SPECIES_PAL(ABSOL_MEGA, gMonPalette_AbsolMega), - SPECIES_PAL(GLALIE_MEGA, gMonPalette_GlalieMega), - SPECIES_PAL(SALAMENCE_MEGA, gMonPalette_SalamenceMega), - SPECIES_PAL(METAGROSS_MEGA, gMonPalette_MetagrossMega), - SPECIES_PAL(LATIAS_MEGA, gMonPalette_LatiasMega), - SPECIES_PAL(LATIOS_MEGA, gMonPalette_LatiosMega), -#if P_GEN_4_POKEMON == TRUE - SPECIES_PAL(LOPUNNY_MEGA, gMonPalette_LopunnyMega), - SPECIES_PAL(GARCHOMP_MEGA, gMonPalette_GarchompMega), - SPECIES_PAL(LUCARIO_MEGA, gMonPalette_LucarioMega), - SPECIES_PAL(ABOMASNOW_MEGA, gMonPalette_AbomasnowMega), - SPECIES_PAL(GALLADE_MEGA, gMonPalette_GalladeMega), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_PAL(AUDINO_MEGA, gMonPalette_AudinoMega), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_PAL(DIANCIE_MEGA, gMonPalette_DiancieMega), -#endif - - SPECIES_PAL(RAYQUAZA_MEGA, gMonPalette_RayquazaMega), - SPECIES_PAL(KYOGRE_PRIMAL, gMonPalette_KyogrePrimal), - SPECIES_PAL(GROUDON_PRIMAL, gMonPalette_GroudonPrimal), - - SPECIES_PAL(RATTATA_ALOLAN, gMonPalette_RattataAlolan), - SPECIES_PAL(RATICATE_ALOLAN, gMonPalette_RaticateAlolan), - SPECIES_PAL(RAICHU_ALOLAN, gMonPalette_RaichuAlolan), - SPECIES_PAL(SANDSHREW_ALOLAN, gMonPalette_SandshrewAlolan), - SPECIES_PAL(SANDSLASH_ALOLAN, gMonPalette_SandslashAlolan), - SPECIES_PAL(VULPIX_ALOLAN, gMonPalette_VulpixAlolan), - SPECIES_PAL(NINETALES_ALOLAN, gMonPalette_NinetalesAlolan), - SPECIES_PAL(DIGLETT_ALOLAN, gMonPalette_DiglettAlolan), - SPECIES_PAL(DUGTRIO_ALOLAN, gMonPalette_DugtrioAlolan), - SPECIES_PAL(MEOWTH_ALOLAN, gMonPalette_MeowthAlolan), - SPECIES_PAL(PERSIAN_ALOLAN, gMonPalette_PersianAlolan), - SPECIES_PAL(GEODUDE_ALOLAN, gMonPalette_GeodudeAlolan), - SPECIES_PAL(GRAVELER_ALOLAN, gMonPalette_GravelerAlolan), - SPECIES_PAL(GOLEM_ALOLAN, gMonPalette_GolemAlolan), - SPECIES_PAL(GRIMER_ALOLAN, gMonPalette_GrimerAlolan), - SPECIES_PAL(MUK_ALOLAN, gMonPalette_MukAlolan), - SPECIES_PAL(EXEGGUTOR_ALOLAN, gMonPalette_ExeggutorAlolan), - SPECIES_PAL(MAROWAK_ALOLAN, gMonPalette_MarowakAlolan), - - SPECIES_PAL(MEOWTH_GALARIAN, gMonPalette_MeowthGalarian), - SPECIES_PAL(PONYTA_GALARIAN, gMonPalette_PonytaGalarian), - SPECIES_PAL(RAPIDASH_GALARIAN, gMonPalette_RapidashGalarian), - SPECIES_PAL(SLOWPOKE_GALARIAN, gMonPalette_SlowpokeGalarian), - SPECIES_PAL(SLOWBRO_GALARIAN, gMonPalette_SlowbroGalarian), - SPECIES_PAL(FARFETCHD_GALARIAN, gMonPalette_FarfetchdGalarian), - SPECIES_PAL(WEEZING_GALARIAN, gMonPalette_WeezingGalarian), - SPECIES_PAL(MR_MIME_GALARIAN, gMonPalette_MrMimeGalarian), - SPECIES_PAL(ARTICUNO_GALARIAN, gMonPalette_ArticunoGalarian), - SPECIES_PAL(ZAPDOS_GALARIAN, gMonPalette_ZapdosGalarian), - SPECIES_PAL(MOLTRES_GALARIAN, gMonPalette_MoltresGalarian), - SPECIES_PAL(SLOWKING_GALARIAN, gMonPalette_SlowkingGalarian), - SPECIES_PAL(CORSOLA_GALARIAN, gMonPalette_CorsolaGalarian), - SPECIES_PAL(ZIGZAGOON_GALARIAN, gMonPalette_ZigzagoonGalarian), - SPECIES_PAL(LINOONE_GALARIAN, gMonPalette_LinooneGalarian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_PAL(DARUMAKA_GALARIAN, gMonPalette_DarumakaGalarian), - SPECIES_PAL(DARMANITAN_GALARIAN_STANDARD_MODE, gMonPalette_DarmanitanGalarianStandardMode), - SPECIES_PAL(YAMASK_GALARIAN, gMonPalette_YamaskGalarian), - SPECIES_PAL(STUNFISK_GALARIAN, gMonPalette_StunfiskGalarian), -#endif - - SPECIES_PAL(GROWLITHE_HISUIAN, gMonPalette_GrowlitheHisuian), - SPECIES_PAL(ARCANINE_HISUIAN, gMonPalette_ArcanineHisuian), - SPECIES_PAL(VOLTORB_HISUIAN, gMonPalette_VoltorbHisuian), - SPECIES_PAL(ELECTRODE_HISUIAN, gMonPalette_ElectrodeHisuian), - SPECIES_PAL(TYPHLOSION_HISUIAN, gMonPalette_TyphlosionHisuian), - SPECIES_PAL(QWILFISH_HISUIAN, gMonPalette_QwilfishHisuian), - SPECIES_PAL(SNEASEL_HISUIAN, gMonPalette_SneaselHisuian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_PAL(SAMUROTT_HISUIAN, gMonPalette_SamurottHisuian), - SPECIES_PAL(LILLIGANT_HISUIAN, gMonPalette_LilligantHisuian), - SPECIES_PAL(ZORUA_HISUIAN, gMonPalette_ZoruaHisuian), - SPECIES_PAL(ZOROARK_HISUIAN, gMonPalette_ZoroarkHisuian), - SPECIES_PAL(BRAVIARY_HISUIAN, gMonPalette_BraviaryHisuian), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_PAL(SLIGGOO_HISUIAN, gMonPalette_SliggooHisuian), - SPECIES_PAL(GOODRA_HISUIAN, gMonPalette_GoodraHisuian), - SPECIES_PAL(AVALUGG_HISUIAN, gMonPalette_AvaluggHisuian), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_PAL(DECIDUEYE_HISUIAN, gMonPalette_DecidueyeHisuian), -#endif - - SPECIES_PAL(PIKACHU_COSPLAY, gMonPalette_PikachuCosplay), - SPECIES_PAL(PIKACHU_ROCK_STAR, gMonPalette_PikachuRockStar), - SPECIES_PAL(PIKACHU_BELLE, gMonPalette_PikachuBelle), - SPECIES_PAL(PIKACHU_POP_STAR, gMonPalette_PikachuPopStar), - SPECIES_PAL(PIKACHU_PH_D, gMonPalette_PikachuPhD), - SPECIES_PAL(PIKACHU_LIBRE, gMonPalette_PikachuLibre), - - SPECIES_PAL(PIKACHU_ORIGINAL_CAP, gMonPalette_PikachuOriginalCap), - SPECIES_PAL(PIKACHU_HOENN_CAP, gMonPalette_PikachuHoennCap), - SPECIES_PAL(PIKACHU_SINNOH_CAP, gMonPalette_PikachuSinnohCap), - SPECIES_PAL(PIKACHU_UNOVA_CAP, gMonPalette_PikachuUnovaCap), - SPECIES_PAL(PIKACHU_KALOS_CAP, gMonPalette_PikachuKalosCap), - SPECIES_PAL(PIKACHU_ALOLA_CAP, gMonPalette_PikachuAlolaCap), - SPECIES_PAL(PIKACHU_PARTNER_CAP, gMonPalette_PikachuPartnerCap), - SPECIES_PAL(PIKACHU_WORLD_CAP, gMonPalette_PikachuWorldCap), - - SPECIES_PAL(PICHU_SPIKY_EARED, gMonPalette_PichuSpikyEared), - - SPECIES_PAL(UNOWN_B, gMonPalette_Unown), - SPECIES_PAL(UNOWN_C, gMonPalette_Unown), - SPECIES_PAL(UNOWN_D, gMonPalette_Unown), - SPECIES_PAL(UNOWN_E, gMonPalette_Unown), - SPECIES_PAL(UNOWN_F, gMonPalette_Unown), - SPECIES_PAL(UNOWN_G, gMonPalette_Unown), - SPECIES_PAL(UNOWN_H, gMonPalette_Unown), - SPECIES_PAL(UNOWN_I, gMonPalette_Unown), - SPECIES_PAL(UNOWN_J, gMonPalette_Unown), - SPECIES_PAL(UNOWN_K, gMonPalette_Unown), - SPECIES_PAL(UNOWN_L, gMonPalette_Unown), - SPECIES_PAL(UNOWN_M, gMonPalette_Unown), - SPECIES_PAL(UNOWN_N, gMonPalette_Unown), - SPECIES_PAL(UNOWN_O, gMonPalette_Unown), - SPECIES_PAL(UNOWN_P, gMonPalette_Unown), - SPECIES_PAL(UNOWN_Q, gMonPalette_Unown), - SPECIES_PAL(UNOWN_R, gMonPalette_Unown), - SPECIES_PAL(UNOWN_S, gMonPalette_Unown), - SPECIES_PAL(UNOWN_T, gMonPalette_Unown), - SPECIES_PAL(UNOWN_U, gMonPalette_Unown), - SPECIES_PAL(UNOWN_V, gMonPalette_Unown), - SPECIES_PAL(UNOWN_W, gMonPalette_Unown), - SPECIES_PAL(UNOWN_X, gMonPalette_Unown), - SPECIES_PAL(UNOWN_Y, gMonPalette_Unown), - SPECIES_PAL(UNOWN_Z, gMonPalette_Unown), - SPECIES_PAL(UNOWN_EMARK, gMonPalette_Unown), - SPECIES_PAL(UNOWN_QMARK, gMonPalette_Unown), - - SPECIES_PAL(CASTFORM_SUNNY, gMonPalette_CastformSunny), - SPECIES_PAL(CASTFORM_RAINY, gMonPalette_CastformRainy), - SPECIES_PAL(CASTFORM_SNOWY, gMonPalette_CastformSnowy), - - SPECIES_PAL(DEOXYS_ATTACK, gMonPalette_DeoxysAttack), - SPECIES_PAL(DEOXYS_DEFENSE, gMonPalette_DeoxysDefense), - SPECIES_PAL(DEOXYS_SPEED, gMonPalette_DeoxysSpeed), - -#if P_GEN_4_POKEMON == TRUE - SPECIES_PAL(BURMY_SANDY_CLOAK, gMonPalette_BurmySandyCloak), - SPECIES_PAL(BURMY_TRASH_CLOAK, gMonPalette_BurmyTrashCloak), - - SPECIES_PAL(WORMADAM_SANDY_CLOAK, gMonPalette_WormadamSandyCloak), - SPECIES_PAL(WORMADAM_TRASH_CLOAK, gMonPalette_WormadamTrashCloak), - - SPECIES_PAL(CHERRIM_SUNSHINE, gMonPalette_CherrimSunshine), - - SPECIES_PAL(SHELLOS_EAST_SEA, gMonPalette_ShellosEastSea), - - SPECIES_PAL(GASTRODON_EAST_SEA, gMonPalette_GastrodonEastSea), - - SPECIES_PAL(ROTOM_HEAT, gMonPalette_RotomHeat), - SPECIES_PAL(ROTOM_WASH, gMonPalette_RotomWash), - SPECIES_PAL(ROTOM_FROST, gMonPalette_RotomFrost), - SPECIES_PAL(ROTOM_FAN, gMonPalette_RotomFan), - SPECIES_PAL(ROTOM_MOW, gMonPalette_RotomMow), - - SPECIES_PAL(DIALGA_ORIGIN, gMonPalette_DialgaOrigin), - SPECIES_PAL(PALKIA_ORIGIN, gMonPalette_PalkiaOrigin), - SPECIES_PAL(GIRATINA_ORIGIN, gMonPalette_GiratinaOrigin), - - SPECIES_PAL(SHAYMIN_SKY, gMonPalette_ShayminSky), - - SPECIES_PAL(ARCEUS_FIGHTING, gMonPalette_ArceusFighting), - SPECIES_PAL(ARCEUS_FLYING, gMonPalette_ArceusFlying), - SPECIES_PAL(ARCEUS_POISON, gMonPalette_ArceusPoison), - SPECIES_PAL(ARCEUS_GROUND, gMonPalette_ArceusGround), - SPECIES_PAL(ARCEUS_ROCK, gMonPalette_ArceusRock), - SPECIES_PAL(ARCEUS_BUG, gMonPalette_ArceusBug), - SPECIES_PAL(ARCEUS_GHOST, gMonPalette_ArceusGhost), - SPECIES_PAL(ARCEUS_STEEL, gMonPalette_ArceusSteel), - SPECIES_PAL(ARCEUS_FIRE, gMonPalette_ArceusFire), - SPECIES_PAL(ARCEUS_WATER, gMonPalette_ArceusWater), - SPECIES_PAL(ARCEUS_GRASS, gMonPalette_ArceusGrass), - SPECIES_PAL(ARCEUS_ELECTRIC, gMonPalette_ArceusElectric), - SPECIES_PAL(ARCEUS_PSYCHIC, gMonPalette_ArceusPsychic), - SPECIES_PAL(ARCEUS_ICE, gMonPalette_ArceusIce), - SPECIES_PAL(ARCEUS_DRAGON, gMonPalette_ArceusDragon), - SPECIES_PAL(ARCEUS_DARK, gMonPalette_ArceusDark), - SPECIES_PAL(ARCEUS_FAIRY, gMonPalette_ArceusFairy), -#endif - -#if P_GEN_5_POKEMON == TRUE - SPECIES_PAL(BASCULIN_BLUE_STRIPED, gMonPalette_BasculinBlueStriped), - SPECIES_PAL(BASCULIN_WHITE_STRIPED, gMonPalette_BasculinWhiteStriped), - - SPECIES_PAL(DARMANITAN_ZEN_MODE, gMonPalette_DarmanitanZenMode), - SPECIES_PAL(DARMANITAN_GALARIAN_ZEN_MODE, gMonPalette_DarmanitanGalarianZenMode), - - SPECIES_PAL(DEERLING_SUMMER, gMonPalette_DeerlingSummer), - SPECIES_PAL(DEERLING_AUTUMN, gMonPalette_DeerlingAutumn), - SPECIES_PAL(DEERLING_WINTER, gMonPalette_DeerlingWinter), - - SPECIES_PAL(SAWSBUCK_SUMMER, gMonPalette_SawsbuckSummer), - SPECIES_PAL(SAWSBUCK_AUTUMN, gMonPalette_SawsbuckAutumn), - SPECIES_PAL(SAWSBUCK_WINTER, gMonPalette_SawsbuckWinter), - - SPECIES_PAL(TORNADUS_THERIAN, gMonPalette_TornadusTherian), - SPECIES_PAL(THUNDURUS_THERIAN, gMonPalette_ThundurusTherian), - SPECIES_PAL(LANDORUS_THERIAN, gMonPalette_LandorusTherian), - - SPECIES_PAL(KYUREM_WHITE, gMonPalette_KyuremWhite), - SPECIES_PAL(KYUREM_BLACK, gMonPalette_KyuremBlack), - - SPECIES_PAL(KELDEO_RESOLUTE, gMonPalette_KeldeoResolute), - - SPECIES_PAL(MELOETTA_PIROUETTE, gMonPalette_MeloettaPirouette), - - SPECIES_PAL(GENESECT_DOUSE_DRIVE, gMonPalette_GenesectDouseDrive), - SPECIES_PAL(GENESECT_SHOCK_DRIVE, gMonPalette_GenesectShockDrive), - SPECIES_PAL(GENESECT_BURN_DRIVE, gMonPalette_GenesectBurnDrive), - SPECIES_PAL(GENESECT_CHILL_DRIVE, gMonPalette_GenesectChillDrive), -#endif - -#if P_GEN_6_POKEMON == TRUE - SPECIES_PAL(GRENINJA_BATTLE_BOND, gMonPalette_Greninja), - SPECIES_PAL(GRENINJA_ASH, gMonPalette_GreninjaAsh), - - SPECIES_PAL(VIVILLON_POLAR, gMonPalette_VivillonPolar), - SPECIES_PAL(VIVILLON_TUNDRA, gMonPalette_VivillonTundra), - SPECIES_PAL(VIVILLON_CONTINENTAL, gMonPalette_VivillonContinental), - SPECIES_PAL(VIVILLON_GARDEN, gMonPalette_VivillonGarden), - SPECIES_PAL(VIVILLON_ELEGANT, gMonPalette_VivillonElegant), - SPECIES_PAL(VIVILLON_MEADOW, gMonPalette_VivillonMeadow), - SPECIES_PAL(VIVILLON_MODERN, gMonPalette_VivillonModern), - SPECIES_PAL(VIVILLON_MARINE, gMonPalette_VivillonMarine), - SPECIES_PAL(VIVILLON_ARCHIPELAGO, gMonPalette_VivillonArchipelago), - SPECIES_PAL(VIVILLON_HIGH_PLAINS, gMonPalette_VivillonHighPlains), - SPECIES_PAL(VIVILLON_SANDSTORM, gMonPalette_VivillonSandstorm), - SPECIES_PAL(VIVILLON_RIVER, gMonPalette_VivillonRiver), - SPECIES_PAL(VIVILLON_MONSOON, gMonPalette_VivillonMonsoon), - SPECIES_PAL(VIVILLON_SAVANNA, gMonPalette_VivillonSavanna), - SPECIES_PAL(VIVILLON_SUN, gMonPalette_VivillonSun), - SPECIES_PAL(VIVILLON_OCEAN, gMonPalette_VivillonOcean), - SPECIES_PAL(VIVILLON_JUNGLE, gMonPalette_VivillonJungle), - SPECIES_PAL(VIVILLON_FANCY, gMonPalette_VivillonFancy), - SPECIES_PAL(VIVILLON_POKE_BALL, gMonPalette_VivillonPokeBall), - - SPECIES_PAL(FLABEBE_YELLOW_FLOWER, gMonPalette_FlabebeYellowFlower), - SPECIES_PAL(FLABEBE_ORANGE_FLOWER, gMonPalette_FlabebeOrangeFlower), - SPECIES_PAL(FLABEBE_BLUE_FLOWER, gMonPalette_FlabebeBlueFlower), - SPECIES_PAL(FLABEBE_WHITE_FLOWER, gMonPalette_FlabebeWhiteFlower), - - SPECIES_PAL(FLOETTE_YELLOW_FLOWER, gMonPalette_FloetteYellowFlower), - SPECIES_PAL(FLOETTE_ORANGE_FLOWER, gMonPalette_FloetteOrangeFlower), - SPECIES_PAL(FLOETTE_BLUE_FLOWER, gMonPalette_FloetteBlueFlower), - SPECIES_PAL(FLOETTE_WHITE_FLOWER, gMonPalette_FloetteWhiteFlower), - SPECIES_PAL(FLOETTE_ETERNAL_FLOWER, gMonPalette_FloetteEternalFlower), - - SPECIES_PAL(FLORGES_YELLOW_FLOWER, gMonPalette_FlorgesYellowFlower), - SPECIES_PAL(FLORGES_ORANGE_FLOWER, gMonPalette_FlorgesOrangeFlower), - SPECIES_PAL(FLORGES_BLUE_FLOWER, gMonPalette_FlorgesBlueFlower), - SPECIES_PAL(FLORGES_WHITE_FLOWER, gMonPalette_FlorgesWhiteFlower), - - SPECIES_PAL(FURFROU_HEART_TRIM, gMonPalette_FurfrouHeartTrim), - SPECIES_PAL(FURFROU_STAR_TRIM, gMonPalette_FurfrouStarTrim), - SPECIES_PAL(FURFROU_DIAMOND_TRIM, gMonPalette_FurfrouDiamondTrim), - SPECIES_PAL(FURFROU_DEBUTANTE_TRIM, gMonPalette_FurfrouDebutanteTrim), - SPECIES_PAL(FURFROU_MATRON_TRIM, gMonPalette_FurfrouMatronTrim), - SPECIES_PAL(FURFROU_DANDY_TRIM, gMonPalette_FurfrouDandyTrim), - SPECIES_PAL(FURFROU_LA_REINE_TRIM, gMonPalette_FurfrouLaReineTrim), - SPECIES_PAL(FURFROU_KABUKI_TRIM, gMonPalette_FurfrouKabukiTrim), - SPECIES_PAL(FURFROU_PHARAOH_TRIM, gMonPalette_FurfrouPharaohTrim), - - SPECIES_PAL(MEOWSTIC_FEMALE, gMonPalette_MeowsticFemale), - - SPECIES_PAL(AEGISLASH_BLADE, gMonPalette_AegislashBlade), - - SPECIES_PAL(PUMPKABOO_SMALL, gMonPalette_Pumpkaboo), - SPECIES_PAL(PUMPKABOO_LARGE, gMonPalette_Pumpkaboo), - SPECIES_PAL(PUMPKABOO_SUPER, gMonPalette_Pumpkaboo), - - SPECIES_PAL(GOURGEIST_SMALL, gMonPalette_Gourgeist), - SPECIES_PAL(GOURGEIST_LARGE, gMonPalette_Gourgeist), - SPECIES_PAL(GOURGEIST_SUPER, gMonPalette_Gourgeist), - - SPECIES_PAL(XERNEAS_ACTIVE, gMonPalette_XerneasActive), - - SPECIES_PAL(ZYGARDE_10, gMonPalette_Zygarde10), - SPECIES_PAL(ZYGARDE_10_POWER_CONSTRUCT, gMonPalette_Zygarde10), - SPECIES_PAL(ZYGARDE_50_POWER_CONSTRUCT, gMonPalette_Zygarde50), - SPECIES_PAL(ZYGARDE_COMPLETE, gMonPalette_ZygardeComplete), - - SPECIES_PAL(HOOPA_UNBOUND, gMonPalette_HoopaUnbound), -#endif - -#if P_GEN_7_POKEMON == TRUE - SPECIES_PAL(ORICORIO_POM_POM, gMonPalette_OricorioPomPom), - SPECIES_PAL(ORICORIO_PAU, gMonPalette_OricorioPau), - SPECIES_PAL(ORICORIO_SENSU, gMonPalette_OricorioSensu), - - SPECIES_PAL(ROCKRUFF_OWN_TEMPO, gMonPalette_Rockruff), - - SPECIES_PAL(LYCANROC_MIDNIGHT, gMonPalette_LycanrocMidnight), - SPECIES_PAL(LYCANROC_DUSK, gMonPalette_LycanrocDusk), - - SPECIES_PAL(WISHIWASHI_SCHOOL, gMonPalette_WishiwashiSchool), - - SPECIES_PAL(SILVALLY_FIGHTING, gMonPalette_SilvallyFighting), - SPECIES_PAL(SILVALLY_FLYING, gMonPalette_SilvallyFlying), - SPECIES_PAL(SILVALLY_POISON, gMonPalette_SilvallyPoison), - SPECIES_PAL(SILVALLY_GROUND, gMonPalette_SilvallyGround), - SPECIES_PAL(SILVALLY_ROCK, gMonPalette_SilvallyRock), - SPECIES_PAL(SILVALLY_BUG, gMonPalette_SilvallyBug), - SPECIES_PAL(SILVALLY_GHOST, gMonPalette_SilvallyGhost), - SPECIES_PAL(SILVALLY_STEEL, gMonPalette_SilvallySteel), - SPECIES_PAL(SILVALLY_FIRE, gMonPalette_SilvallyFire), - SPECIES_PAL(SILVALLY_WATER, gMonPalette_SilvallyWater), - SPECIES_PAL(SILVALLY_GRASS, gMonPalette_SilvallyGrass), - SPECIES_PAL(SILVALLY_ELECTRIC, gMonPalette_SilvallyElectric), - SPECIES_PAL(SILVALLY_PSYCHIC, gMonPalette_SilvallyPsychic), - SPECIES_PAL(SILVALLY_ICE, gMonPalette_SilvallyIce), - SPECIES_PAL(SILVALLY_DRAGON, gMonPalette_SilvallyDragon), - SPECIES_PAL(SILVALLY_DARK, gMonPalette_SilvallyDark), - SPECIES_PAL(SILVALLY_FAIRY, gMonPalette_SilvallyFairy), - - SPECIES_PAL(MINIOR_METEOR_ORANGE, gMonPalette_MiniorMeteor), - SPECIES_PAL(MINIOR_METEOR_YELLOW, gMonPalette_MiniorMeteor), - SPECIES_PAL(MINIOR_METEOR_GREEN, gMonPalette_MiniorMeteor), - SPECIES_PAL(MINIOR_METEOR_BLUE, gMonPalette_MiniorMeteor), - SPECIES_PAL(MINIOR_METEOR_INDIGO, gMonPalette_MiniorMeteor), - SPECIES_PAL(MINIOR_METEOR_VIOLET, gMonPalette_MiniorMeteor), - SPECIES_PAL(MINIOR_CORE_RED, gMonPalette_MiniorCoreRed), - SPECIES_PAL(MINIOR_CORE_ORANGE, gMonPalette_MiniorCoreOrange), - SPECIES_PAL(MINIOR_CORE_YELLOW, gMonPalette_MiniorCoreYellow), - SPECIES_PAL(MINIOR_CORE_GREEN, gMonPalette_MiniorCoreGreen), - SPECIES_PAL(MINIOR_CORE_BLUE, gMonPalette_MiniorCoreBlue), - SPECIES_PAL(MINIOR_CORE_INDIGO, gMonPalette_MiniorCoreIndigo), - SPECIES_PAL(MINIOR_CORE_VIOLET, gMonPalette_MiniorCoreViolet), - - SPECIES_PAL(MIMIKYU_BUSTED, gMonPalette_MimikyuBusted), - - SPECIES_PAL(NECROZMA_DUSK_MANE, gMonPalette_NecrozmaDuskMane), - SPECIES_PAL(NECROZMA_DAWN_WINGS, gMonPalette_NecrozmaDawnWings), - SPECIES_PAL(NECROZMA_ULTRA, gMonPalette_NecrozmaUltra), - - SPECIES_PAL(MAGEARNA_ORIGINAL_COLOR, gMonPalette_MagearnaOriginalColor), -#endif - -#if P_GEN_8_POKEMON == TRUE - SPECIES_PAL(CRAMORANT_GULPING, gMonPalette_CramorantGulping), - SPECIES_PAL(CRAMORANT_GORGING, gMonPalette_CramorantGorging), - - SPECIES_PAL(TOXTRICITY_LOW_KEY, gMonPalette_ToxtricityLowKey), - - SPECIES_PAL(SINISTEA_ANTIQUE, gMonPalette_Sinistea), - - SPECIES_PAL(POLTEAGEIST_ANTIQUE, gMonPalette_Polteageist), - - SPECIES_PAL(EISCUE_NOICE_FACE, gMonPalette_EiscueNoiceFace), - - SPECIES_PAL(INDEEDEE_FEMALE, gMonPalette_IndeedeeFemale), - - SPECIES_PAL(MORPEKO_HANGRY, gMonPalette_MorpekoHangry), - - SPECIES_PAL(ZACIAN_CROWNED_SWORD, gMonPalette_ZacianCrownedSword), - - SPECIES_PAL(ZAMAZENTA_CROWNED_SHIELD, gMonPalette_ZamazentaCrownedShield), - - SPECIES_PAL(ETERNATUS_ETERNAMAX, gMonPalette_EternatusEternamax), - - SPECIES_PAL(URSHIFU_RAPID_STRIKE_STYLE, gMonPalette_UrshifuRapidStrikeStyle), - - SPECIES_PAL(ZARUDE_DADA, gMonPalette_ZarudeDada), - - SPECIES_PAL(CALYREX_ICE_RIDER, gMonPalette_CalyrexIceRider), - SPECIES_PAL(CALYREX_SHADOW_RIDER, gMonPalette_CalyrexShadowRider), - - SPECIES_PAL(ENAMORUS_THERIAN, gMonPalette_EnamorusTherian), - SPECIES_PAL(BASCULEGION_FEMALE, gMonPalette_BasculegionFemale), - - // Gigantamax Forms - SPECIES_PAL(VENUSAUR_GIGANTAMAX, gMonPalette_VenusaurGigantamax), - SPECIES_PAL(CHARIZARD_GIGANTAMAX, gMonPalette_CharizardGigantamax), - SPECIES_PAL(BLASTOISE_GIGANTAMAX, gMonPalette_BlastoiseGigantamax), - SPECIES_PAL(BUTTERFREE_GIGANTAMAX, gMonPalette_ButterfreeGigantamax), - SPECIES_PAL(PIKACHU_GIGANTAMAX, gMonPalette_PikachuGigantamax), - SPECIES_PAL(MEOWTH_GIGANTAMAX, gMonPalette_MeowthGigantamax), - SPECIES_PAL(MACHAMP_GIGANTAMAX, gMonPalette_MachampGigantamax), - SPECIES_PAL(GENGAR_GIGANTAMAX, gMonPalette_GengarGigantamax), - SPECIES_PAL(KINGLER_GIGANTAMAX, gMonPalette_KinglerGigantamax), - SPECIES_PAL(LAPRAS_GIGANTAMAX, gMonPalette_LaprasGigantamax), - SPECIES_PAL(EEVEE_GIGANTAMAX, gMonPalette_EeveeGigantamax), - SPECIES_PAL(SNORLAX_GIGANTAMAX, gMonPalette_SnorlaxGigantamax), - SPECIES_PAL(GARBODOR_GIGANTAMAX, gMonPalette_GarbodorGigantamax), - SPECIES_PAL(MELMETAL_GIGANTAMAX, gMonPalette_MelmetalGigantamax), - SPECIES_PAL(RILLABOOM_GIGANTAMAX, gMonPalette_RillaboomGigantamax), - SPECIES_PAL(CINDERACE_GIGANTAMAX, gMonPalette_CinderaceGigantamax), - SPECIES_PAL(INTELEON_GIGANTAMAX, gMonPalette_InteleonGigantamax), - SPECIES_PAL(CORVIKNIGHT_GIGANTAMAX, gMonPalette_CorviknightGigantamax), - SPECIES_PAL(ORBEETLE_GIGANTAMAX, gMonPalette_OrbeetleGigantamax), - SPECIES_PAL(DREDNAW_GIGANTAMAX, gMonPalette_DrednawGigantamax), - SPECIES_PAL(COALOSSAL_GIGANTAMAX, gMonPalette_CoalossalGigantamax), - SPECIES_PAL(FLAPPLE_GIGANTAMAX, gMonPalette_FlappleGigantamax), - SPECIES_PAL(APPLETUN_GIGANTAMAX, gMonPalette_AppletunGigantamax), - SPECIES_PAL(SANDACONDA_GIGANTAMAX, gMonPalette_SandacondaGigantamax), - SPECIES_PAL(TOXTRICITY_AMPED_GIGANTAMAX, gMonPalette_ToxtricityGigantamax), - SPECIES_PAL(TOXTRICITY_LOW_KEY_GIGANTAMAX, gMonPalette_ToxtricityGigantamax), - SPECIES_PAL(CENTISKORCH_GIGANTAMAX, gMonPalette_CentiskorchGigantamax), - SPECIES_PAL(HATTERENE_GIGANTAMAX, gMonPalette_HattereneGigantamax), - SPECIES_PAL(GRIMMSNARL_GIGANTAMAX, gMonPalette_GrimmsnarlGigantamax), - SPECIES_PAL(ALCREMIE_GIGANTAMAX, gMonPalette_AlcremieGigantamax), - SPECIES_PAL(COPPERAJAH_GIGANTAMAX, gMonPalette_CopperajahGigantamax), - SPECIES_PAL(DURALUDON_GIGANTAMAX, gMonPalette_DuraludonGigantamax), - SPECIES_PAL(URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX, gMonPalette_UrshifuSingleStrikeGigantamax), - SPECIES_PAL(URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX, gMonPalette_UrshifuRapidStrikeGigantamax), -#endif -#if P_GEN_9_POKEMON == TRUE - SPECIES_PAL(SPRIGATITO, gMonPalette_Sprigatito), - SPECIES_PAL(FLORAGATO, gMonPalette_Floragato), - SPECIES_PAL(MEOWSCARADA, gMonPalette_Meowscarada), - SPECIES_PAL(FUECOCO, gMonPalette_Fuecoco), - SPECIES_PAL(CROCALOR, gMonPalette_Crocalor), - SPECIES_PAL(SKELEDIRGE, gMonPalette_Skeledirge), - SPECIES_PAL(QUAXLY, gMonPalette_Quaxly), - SPECIES_PAL(QUAXWELL, gMonPalette_Quaxwell), - SPECIES_PAL(QUAQUAVAL, gMonPalette_Quaquaval), - SPECIES_PAL(LECHONK, gMonPalette_Lechonk), - SPECIES_PAL(OINKOLOGNE_MALE, gMonPalette_OinkologneMale), - SPECIES_PAL(OINKOLOGNE_FEMALE, gMonPalette_OinkologneFemale), - SPECIES_PAL(TAROUNTULA, gMonPalette_Tarountula), - SPECIES_PAL(SPIDOPS, gMonPalette_Spidops), - SPECIES_PAL(NYMBLE, gMonPalette_Nymble), - SPECIES_PAL(LOKIX, gMonPalette_Lokix), - SPECIES_PAL(PAWMI, gMonPalette_Pawmi), - SPECIES_PAL(PAWMO, gMonPalette_Pawmo), - SPECIES_PAL(PAWMOT, gMonPalette_Pawmot), - SPECIES_PAL(TANDEMAUS, gMonPalette_Tandemaus), - SPECIES_PAL(MAUSHOLD_FAMILY_OF_THREE, gMonPalette_Maushold), - SPECIES_PAL(MAUSHOLD_FAMILY_OF_FOUR, gMonPalette_Maushold), - SPECIES_PAL(FIDOUGH, gMonPalette_Fidough), - SPECIES_PAL(DACHSBUN, gMonPalette_Dachsbun), - SPECIES_PAL(SMOLIV, gMonPalette_Smoliv), - SPECIES_PAL(DOLLIV, gMonPalette_Dolliv), - SPECIES_PAL(ARBOLIVA, gMonPalette_Arboliva), - SPECIES_PAL(SQUAWKABILLY_GREEN_PLUMAGE, gMonPalette_SquawkabillyGreenPlumage), - SPECIES_PAL(SQUAWKABILLY_BLUE_PLUMAGE, gMonPalette_SquawkabillyBluePlumage), - SPECIES_PAL(SQUAWKABILLY_YELLOW_PLUMAGE, gMonPalette_SquawkabillyYellowPlumage), - SPECIES_PAL(SQUAWKABILLY_WHITE_PLUMAGE, gMonPalette_SquawkabillyWhitePlumage), - SPECIES_PAL(NACLI, gMonPalette_Nacli), - SPECIES_PAL(NACLSTACK, gMonPalette_Naclstack), - SPECIES_PAL(GARGANACL, gMonPalette_Garganacl), - SPECIES_PAL(CHARCADET, gMonPalette_Charcadet), - SPECIES_PAL(ARMAROUGE, gMonPalette_Armarouge), - SPECIES_PAL(CERULEDGE, gMonPalette_Ceruledge), - SPECIES_PAL(TADBULB, gMonPalette_Tadbulb), - SPECIES_PAL(BELLIBOLT, gMonPalette_Bellibolt), - SPECIES_PAL(WATTREL, gMonPalette_Wattrel), - SPECIES_PAL(KILOWATTREL, gMonPalette_Kilowattrel), - SPECIES_PAL(MASCHIFF, gMonPalette_Maschiff), - SPECIES_PAL(MABOSSTIFF, gMonPalette_Mabosstiff), - SPECIES_PAL(SHROODLE, gMonPalette_Shroodle), - SPECIES_PAL(GRAFAIAI, gMonPalette_Grafaiai), - SPECIES_PAL(BRAMBLIN, gMonPalette_Bramblin), - SPECIES_PAL(BRAMBLEGHAST, gMonPalette_Brambleghast), - SPECIES_PAL(TOEDSCOOL, gMonPalette_Toedscool), - SPECIES_PAL(TOEDSCRUEL, gMonPalette_Toedscruel), - SPECIES_PAL(KLAWF, gMonPalette_Klawf), - SPECIES_PAL(CAPSAKID, gMonPalette_Capsakid), - SPECIES_PAL(SCOVILLAIN, gMonPalette_Scovillain), - SPECIES_PAL(RELLOR, gMonPalette_Rellor), - SPECIES_PAL(RABSCA, gMonPalette_Rabsca), - SPECIES_PAL(FLITTLE, gMonPalette_Flittle), - SPECIES_PAL(ESPATHRA, gMonPalette_Espathra), - SPECIES_PAL(TINKATINK, gMonPalette_Tinkatink), - SPECIES_PAL(TINKATUFF, gMonPalette_Tinkatuff), - SPECIES_PAL(TINKATON, gMonPalette_Tinkaton), - SPECIES_PAL(WIGLETT, gMonPalette_Wiglett), - SPECIES_PAL(WUGTRIO, gMonPalette_Wugtrio), - SPECIES_PAL(BOMBIRDIER, gMonPalette_Bombirdier), - SPECIES_PAL(FINIZEN, gMonPalette_Finizen), - SPECIES_PAL(PALAFIN_ZERO, gMonPalette_PalafinZero), - SPECIES_PAL(PALAFIN_HERO, gMonPalette_PalafinHero), - SPECIES_PAL(VAROOM, gMonPalette_Varoom), - SPECIES_PAL(REVAVROOM, gMonPalette_Revavroom), - SPECIES_PAL(CYCLIZAR, gMonPalette_Cyclizar), - SPECIES_PAL(ORTHWORM, gMonPalette_Orthworm), - SPECIES_PAL(GLIMMET, gMonPalette_Glimmet), - SPECIES_PAL(GLIMMORA, gMonPalette_Glimmora), - SPECIES_PAL(GREAVARD, gMonPalette_Greavard), - SPECIES_PAL(HOUNDSTONE, gMonPalette_Houndstone), - SPECIES_PAL(FLAMIGO, gMonPalette_Flamigo), - SPECIES_PAL(CETODDLE, gMonPalette_Cetoddle), - SPECIES_PAL(CETITAN, gMonPalette_Cetitan), - SPECIES_PAL(VELUZA, gMonPalette_Veluza), - SPECIES_PAL(DONDOZO, gMonPalette_Dondozo), - SPECIES_PAL(TATSUGIRI_CURLY, gMonPalette_TatsugiriCurly), - SPECIES_PAL(TATSUGIRI_DROOPY, gMonPalette_TatsugiriDroopy), - SPECIES_PAL(TATSUGIRI_STRETCHY, gMonPalette_TatsugiriStretchy), - SPECIES_PAL(ANNIHILAPE, gMonPalette_Annihilape), - SPECIES_PAL(CLODSIRE, gMonPalette_Clodsire), - SPECIES_PAL(FARIGIRAF, gMonPalette_Farigiraf), - SPECIES_PAL(DUDUNSPARCE_TWO_SEGMENT, gMonPalette_Dudunsparce), - SPECIES_PAL(DUDUNSPARCE_THREE_SEGMENT, gMonPalette_Dudunsparce), - SPECIES_PAL(KINGAMBIT, gMonPalette_Kingambit), - SPECIES_PAL(GREAT_TUSK, gMonPalette_GreatTusk), - SPECIES_PAL(SCREAM_TAIL, gMonPalette_ScreamTail), - SPECIES_PAL(BRUTE_BONNET, gMonPalette_BruteBonnet), - SPECIES_PAL(FLUTTER_MANE, gMonPalette_FlutterMane), - SPECIES_PAL(SLITHER_WING, gMonPalette_SlitherWing), - SPECIES_PAL(SANDY_SHOCKS, gMonPalette_SandyShocks), - SPECIES_PAL(IRON_TREADS, gMonPalette_IronTreads), - SPECIES_PAL(IRON_BUNDLE, gMonPalette_IronBundle), - SPECIES_PAL(IRON_HANDS, gMonPalette_IronHands), - SPECIES_PAL(IRON_JUGULIS, gMonPalette_IronJugulis), - SPECIES_PAL(IRON_MOTH, gMonPalette_IronMoth), - SPECIES_PAL(IRON_THORNS, gMonPalette_IronThorns), - SPECIES_PAL(FRIGIBAX, gMonPalette_Frigibax), - SPECIES_PAL(ARCTIBAX, gMonPalette_Arctibax), - SPECIES_PAL(BAXCALIBUR, gMonPalette_Baxcalibur), - SPECIES_PAL(GIMMIGHOUL_CHEST, gMonPalette_GimmighoulChest), - SPECIES_PAL(GIMMIGHOUL_ROAMING, gMonPalette_GimmighoulRoaming), - SPECIES_PAL(GHOLDENGO, gMonPalette_Gholdengo), - SPECIES_PAL(WO_CHIEN, gMonPalette_WoChien), - SPECIES_PAL(CHIEN_PAO, gMonPalette_ChienPao), - SPECIES_PAL(TING_LU, gMonPalette_TingLu), - SPECIES_PAL(CHI_YU, gMonPalette_ChiYu), - SPECIES_PAL(ROARING_MOON, gMonPalette_RoaringMoon), - SPECIES_PAL(IRON_VALIANT, gMonPalette_IronValiant), - SPECIES_PAL(KORAIDON, gMonPalette_Koraidon), - SPECIES_PAL(MIRAIDON, gMonPalette_Miraidon), - SPECIES_PAL(WALKING_WAKE, gMonPalette_WalkingWake), - SPECIES_PAL(IRON_LEAVES, gMonPalette_IronLeaves), - SPECIES_PAL(DIPPLIN, gMonPalette_Dipplin), - SPECIES_PAL(POLTCHAGEIST_COUNTERFEIT, gMonPalette_Poltchageist), - SPECIES_PAL(POLTCHAGEIST_ARTISAN, gMonPalette_Poltchageist), - SPECIES_PAL(SINISTCHA_UNREMARKABLE, gMonPalette_Sinistcha), - SPECIES_PAL(SINISTCHA_MASTERPIECE, gMonPalette_Sinistcha), - SPECIES_PAL(OKIDOGI, gMonPalette_Okidogi), - SPECIES_PAL(MUNKIDORI, gMonPalette_Munkidori), - SPECIES_PAL(FEZANDIPITI, gMonPalette_Fezandipiti), - SPECIES_PAL(OGERPON_TEAL_MASK, gMonPalette_OgerponTealMask), - SPECIES_PAL(OGERPON_WELLSPRING_MASK, gMonPalette_OgerponWellspringMask), - SPECIES_PAL(OGERPON_HEARTHFLAME_MASK, gMonPalette_OgerponHearthflameMask), - SPECIES_PAL(OGERPON_CORNERSTONE_MASK, gMonPalette_OgerponCornerstoneMask), - // SPECIES_PAL(OGERPON_TEAL_MASK_TERA, gMonPalette_OgerponTealMaskTera), - // SPECIES_PAL(OGERPON_WELLSPRING_MASK_TERA, gMonPalette_OgerponWellspringMaskTera), - // SPECIES_PAL(OGERPON_HEARTHFLAME_MASK_TERA, gMonPalette_OgerponHearthflameMaskTera), - // SPECIES_PAL(OGERPON_CORNERSTONE_MASK_TERA, gMonPalette_OgerponCornerstoneMaskTera), -#endif - SPECIES_PAL(EGG, gMonPalette_Egg), -}; - -const struct CompressedSpritePalette gMonPaletteTableFemale[NUM_SPECIES + 1] = -{ -#if P_GEN_4_POKEMON == TRUE - SPECIES_PAL(COMBEE, gMonPalette_CombeeF), - SPECIES_PAL(HIPPOPOTAS, gMonPalette_HippopotasF), - SPECIES_PAL(HIPPOWDON, gMonPalette_HippowdonF), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_PAL(UNFEZANT, gMonPalette_UnfezantF), - SPECIES_PAL(FRILLISH, gMonPalette_FrillishF), - SPECIES_PAL(JELLICENT, gMonPalette_JellicentF), -#endif -}; 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 f7ec441094..0000000000 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ /dev/null @@ -1,1578 +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(TAUROS_PALDEAN_COMBAT_BREED, gMonShinyPalette_TaurosPaldeanCombatBreed), - SPECIES_SHINY_PAL(TAUROS_PALDEAN_BLAZE_BREED, gMonShinyPalette_TaurosPaldeanBlazeBreed), - SPECIES_SHINY_PAL(TAUROS_PALDEAN_AQUA_BREED, gMonShinyPalette_TaurosPaldeanAquaBreed), - 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(WOOPER_PALDEAN, gMonShinyPalette_WooperPaldean), - 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_PAL(ALCREMIE_STRAWBERRY_VANILLA_CREAM, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_CREAM, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_MATCHA_CREAM, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_MINT_CREAM, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_LEMON_CREAM, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_SALTED_CREAM, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_RUBY_SWIRL, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, gMonShinyPalette_AlcremieStrawberry), - SPECIES_PAL(ALCREMIE_BERRY_VANILLA_CREAM, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_RUBY_CREAM, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_MATCHA_CREAM, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_MINT_CREAM, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_LEMON_CREAM, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_SALTED_CREAM, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_RUBY_SWIRL, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_CARAMEL_SWIRL, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_BERRY_RAINBOW_SWIRL, gMonShinyPalette_AlcremieBerry), - SPECIES_PAL(ALCREMIE_LOVE_VANILLA_CREAM, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_RUBY_CREAM, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_MATCHA_CREAM, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_MINT_CREAM, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_LEMON_CREAM, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_SALTED_CREAM, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_RUBY_SWIRL, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_CARAMEL_SWIRL, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_LOVE_RAINBOW_SWIRL, gMonShinyPalette_AlcremieLove), - SPECIES_PAL(ALCREMIE_STAR_VANILLA_CREAM, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_RUBY_CREAM, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_MATCHA_CREAM, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_MINT_CREAM, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_LEMON_CREAM, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_SALTED_CREAM, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_RUBY_SWIRL, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_CARAMEL_SWIRL, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_STAR_RAINBOW_SWIRL, gMonShinyPalette_AlcremieStar), - SPECIES_PAL(ALCREMIE_CLOVER_VANILLA_CREAM, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_RUBY_CREAM, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_MATCHA_CREAM, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_MINT_CREAM, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_LEMON_CREAM, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_SALTED_CREAM, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_RUBY_SWIRL, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_CARAMEL_SWIRL, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_CLOVER_RAINBOW_SWIRL, gMonShinyPalette_AlcremieClover), - SPECIES_PAL(ALCREMIE_FLOWER_VANILLA_CREAM, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_RUBY_CREAM, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_MATCHA_CREAM, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_MINT_CREAM, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_LEMON_CREAM, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_SALTED_CREAM, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_RUBY_SWIRL, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_CARAMEL_SWIRL, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_FLOWER_RAINBOW_SWIRL, gMonShinyPalette_AlcremieFlower), - SPECIES_PAL(ALCREMIE_RIBBON_VANILLA_CREAM, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_RUBY_CREAM, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_MATCHA_CREAM, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_MINT_CREAM, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_LEMON_CREAM, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_SALTED_CREAM, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_RUBY_SWIRL, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_CARAMEL_SWIRL, gMonShinyPalette_AlcremieRibbon), - SPECIES_PAL(ALCREMIE_RIBBON_RAINBOW_SWIRL, gMonShinyPalette_AlcremieRibbon), - 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(URSALUNA_BLOODMOON, gMonShinyPalette_UrsalunaBloodmoon), - 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(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 -#if P_GEN_9_POKEMON == TRUE - SPECIES_SHINY_PAL(SPRIGATITO, gMonShinyPalette_Sprigatito), - SPECIES_SHINY_PAL(FLORAGATO, gMonShinyPalette_Floragato), - SPECIES_SHINY_PAL(MEOWSCARADA, gMonShinyPalette_Meowscarada), - SPECIES_SHINY_PAL(FUECOCO, gMonShinyPalette_Fuecoco), - SPECIES_SHINY_PAL(CROCALOR, gMonShinyPalette_Crocalor), - SPECIES_SHINY_PAL(SKELEDIRGE, gMonShinyPalette_Skeledirge), - SPECIES_SHINY_PAL(QUAXLY, gMonShinyPalette_Quaxly), - SPECIES_SHINY_PAL(QUAXWELL, gMonShinyPalette_Quaxwell), - SPECIES_SHINY_PAL(QUAQUAVAL, gMonShinyPalette_Quaquaval), - SPECIES_SHINY_PAL(LECHONK, gMonShinyPalette_Lechonk), - SPECIES_SHINY_PAL(OINKOLOGNE_MALE, gMonShinyPalette_OinkologneMale), - SPECIES_SHINY_PAL(OINKOLOGNE_FEMALE, gMonShinyPalette_OinkologneFemale), - SPECIES_SHINY_PAL(TAROUNTULA, gMonShinyPalette_Tarountula), - SPECIES_SHINY_PAL(SPIDOPS, gMonShinyPalette_Spidops), - SPECIES_SHINY_PAL(NYMBLE, gMonShinyPalette_Nymble), - SPECIES_SHINY_PAL(LOKIX, gMonShinyPalette_Lokix), - SPECIES_SHINY_PAL(PAWMI, gMonShinyPalette_Pawmi), - SPECIES_SHINY_PAL(PAWMO, gMonShinyPalette_Pawmo), - SPECIES_SHINY_PAL(PAWMOT, gMonShinyPalette_Pawmot), - SPECIES_SHINY_PAL(TANDEMAUS, gMonShinyPalette_Tandemaus), - SPECIES_SHINY_PAL(MAUSHOLD_FAMILY_OF_THREE, gMonShinyPalette_Maushold), - SPECIES_SHINY_PAL(MAUSHOLD_FAMILY_OF_FOUR, gMonShinyPalette_Maushold), - SPECIES_SHINY_PAL(FIDOUGH, gMonShinyPalette_Fidough), - SPECIES_SHINY_PAL(DACHSBUN, gMonShinyPalette_Dachsbun), - SPECIES_SHINY_PAL(SMOLIV, gMonShinyPalette_Smoliv), - SPECIES_SHINY_PAL(DOLLIV, gMonShinyPalette_Dolliv), - SPECIES_SHINY_PAL(ARBOLIVA, gMonShinyPalette_Arboliva), - SPECIES_SHINY_PAL(SQUAWKABILLY_GREEN_PLUMAGE, gMonShinyPalette_SquawkabillyGreenPlumage), - SPECIES_SHINY_PAL(SQUAWKABILLY_BLUE_PLUMAGE, gMonShinyPalette_SquawkabillyBluePlumage), - SPECIES_SHINY_PAL(SQUAWKABILLY_YELLOW_PLUMAGE, gMonShinyPalette_SquawkabillyYellowPlumage), - SPECIES_SHINY_PAL(SQUAWKABILLY_WHITE_PLUMAGE, gMonShinyPalette_SquawkabillyWhitePlumage), - SPECIES_SHINY_PAL(NACLI, gMonShinyPalette_Nacli), - SPECIES_SHINY_PAL(NACLSTACK, gMonShinyPalette_Naclstack), - SPECIES_SHINY_PAL(GARGANACL, gMonShinyPalette_Garganacl), - SPECIES_SHINY_PAL(CHARCADET, gMonShinyPalette_Charcadet), - SPECIES_SHINY_PAL(ARMAROUGE, gMonShinyPalette_Armarouge), - SPECIES_SHINY_PAL(CERULEDGE, gMonShinyPalette_Ceruledge), - SPECIES_SHINY_PAL(TADBULB, gMonShinyPalette_Tadbulb), - SPECIES_SHINY_PAL(BELLIBOLT, gMonShinyPalette_Bellibolt), - SPECIES_SHINY_PAL(WATTREL, gMonShinyPalette_Wattrel), - SPECIES_SHINY_PAL(KILOWATTREL, gMonShinyPalette_Kilowattrel), - SPECIES_SHINY_PAL(MASCHIFF, gMonShinyPalette_Maschiff), - SPECIES_SHINY_PAL(MABOSSTIFF, gMonShinyPalette_Mabosstiff), - SPECIES_SHINY_PAL(SHROODLE, gMonShinyPalette_Shroodle), - SPECIES_SHINY_PAL(GRAFAIAI, gMonShinyPalette_Grafaiai), - SPECIES_SHINY_PAL(BRAMBLIN, gMonShinyPalette_Bramblin), - SPECIES_SHINY_PAL(BRAMBLEGHAST, gMonShinyPalette_Brambleghast), - SPECIES_SHINY_PAL(TOEDSCOOL, gMonShinyPalette_Toedscool), - SPECIES_SHINY_PAL(TOEDSCRUEL, gMonShinyPalette_Toedscruel), - SPECIES_SHINY_PAL(KLAWF, gMonShinyPalette_Klawf), - SPECIES_SHINY_PAL(CAPSAKID, gMonShinyPalette_Capsakid), - SPECIES_SHINY_PAL(SCOVILLAIN, gMonShinyPalette_Scovillain), - SPECIES_SHINY_PAL(RELLOR, gMonShinyPalette_Rellor), - SPECIES_SHINY_PAL(RABSCA, gMonShinyPalette_Rabsca), - SPECIES_SHINY_PAL(FLITTLE, gMonShinyPalette_Flittle), - SPECIES_SHINY_PAL(ESPATHRA, gMonShinyPalette_Espathra), - SPECIES_SHINY_PAL(TINKATINK, gMonShinyPalette_Tinkatink), - SPECIES_SHINY_PAL(TINKATUFF, gMonShinyPalette_Tinkatuff), - SPECIES_SHINY_PAL(TINKATON, gMonShinyPalette_Tinkaton), - SPECIES_SHINY_PAL(WIGLETT, gMonShinyPalette_Wiglett), - SPECIES_SHINY_PAL(WUGTRIO, gMonShinyPalette_Wugtrio), - SPECIES_SHINY_PAL(BOMBIRDIER, gMonShinyPalette_Bombirdier), - SPECIES_SHINY_PAL(FINIZEN, gMonShinyPalette_Finizen), - SPECIES_SHINY_PAL(PALAFIN_ZERO, gMonShinyPalette_PalafinZero), - SPECIES_SHINY_PAL(PALAFIN_HERO, gMonShinyPalette_PalafinHero), - SPECIES_SHINY_PAL(VAROOM, gMonShinyPalette_Varoom), - SPECIES_SHINY_PAL(REVAVROOM, gMonShinyPalette_Revavroom), - SPECIES_SHINY_PAL(CYCLIZAR, gMonShinyPalette_Cyclizar), - SPECIES_SHINY_PAL(ORTHWORM, gMonShinyPalette_Orthworm), - SPECIES_SHINY_PAL(GLIMMET, gMonShinyPalette_Glimmet), - SPECIES_SHINY_PAL(GLIMMORA, gMonShinyPalette_Glimmora), - SPECIES_SHINY_PAL(GREAVARD, gMonShinyPalette_Greavard), - SPECIES_SHINY_PAL(HOUNDSTONE, gMonShinyPalette_Houndstone), - SPECIES_SHINY_PAL(FLAMIGO, gMonShinyPalette_Flamigo), - SPECIES_SHINY_PAL(CETODDLE, gMonShinyPalette_Cetoddle), - SPECIES_SHINY_PAL(CETITAN, gMonShinyPalette_Cetitan), - SPECIES_SHINY_PAL(VELUZA, gMonShinyPalette_Veluza), - SPECIES_SHINY_PAL(DONDOZO, gMonShinyPalette_Dondozo), - SPECIES_SHINY_PAL(TATSUGIRI_CURLY, gMonShinyPalette_TatsugiriCurly), - SPECIES_SHINY_PAL(TATSUGIRI_DROOPY, gMonShinyPalette_TatsugiriDroopy), - SPECIES_SHINY_PAL(TATSUGIRI_STRETCHY, gMonShinyPalette_TatsugiriStretchy), - SPECIES_SHINY_PAL(ANNIHILAPE, gMonShinyPalette_Annihilape), - SPECIES_SHINY_PAL(CLODSIRE, gMonShinyPalette_Clodsire), - SPECIES_SHINY_PAL(FARIGIRAF, gMonShinyPalette_Farigiraf), - SPECIES_SHINY_PAL(DUDUNSPARCE_TWO_SEGMENT, gMonShinyPalette_Dudunsparce), - SPECIES_SHINY_PAL(DUDUNSPARCE_THREE_SEGMENT, gMonShinyPalette_Dudunsparce), - SPECIES_SHINY_PAL(KINGAMBIT, gMonShinyPalette_Kingambit), - SPECIES_SHINY_PAL(GREAT_TUSK, gMonShinyPalette_GreatTusk), - SPECIES_SHINY_PAL(SCREAM_TAIL, gMonShinyPalette_ScreamTail), - SPECIES_SHINY_PAL(BRUTE_BONNET, gMonShinyPalette_BruteBonnet), - SPECIES_SHINY_PAL(FLUTTER_MANE, gMonShinyPalette_FlutterMane), - SPECIES_SHINY_PAL(SLITHER_WING, gMonShinyPalette_SlitherWing), - SPECIES_SHINY_PAL(SANDY_SHOCKS, gMonShinyPalette_SandyShocks), - SPECIES_SHINY_PAL(IRON_TREADS, gMonShinyPalette_IronTreads), - SPECIES_SHINY_PAL(IRON_BUNDLE, gMonShinyPalette_IronBundle), - SPECIES_SHINY_PAL(IRON_HANDS, gMonShinyPalette_IronHands), - SPECIES_SHINY_PAL(IRON_JUGULIS, gMonShinyPalette_IronJugulis), - SPECIES_SHINY_PAL(IRON_MOTH, gMonShinyPalette_IronMoth), - SPECIES_SHINY_PAL(IRON_THORNS, gMonShinyPalette_IronThorns), - SPECIES_SHINY_PAL(FRIGIBAX, gMonShinyPalette_Frigibax), - SPECIES_SHINY_PAL(ARCTIBAX, gMonShinyPalette_Arctibax), - SPECIES_SHINY_PAL(BAXCALIBUR, gMonShinyPalette_Baxcalibur), - SPECIES_SHINY_PAL(GIMMIGHOUL_CHEST, gMonShinyPalette_GimmighoulChest), - SPECIES_SHINY_PAL(GIMMIGHOUL_ROAMING, gMonShinyPalette_GimmighoulRoaming), - SPECIES_SHINY_PAL(GHOLDENGO, gMonShinyPalette_Gholdengo), - SPECIES_SHINY_PAL(WO_CHIEN, gMonShinyPalette_WoChien), - SPECIES_SHINY_PAL(CHIEN_PAO, gMonShinyPalette_ChienPao), - SPECIES_SHINY_PAL(TING_LU, gMonShinyPalette_TingLu), - SPECIES_SHINY_PAL(CHI_YU, gMonShinyPalette_ChiYu), - SPECIES_SHINY_PAL(ROARING_MOON, gMonShinyPalette_RoaringMoon), - SPECIES_SHINY_PAL(IRON_VALIANT, gMonShinyPalette_IronValiant), - SPECIES_SHINY_PAL(KORAIDON, gMonShinyPalette_Koraidon), - SPECIES_SHINY_PAL(MIRAIDON, gMonShinyPalette_Miraidon), - SPECIES_SHINY_PAL(WALKING_WAKE, gMonShinyPalette_WalkingWake), - SPECIES_SHINY_PAL(IRON_LEAVES, gMonShinyPalette_IronLeaves), - SPECIES_SHINY_PAL(DIPPLIN, gMonShinyPalette_Dipplin), - SPECIES_SHINY_PAL(POLTCHAGEIST_COUNTERFEIT, gMonShinyPalette_Poltchageist), - SPECIES_SHINY_PAL(POLTCHAGEIST_ARTISAN, gMonShinyPalette_Poltchageist), - SPECIES_SHINY_PAL(SINISTCHA_UNREMARKABLE, gMonShinyPalette_Sinistcha), - SPECIES_SHINY_PAL(SINISTCHA_MASTERPIECE, gMonShinyPalette_Sinistcha), - SPECIES_SHINY_PAL(OKIDOGI, gMonShinyPalette_Okidogi), - SPECIES_SHINY_PAL(MUNKIDORI, gMonShinyPalette_Munkidori), - SPECIES_SHINY_PAL(FEZANDIPITI, gMonShinyPalette_Fezandipiti), - // SPECIES_SHINY_PAL(OGERPON_TEAL_MASK, gMonShinyPalette_OgerponTealMask), - // SPECIES_SHINY_PAL(OGERPON_WELLSPRING_MASK, gMonShinyPalette_OgerponWellspringMask), - // SPECIES_SHINY_PAL(OGERPON_HEARTHFLAME_MASK, gMonShinyPalette_OgerponHearthflameMask), - // SPECIES_SHINY_PAL(OGERPON_CORNERSTONE_MASK, gMonShinyPalette_OgerponCornerstoneMask), - // SPECIES_SHINY_PAL(OGERPON_TEAL_MASK_TERA, gMonShinyPalette_OgerponTealMaskTera), - // SPECIES_SHINY_PAL(OGERPON_WELLSPRING_MASK_TERA, gMonShinyPalette_OgerponWellspringMaskTera), - // SPECIES_SHINY_PAL(OGERPON_HEARTHFLAME_MASK_TERA, gMonShinyPalette_OgerponHearthflameMaskTera), - // SPECIES_SHINY_PAL(OGERPON_CORNERSTONE_MASK_TERA, gMonShinyPalette_OgerponCornerstoneMaskTera), -#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/abilities.h b/src/data/text/abilities.h index dce75dd912..dc1ad9d4e5 100644 --- a/src/data/text/abilities.h +++ b/src/data/text/abilities.h @@ -282,7 +282,7 @@ static const u8 sOrichalcumPulseDescription[] = _("Summons sunlight in battle.") static const u8 sHadronEngineDescription[] = _("Field becomes Electric."); static const u8 sOpportunistDescription[] = _("Copies foe's stat change."); static const u8 sCudChewDescription[] = _("Eats a used berry again."); -static const u8 sSharpnessDescription[] = _("Strengthens cutting moves."); +static const u8 sSharpnessDescription[] = _("Strengthens slicing moves."); static const u8 sSupremeOverlordDescription[] = _("Inherits fallen's strength."); static const u8 sCostarDescription[] = _("Copies ally's stat changes."); static const u8 sToxicDebrisDescription[] = _("Throws poison spikes if hit."); diff --git a/src/data/text/item_descriptions.h b/src/data/text/item_descriptions.h deleted file mode 100644 index 6e74ec173c..0000000000 --- a/src/data/text/item_descriptions.h +++ /dev/null @@ -1,3995 +0,0 @@ -static const u8 sDummyDesc[] = _( - "?????"); - -// Poké Balls -static const u8 sPokeBallDesc[] = _( - "A tool used for\n" - "catching wild\n" - "Pokémon."); - -static const u8 sGreatBallDesc[] = _( - "A good Ball with a\n" - "higher catch rate\n" - "than a Poké Ball."); - -static const u8 sUltraBallDesc[] = _( - "A better Ball with\n" - "a higher catch rate\n" - "than a Great Ball."); - -static const u8 sMasterBallDesc[] = _( - "The best Ball that\n" - "catches a Pokémon\n" - "without fail."); - -static const u8 sPremierBallDesc[] = _( - "A rare Ball made\n" - "in commemoration\n" - "of some event."); - -static const u8 sHealBallDesc[] = _( - "A remedial Ball\n" - "that restores\n" - "caught Pokémon."); - -static const u8 sNetBallDesc[] = _( - "A Ball that works\n" - "well on Water- and\n" - "Bug-type Pokémon."); - -static const u8 sNestBallDesc[] = _( - "A Ball that works\n" - "better on weaker\n" - "Pokémon."); - -static const u8 sDiveBallDesc[] = _( - "A Ball that works\n" - "better on Pokémon\n" - "on the ocean floor."); - -static const u8 sDuskBallDesc[] = _( - "Works well if\n" - "used in a\n" - "dark place."); - -static const u8 sTimerBallDesc[] = _( - "A Ball that gains\n" - "power in battles\n" - "taking many turns."); - -static const u8 sQuickBallDesc[] = _( - "Works well if\n" - "used on the\n" - "first turn."); - -static const u8 sRepeatBallDesc[] = _( - "A Ball that works\n" - "better on Pokémon\n" - "caught before."); - -static const u8 sLuxuryBallDesc[] = _( - "A cozy Ball that\n" - "makes Pokémon\n" - "more friendly."); - -static const u8 sLevelBallDesc[] = _( - "A Ball that works\n" - "well on lower\n" - "level Pokémon."); - -static const u8 sLureBallDesc[] = _( - "A Ball that works\n" - "well on fished\n" - "up Pokémon."); - -static const u8 sMoonBallDesc[] = _( - "A Ball that works\n" - "well on Moon\n" - "Stone users."); - -static const u8 sFriendBallDesc[] = _( - "A Ball that makes\n" - "a Pokémon friendly\n" - "when caught."); - -static const u8 sLoveBallDesc[] = _( - "Works well on\n" - "Pokémon of the\n" - "opposite gender."); - -static const u8 sFastBallDesc[] = _( - "Works well on\n" - "very fast\n" - "Pokémon."); - -static const u8 sHeavyBallDesc[] = _( - "Works well on\n" - "very heavy\n" - "Pokémon."); - -static const u8 sDreamBallDesc[] = _( -#if B_DREAM_BALL_MODIFIER >= GEN_8 - "A Ball that works\n" - "well on sleeping\n" - "Pokémon."); -#else - "A Poké Ball used in\n" - "the Entree Forest."); -#endif - -static const u8 sSafariBallDesc[] = _( - "A special Ball that\n" - "is used only in the\n" - "Safari Zone."); - -static const u8 sSportBallDesc[] = _( - "A special Ball used\n" - "in the Bug-Catching\n" - "Contest."); - -static const u8 sParkBallDesc[] = _( - "A special Ball for\n" - "the Pal Park."); - -static const u8 sBeastBallDesc[] = _( - "A Ball designed to\n" - "catch Ultra Beasts."); - -static const u8 sCherishBallDesc[] = _( - "A rare Ball made\n" - "in commemoration\n" - "of some event."); - -// Medicine -static const u8 sPotionDesc[] = _( - "Restores the HP of\n" - "a Pokémon by\n" - "20 points."); - -static const u8 sSuperPotionDesc[] = _( - "Restores the HP of\n" - "a Pokémon by\n" -#if I_HEALTH_RECOVERY >= GEN_7 - "60 points."); -#else - "50 points."); -#endif - -static const u8 sHyperPotionDesc[] = _( - "Restores the HP of\n" - "a Pokémon by\n" -#if I_HEALTH_RECOVERY >= GEN_7 - "120 points."); -#else - "200 points."); -#endif - -static const u8 sMaxPotionDesc[] = _( - "Fully restores the\n" - "HP of a Pokémon."); - -static const u8 sFullRestoreDesc[] = _( - "Fully restores the\n" - "HP and status of a\n" - "Pokémon."); - -static const u8 sReviveDesc[] = _( - "Revives a fainted\n" - "Pokémon with half\n" - "its HP."); - -static const u8 sMaxReviveDesc[] = _( - "Revives a fainted\n" - "Pokémon with all\n" - "its HP."); - -static const u8 sFreshWaterDesc[] = _( - "A mineral water\n" - "that restores HP\n" -#if I_HEALTH_RECOVERY >= GEN_7 - "by 30 points."); -#else - "by 50 points."); -#endif - -static const u8 sSodaPopDesc[] = _( - "A fizzy soda drink\n" - "that restores HP\n" -#if I_HEALTH_RECOVERY >= GEN_7 - "by 50 points."); -#else - "by 60 points."); -#endif - -static const u8 sLemonadeDesc[] = _( - "A very sweet drink\n" - "that restores HP\n" -#if I_HEALTH_RECOVERY >= GEN_7 - "by 70 points."); -#else - "by 80 points."); -#endif - -static const u8 sMoomooMilkDesc[] = _( - "A nutritious milk\n" - "that restores HP\n" - "by 100 points."); - -static const u8 sEnergyPowderDesc[] = _( - "A bitter powder\n" - "that restores HP\n" -#if I_HEALTH_RECOVERY >= GEN_7 - "by 60 points."); -#else - "by 50 points."); -#endif - -static const u8 sEnergyRootDesc[] = _( - "A bitter root\n" - "that restores HP\n" -#if I_HEALTH_RECOVERY >= GEN_7 - "by 120 points."); -#else - "by 200 points."); -#endif - -static const u8 sHealPowderDesc[] = _( - "A bitter powder\n" - "that heals all\n" - "status problems."); - -static const u8 sRevivalHerbDesc[] = _( - "A very bitter herb\n" - "that revives a\n" - "fainted Pokémon."); - -static const u8 sAntidoteDesc[] = _( - "Heals a poisoned\n" - "Pokémon."); - -static const u8 sParalyzeHealDesc[] = _( - "Heals a paralyzed\n" - "Pokémon."); - -static const u8 sBurnHealDesc[] = _( - "Heals Pokémon\n" - "of a burn."); - -static const u8 sIceHealDesc[] = _( - "Defrosts a frozen\n" - "Pokémon."); - -static const u8 sAwakeningDesc[] = _( - "Awakens a sleeping\n" - "Pokémon."); - -static const u8 sFullHealDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -static const u8 sEtherDesc[] = _( - "Restores the PP\n" - "of a selected move\n" - "by 10."); - -static const u8 sMaxEtherDesc[] = _( - "Fully restores the\n" - "PP of a selected\n" - "move."); - -static const u8 sElixirDesc[] = _( - "Restores the PP\n" - "of all moves by 10."); - -static const u8 sMaxElixirDesc[] = _( - "Fully restores the\n" - "PP of a Pokémon's\n" - "moves."); - -static const u8 sBerryJuiceDesc[] = _( - "A 100% pure juice\n" - "that restores HP\n" - "by 20 points."); - -static const u8 sSacredAshDesc[] = _( - "Fully revives and\n" - "restores all\n" - "fainted Pokémon."); - -static const u8 sSweetHeartDesc[] = _( - "A sweet chocolate\n" - "that restores HP\n" - "by 20 points."); - -static const u8 sMaxHoneyDesc[] = _( - "Revives a fainted\n" - "Pokémon with all\n" - "its HP."); - -static const u8 sPewterCrunchiesDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -static const u8 sRageCandyBarDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -static const u8 sLavaCookieDesc[] = _( - "A local specialty\n" - "that heals all\n" - "status problems."); - -static const u8 sOldGateauDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -static const u8 sCasteliaconeDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -static const u8 sLumioseGaletteDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -static const u8 sShalourSableDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -static const u8 sBigMalasadaDesc[] = _( - "Heals all the\n" - "status problems of\n" - "one Pokémon."); - -// Vitamins -static const u8 sHPUpDesc[] = _( - "Raises the base HP\n" - "of one Pokémon."); - -static const u8 sProteinDesc[] = _( - "Raises the base\n" - "Attack stat of one\n" - "Pokémon."); - -static const u8 sIronDesc[] = _( - "Raises the base\n" - "Defense stat of\n" - "one Pokémon."); - -static const u8 sCalciumDesc[] = _( - "Raises the base\n" - "Sp. Atk stat of one\n" - "Pokémon."); - -static const u8 sZincDesc[] = _( - "Raises the base\n" - "Sp. Def stat of one\n" - "Pokémon."); - -static const u8 sCarbosDesc[] = _( - "Raises the base\n" - "Speed stat of one\n" - "Pokémon."); - -static const u8 sPPUpDesc[] = _( - "Raises the maximum\n" - "PP of a selected\n" - "move."); - -static const u8 sPPMaxDesc[] = _( - "Raises the PP of a\n" - "move to its maximum\n" - "points."); - -// EV Feathers -static const u8 sHealthFeatherDesc[] = _( - "An item that raises\n" - "the base HP of\n" - "a Pokémon."); - -static const u8 sMuscleFeatherDesc[] = _( - "An item that raises\n" - "the base Attack of\n" - "a Pokémon."); - -static const u8 sResistFeatherDesc[] = _( - "An item that raises\n" - "the base Defense\n" - "of a Pokémon."); - -static const u8 sGeniusFeatherDesc[] = _( - "An item that raises\n" - "the base Sp. Atk.\n" - "of a Pokémon."); - -static const u8 sCleverFeatherDesc[] = _( - "An item that raises\n" - "the base Sp. Def.\n" - "of a Pokémon."); - -static const u8 sSwiftFeatherDesc[] = _( - "An item that raises\n" - "the base Speed of\n" - "a Pokémon."); - -// Ability Modifiers -static const u8 sAbilityCapsuleDesc[] = _( - "Switches a Poké-\n" - "mon's ability."); - -static const u8 sAbilityPatchDesc[] = _( - "Turns the ability\n" - "of a Pokémon into\n" - "a rare ability."); - -// Mints -static const u8 sLonelyMintDesc[] = _( - "Can be smelled. It\n" - "ups Attack, but\n" - "reduces Defense."); - -static const u8 sAdamantMintDesc[] = _( - "Can be smelled. It\n" - "ups Attack, but\n" - "reduces Sp. Atk."); - -static const u8 sNaughtyMintDesc[] = _( - "Can be smelled. It\n" - "ups Attack, but\n" - "reduces Sp. Def."); - -static const u8 sBraveMintDesc[] = _( - "Can be smelled. It\n" - "ups Attack, but\n" - "reduces Speed."); - -static const u8 sBoldMintDesc[] = _( - "Can be smelled. It\n" - "ups Defense, but\n" - "reduces Attack."); - -static const u8 sImpishMintDesc[] = _( - "Can be smelled. It\n" - "ups Defense, but\n" - "reduces Sp. Atk."); - -static const u8 sLaxMintDesc[] = _( - "Can be smelled. It\n" - "ups Defense, but\n" - "reduces Sp. Def."); - -static const u8 sRelaxedMintDesc[] = _( - "Can be smelled. It\n" - "ups Defense, but\n" - "reduces Speed."); - -static const u8 sModestMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Atk, but\n" - "reduces Attack."); - -static const u8 sMildMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Atk, but\n" - "reduces Defense."); - -static const u8 sRashMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Atk, but\n" - "reduces Sp. Def."); - -static const u8 sQuietMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Atk, but\n" - "reduces Speed."); - -static const u8 sCalmMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Def, but\n" - "reduces Attack."); - -static const u8 sGentleMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Def, but\n" - "reduces Defense."); - -static const u8 sCarefulMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Def, but\n" - "reduces Sp. Atk."); - -static const u8 sSassyMintDesc[] = _( - "Can be smelled. It\n" - "ups Sp. Def, but\n" - "reduces Speed."); - -static const u8 sTimidMintDesc[] = _( - "Can be smelled. It\n" - "ups Speed, but\n" - "reduces Attack."); - -static const u8 sHastyMintDesc[] = _( - "Can be smelled. It\n" - "ups Speed, but\n" - "reduces Defense."); - -static const u8 sJollyMintDesc[] = _( - "Can be smelled. It\n" - "ups Speed, but\n" - "reduces Sp. Atk."); - -static const u8 sNaiveMintDesc[] = _( - "Can be smelled. It\n" - "ups Speed, but\n" - "reduces Sp. Def."); - -static const u8 sSeriousMintDesc[] = _( - "Can be smelled. It\n" - "ups Speed, but\n" - "reduces Attack."); - -// Candy -static const u8 sRareCandyDesc[] = _( - "Raises the level\n" - "of a Pokémon by\n" - "one."); - -static const u8 sExpCandyXSDesc[] = _( - "Gives a very small\n" - "amount of Exp. to\n" - "a single Pokémon."); - -static const u8 sExpCandySDesc[] = _( - "Gives a small\n" - "amount of Exp. to\n" - "a single Pokémon."); - -static const u8 sExpCandyMDesc[] = _( - "Gives a moderate\n" - "amount of Exp. to\n" - "a single Pokémon."); - -static const u8 sExpCandyLDesc[] = _( - "Gives a large\n" - "amount of Exp. to\n" - "a single Pokémon."); - -static const u8 sExpCandyXLDesc[] = _( - "Gives a very large\n" - "amount of Exp. to\n" - "a single Pokémon."); - -static const u8 sDynamaxCandyDesc[] = _( - "Raises the Dynamax\n" - "Level of a single\n" - "Pokémon by one."); - -// Medicinal Flutes -static const u8 sBlueFluteDesc[] = _( - "A glass flute that\n" - "awakens sleeping\n" - "Pokémon."); - -static const u8 sYellowFluteDesc[] = _( - "A glass flute that\n" - "snaps Pokémon\n" - "out of confusion."); - -static const u8 sRedFluteDesc[] = _( - "A glass flute that\n" - "snaps Pokémon\n" - "out of attraction."); - -// Encounter-modifying Flutes -static const u8 sBlackFluteDesc[] = _( - "A glass flute that\n" - "keeps away wild\n" - "Pokémon."); - -static const u8 sWhiteFluteDesc[] = _( - "A glass flute that\n" - "lures wild Pokémon."); - -// Encounter Modifiers -static const u8 sRepelDesc[] = _( - "Repels weak wild\n" - "Pokémon for 100\n" - "steps."); - -static const u8 sSuperRepelDesc[] = _( - "Repels weak wild\n" - "Pokémon for 200\n" - "steps."); - -static const u8 sMaxRepelDesc[] = _( - "Repels weak wild\n" - "Pokémon for 250\n" - "steps."); - -static const u8 sLureDesc[] = _( - "Makes Pokémon more\n" - "likely to appear\n" - "for 100 steps."); - -static const u8 sSuperLureDesc[] = _( - "Makes Pokémon more\n" - "likely to appear\n" - "for 200 steps."); - -static const u8 sMaxLureDesc[] = _( - "Makes Pokémon more\n" - "likely to appear\n" - "for 250 steps."); - -static const u8 sEscapeRopeDesc[] = _( - "Use to escape\n" - "instantly from a\n" - "cave or a dungeon."); - -// Battle items -static const u8 sXAttackDesc[] = _( -#if B_X_ITEMS_BUFF >= GEN_7 - "Sharply raises stat\n" - "Attack during\n" - "one battle."); -#else - "Raises the stat\n" - "Attack during one\n" - "battle."); -#endif - -static const u8 sXDefenseDesc[] = _( -#if B_X_ITEMS_BUFF >= GEN_7 - "Sharply raises stat\n" - "Defense during\n" - "one battle."); -#else - "Raises the stat\n" - "Defense during one\n" - "battle."); -#endif - -static const u8 sXSpAtkDesc[] = _( -#if B_X_ITEMS_BUFF >= GEN_7 - "Sharply raises stat\n" - "Sp. Atk during\n" - "one battle."); -#else - "Raises the stat\n" - "Sp. Atk during one\n" - "battle."); -#endif - -static const u8 sXSpDefDesc[] = _( -#if B_X_ITEMS_BUFF >= GEN_7 - "Sharply raises stat\n" - "Sp. Def during\n" - "one battle."); -#else - "Raises the stat\n" - "Sp. Def during one\n" - "battle."); -#endif - -static const u8 sXSpeedDesc[] = _( -#if B_X_ITEMS_BUFF >= GEN_7 - "Sharply raises stat\n" - "Speed during\n" - "one battle."); -#else - "Raises the stat\n" - "Speed during one\n" - "battle."); -#endif - -static const u8 sXAccuracyDesc[] = _( -#if B_X_ITEMS_BUFF >= GEN_7 - "Sharply raises move\n" - "accuracy during\n" - "one battle."); -#else - "Raises accuracy\n" - "of attack moves\n" - "during one battle."); -#endif - -static const u8 sDireHitDesc[] = _( - "Raises the\n" - "critical-hit ratio\n" - "during one battle."); - -static const u8 sGuardSpecDesc[] = _( - "Prevents stat\n" - "reduction when\n" - "used in battle."); - -// Escape Items -static const u8 sPokeDollDesc[] = _( - "Use to flee from\n" - "any battle with\n" - "a wild Pokémon."); - -static const u8 sFluffyTailDesc[] = _( - "Use to flee from\n" - "any battle with\n" - "a wild Pokémon."); - -static const u8 sPokeToyDesc[] = _( - "Use to flee from\n" - "any battle with\n" - "a wild Pokémon."); - -static const u8 sMaxMushroomsDesc[] = _( - "Raises every stat\n" - "during one battle\n" - "by one stage."); - -// Treasures -static const u8 sBottleCapDesc[] = _( - "A beautiful bottle\n" - "cap that gives off\n" - "a silver gleam."); - -static const u8 sGoldBottleCapDesc[] = _( - "A beautiful bottle\n" - "cap that gives off\n" - "a golden gleam."); - -static const u8 sNuggetDesc[] = _( - "A nugget of pure\n" - "gold. Can be sold at\n" - "a high price."); - -static const u8 sBigNuggetDesc[] = _( - "A big nugget made\n" - "of gold, sellable\n" - "at a high price."); - -static const u8 sTinyMushroomDesc[] = _( - "A plain mushroom\n" - "that would sell\n" - "at a cheap price."); - -static const u8 sBigMushroomDesc[] = _( - "A rare mushroom\n" - "that would sell at a\n" - "high price."); - -static const u8 sBalmMushroomDesc[] = _( - "A rare mushroom\n" - "that would sell at a\n" - "high price."); - -static const u8 sPearlDesc[] = _( - "A pretty pearl\n" - "that would sell at a\n" - "cheap price."); - -static const u8 sBigPearlDesc[] = _( - "A lovely large pearl\n" - "that would sell at a\n" - "high price."); - -static const u8 sPearlStringDesc[] = _( - "Very large pearls\n" - "that would sell at a\n" - "high price."); - -static const u8 sStardustDesc[] = _( - "Beautiful red sand.\n" - "Can be sold at a\n" - "high price."); - -static const u8 sStarPieceDesc[] = _( - "A red gem shard.\n" - "It would sell for a\n" - "very high price."); - -static const u8 sCometShardDesc[] = _( - "A comet's shard.\n" - "It would sell for a\n" - "high price."); - -static const u8 sShoalSaltDesc[] = _( - "Salt obtained from\n" - "deep inside the\n" - "Shoal Cave."); - -static const u8 sShoalShellDesc[] = _( - "A seashell found\n" - "deep inside the\n" - "Shoal Cave."); - -static const u8 sRedShardDesc[] = _( - "A shard from an\n" - "ancient item. Can\n" - "be sold cheaply."); - -static const u8 sBlueShardDesc[] = _( - "A shard from an\n" - "ancient item. Can\n" - "be sold cheaply."); - -static const u8 sYellowShardDesc[] = _( - "A shard from an\n" - "ancient item. Can\n" - "be sold cheaply."); - -static const u8 sGreenShardDesc[] = _( - "A shard from an\n" - "ancient item. Can\n" - "be sold cheaply."); - -static const u8 sHeartScaleDesc[] = _( - "A lovely scale.\n" - "It is coveted by\n" - "collectors."); - -static const u8 sHoneyDesc[] = _( - "Sweet honey that\n" - "attracts wild\n" - "Pokémon when used."); - -static const u8 sRareBoneDesc[] = _( - "A very rare bone.\n" - "It can be sold at\n" - "a high price."); - -static const u8 sOddKeystoneDesc[] = _( - "Voices can be heard\n" - "from this odd stone\n" - "occasionally."); - -static const u8 sPrettyFeatherDesc[] = _( - "A beautiful yet\n" - "plain feather that\n" - "does nothing."); - -static const u8 sRelicCopperDesc[] = _( - "A copper coin used\n" - "long ago. It sells\n" - "at a high price."); - -static const u8 sRelicSilverDesc[] = _( - "A silver coin used\n" - "long ago. It sells\n" - "at a high price."); - -static const u8 sRelicGoldDesc[] = _( - "A gold coin used\n" - "long ago. It sells\n" - "at a high price."); - -static const u8 sRelicVaseDesc[] = _( - "A vase made long\n" - "ago. It sells at\n" - "a high price."); - -static const u8 sRelicBandDesc[] = _( - "An old bracelet.\n" - "It sells at a\n" - "high price."); - -static const u8 sRelicStatueDesc[] = _( - "An old statue.\n" - "It sells at a\n" - "high price."); - -static const u8 sRelicCrownDesc[] = _( - "An old crown.\n" - "It sells at a\n" - "high price."); - -static const u8 sStrangeSouvenirDesc[] = _( - "An ornament that\n" - "depicts a Pokémon\n" - "from Alola."); - -// Fossils -static const u8 sHelixFossilDesc[] = _( - "A piece of an\n" - "ancient marine\n" - "Pokémon's seashell."); - -static const u8 sDomeFossilDesc[] = _( - "A piece of an\n" - "ancient marine\n" - "Pokémon's shell."); - -static const u8 sOldAmberDesc[] = _( - "A stone containing\n" - "the genes of an\n" - "ancient Pokémon."); - -static const u8 sRootFossilDesc[] = _( - "A fossil of an\n" - "ancient, seafloor-\n" - "dwelling Pokémon."); - -static const u8 sClawFossilDesc[] = _( - "A fossil of an\n" - "ancient, seafloor-\n" - "dwelling Pokémon."); - -static const u8 sArmorFossilDesc[] = _( - "A piece of a\n" - "prehistoric Poké-\n" - "mon's head."); - -static const u8 sSkullFossilDesc[] = _( - "A piece of a\n" - "prehistoric Poké-\n" - "mon's head."); - -static const u8 sCoverFossilDesc[] = _( - "A piece of a\n" - "prehistoric Poké-\n" - "mon's back."); - -static const u8 sPlumeFossilDesc[] = _( - "A piece of a\n" - "prehistoric Poké-\n" - "mon's wing."); - -static const u8 sJawFossilDesc[] = _( - "A piece of a prehis-\n" - "toric Pokémon's\n" - "large jaw."); - -static const u8 sSailFossilDesc[] = _( - "A piece of a prehis-\n" - "toric Pokémon's\n" - "skin sail."); - -static const u8 sFossilizedBirdDesc[] = _( - "A fossil of an\n" - "ancient, sky-\n" - "soaring Pokémon."); - -static const u8 sFossilizedFishDesc[] = _( - "A fossil of an\n" - "ancient, sea-\n" - "dwelling Pokémon."); - -static const u8 sFossilizedDrakeDesc[] = _( - "A fossil of an\n" - "ancient, land-\n" - "roaming Pokémon."); - -static const u8 sFossilizedDinoDesc[] = _( - "A fossil of an\n" - "ancient, sea-\n" - "dwelling Pokémon."); - -// Mulch -static const u8 sGrowthMulchDesc[] = _( - "A fertilizer that\n" - "accelerates the\n" - "growth of Berries."); - -static const u8 sDampMulchDesc[] = _( - "A fertilizer that\n" - "decelerates the\n" - "growth of Berries."); - -static const u8 sStableMulchDesc[] = _( - "A fertilizer that\n" - "ups the life time\n" - "of Berry trees."); - -static const u8 sGooeyMulchDesc[] = _( - "A fertilizer that\n" - "makes more Berries\n" - "regrow after fall."); - -static const u8 sRichMulchDesc[] = _( - "A fertilizer that\n" - "ups the number of\n" - "Berries harvested."); - -static const u8 sSurpriseMulchDesc[] = _( - "A fertilizer that\n" - "ups the chance of\n" - "Berry mutations."); - -static const u8 sBoostMulchDesc[] = _( - "A fertilizer that\n" - "ups the dry speed\n" - "of soft soil."); - -static const u8 sAmazeMulchDesc[] = _( - "A fertilizer Rich\n" - "Surprising and\n" - "Boosting as well."); - -// Apricorns -static const u8 sRedApricornDesc[] = _( - "A red apricorn.\n" - "It assails your\n" - "nostrils."); - -static const u8 sBlueApricornDesc[] = _( - "A blue apricorn.\n" - "It smells a bit\n" - "like grass."); - -static const u8 sYellowApricornDesc[] = _( - "A yellow apricorn.\n" - "It has an invigor-\n" - "ating scent."); - -static const u8 sGreenApricornDesc[] = _( - "A green apricorn.\n" - "It has a strange,\n" - "aromatic scent."); - -static const u8 sPinkApricornDesc[] = _( - "A pink apricorn.\n" - "It has a nice,\n" - "sweet scent."); - -static const u8 sWhiteApricornDesc[] = _( - "A white apricorn.\n" - "It doesn't smell\n" - "like anything."); - -static const u8 sBlackApricornDesc[] = _( - "A black apricorn.\n" - "It has an inde-\n" - "scribable scent."); - -static const u8 sWishingPieceDesc[] = _( - "Throw into a\n" - "{PKMN} Den to attract\n" - "Dynamax Pokémon."); - -static const u8 sGalaricaTwigDesc[] = _( - "A twig from a tree\n" - "in Galar called\n" - "Galarica."); - -static const u8 sArmoriteOreDesc[] = _( - "A rare ore. Can be\n" - "found in the Isle\n" - "of Armor at Galar."); - -static const u8 sDyniteOreDesc[] = _( - "A mysterious ore.\n" - "It can be found in\n" - "Galar's Max Lair."); - -// Mail -static const u8 sOrangeMailDesc[] = _( - "A Zigzagoon-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sHarborMailDesc[] = _( - "A Wingull-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sGlitterMailDesc[] = _( - "A Pikachu-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sMechMailDesc[] = _( - "A Magnemite-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sWoodMailDesc[] = _( - "A Slakoth-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sWaveMailDesc[] = _( - "A Wailmer-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sBeadMailDesc[] = _( - "Mail featuring a\n" - "sketch of the\n" - "holding Pokémon."); - -static const u8 sShadowMailDesc[] = _( - "A Duskull-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sTropicMailDesc[] = _( - "A Bellossom-print\n" - "Mail to be held by\n" - "a Pokémon."); - -static const u8 sDreamMailDesc[] = _( - "Mail featuring a\n" - "sketch of the\n" - "holding Pokémon."); - -static const u8 sFabMailDesc[] = _( - "A gorgeous-print\n" - "Mail to be held\n" - "by a Pokémon."); - -static const u8 sRetroMailDesc[] = _( - "Mail featuring the\n" - "drawings of three\n" - "Pokémon."); - -// Evolution Items -static const u8 sFireStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sWaterStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sThunderStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sLeafStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sIceStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sSunStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sMoonStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sShinyStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sDuskStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sDawnStoneDesc[] = _( - "Makes certain\n" - "species of Pokémon\n" - "evolve."); - -static const u8 sSweetAppleDesc[] = _( - "A very sweet apple\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sTartAppleDesc[] = _( - "A very tart apple\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sCrackedPotDesc[] = _( - "A cracked teapot\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sChippedPotDesc[] = _( - "A chipped teapot\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sGalaricaCuffDesc[] = _( - "A cuff from Galar\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sGalaricaWreathDesc[] = _( - "A wreath made in\n" - "Galar. Makes some\n" - "Pokémon evolve."); - -static const u8 sDragonScaleDesc[] = _( - "A strange scale\n" - "held by Dragon-\n" - "type Pokémon."); - -static const u8 sUpgradeDesc[] = _( - "A peculiar box made\n" - "by Silph Co."); - -static const u8 sProtectorDesc[] = _( - "Loved by a certain\n" - "Pokémon. It's stiff\n" - "and heavy."); - -static const u8 sElectirizerDesc[] = _( - "Loved by a certain\n" - "Pokémon. It's full\n" - "of electric energy."); - -static const u8 sMagmarizerDesc[] = _( - "Loved by a certain\n" - "Pokémon. It's full\n" - "of magma energy."); - -static const u8 sDubiousDiscDesc[] = _( - "A transparent device\n" - "overflowing with\n" - "dubious data."); - -static const u8 sReaperClothDesc[] = _( - "Loved by a certain\n" - "Pokémon. Imbued with\n" - "spiritual energy."); - -static const u8 sPrismScaleDesc[] = _( - "A mysterious scale\n" - "that evolves certain\n" - "Pokémon. It shines."); - -static const u8 sWhippedDreamDesc[] = _( - "A soft and sweet\n" - "treat loved by\n" - "a certain Pokémon."); - -static const u8 sSachetDesc[] = _( - "A sachet filled with\n" - "perfumes loved by\n" - "a certain Pokémon."); - -static const u8 sOvalStoneDesc[] = _( - "Makes a certain\n" - "Pokémon evolve. It's\n" - "shaped like an egg."); - -static const u8 sStrawberrySweetDesc[] = _( - "Strawberry-shaped\n" - "sweet loved by\n" - "Milcery."); - -static const u8 sLoveSweetDesc[] = _( - "A heart-shaped\n" - "sweet loved by\n" - "Milcery."); - -static const u8 sBerrySweetDesc[] = _( - "A berry-shaped\n" - "sweet loved by\n" - "Milcery."); - -static const u8 sCloverSweetDesc[] = _( - "A clover-shaped\n" - "sweet loved by\n" - "Milcery."); - -static const u8 sFlowerSweetDesc[] = _( - "A flower-shaped\n" - "sweet loved by\n" - "Milcery."); - -static const u8 sStarSweetDesc[] = _( - "A star-shaped\n" - "sweet loved by\n" - "Milcery."); - -static const u8 sRibbonSweetDesc[] = _( - "A ribbon-shaped\n" - "sweet loved by\n" - "Milcery."); - -static const u8 sEverstoneDesc[] = _( - "A wondrous hold\n" - "item that prevents\n" - "evolution."); - -static const u8 sBlackAuguriteDesc[] = _( - "A black stone that\n" - "makes some Pokémon\n" - "evolve.");; - -static const u8 sLinkingCordDesc[] = _( - "A mysterious string\n" - "that makes some\n" - "Pokémon evolve."); - -static const u8 sPeatBlockDesc[] = _( - "A block of material\n" - "that makes some\n" - "Pokémon evolve."); - -// Nectars -static const u8 sRedNectarDesc[] = _( - "Flower nectar that\n" - "changes the form\n" - "of certain Pokémon."); - -static const u8 sYellowNectarDesc[] = _( - "Flower nectar that\n" - "changes the form\n" - "of certain Pokémon."); - -static const u8 sPinkNectarDesc[] = _( - "Flower nectar that\n" - "changes the form\n" - "of certain Pokémon."); - -static const u8 sPurpleNectarDesc[] = _( - "Flower nectar that\n" - "changes the form\n" - "of certain Pokémon."); - -// Plates -static const u8 sFlamePlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Fire-type moves."); - -static const u8 sSplashPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Water-type moves."); - -static const u8 sZapPlateDesc[] = _( - "A tablet that ups\n" - "the power of Elec-\n" - "tric-type moves."); - -static const u8 sMeadowPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Grass-type moves."); - -static const u8 sIciclePlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Ice-type moves."); - -static const u8 sFistPlateDesc[] = _( - "A tablet that ups\n" - "the power of Fight-\n" - "ing-type moves."); - -static const u8 sToxicPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Poison-type moves."); - -static const u8 sEarthPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Ground-type moves."); - -static const u8 sSkyPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Flying-type moves."); - -static const u8 sMindPlateDesc[] = _( - "A tablet that ups\n" - "the power of Psy\n" - "chic-type moves."); - -static const u8 sInsectPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Bug-type moves."); - -static const u8 sStonePlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Rock-type moves."); - -static const u8 sSpookyPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Ghost-type moves."); - -static const u8 sDracoPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Dragon-type moves."); - -static const u8 sDreadPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Dark-type moves."); - -static const u8 sIronPlateDesc[] = _( - "A tablet that ups\n" - "the power of\n" - "Steel-type moves."); - -static const u8 sPixiePlateDesc[] = _( - "A stone tablet that\n" - "boosts the power of\n" - "Fairy-type moves."); - -// Drives -static const u8 sDouseDriveDesc[] = _( - "Changes Genesect's\n" - "Techno Blast to\n" - "Water-type."); - -static const u8 sShockDriveDesc[] = _( - "Changes Genesect's\n" - "Techno Blast to\n" - "Electric-type."); - -static const u8 sBurnDriveDesc[] = _( - "Changes Genesect's\n" - "Techno Blast to\n" - "Fire-type."); - -static const u8 sChillDriveDesc[] = _( - "Changes Genesect's\n" - "Techno Blast to\n" - "Ice-type."); - -// Memories -static const u8 sFireMemoryDesc[] = _( - "A disc with Fire\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sWaterMemoryDesc[] = _( - "A disc with Water\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sElectricMemoryDesc[] = _( - "A disc with Electric\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sGrassMemoryDesc[] = _( - "A disc with Grass\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sIceMemoryDesc[] = _( - "A disc with Ice\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sFightingMemoryDesc[] = _( - "A disc with Fighting\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sPoisonMemoryDesc[] = _( - "A disc with Poison\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sGroundMemoryDesc[] = _( - "A disc with Ground\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sFlyingMemoryDesc[] = _( - "A disc with Flying\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sPsychicMemoryDesc[] = _( - "A disc with Psychic\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sBugMemoryDesc[] = _( - "A disc with Bug\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sRockMemoryDesc[] = _( - "A disc with Rock\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sGhostMemoryDesc[] = _( - "A disc with Ghost\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sDragonMemoryDesc[] = _( - "A disc with Dragon\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sDarkMemoryDesc[] = _( - "A disc with Dark\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sSteelMemoryDesc[] = _( - "A disc with Steel\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sFairyMemoryDesc[] = _( - "A disc with Fairy\n" - "type data. It swaps\n" - "Silvally's type."); - -static const u8 sRustedSwordDesc[] = _( - "A rusty sword. A\n" - "hero used it to\n" - "halt a disaster."); - -static const u8 sRustedShieldDesc[] = _( - "A rusty shield. A\n" - "hero used it to\n" - "halt a disaster."); - -// Colored Orbs -static const u8 sRedOrbDesc[] = _( - "A red, glowing orb\n" - "said to contain an\n" - "ancient power."); - -static const u8 sBlueOrbDesc[] = _( - "A blue, glowing orb\n" - "said to contain an\n" - "ancient power."); - -// Mega Stones -static const u8 sVenusauriteDesc[] = _( - "This stone enables\n" - "Venusaur to Mega\n" - "Evolve in battle."); - -static const u8 sCharizarditeDesc[] = _( - "This stone enables\n" - "Charizard to Mega\n" - "Evolve in battle."); - -static const u8 sBlastoisiniteDesc[] = _( - "This stone enables\n" - "Blastoise to Mega\n" - "Evolve in battle."); - -static const u8 sBeedrilliteDesc[] = _( - "This stone enables\n" - "Beedrill to Mega\n" - "Evolve in battle."); - -static const u8 sPidgeotiteDesc[] = _( - "This stone enables\n" - "Pidgeot to Mega\n" - "Evolve in battle."); - -static const u8 sAlakaziteDesc[] = _( - "This stone enables\n" - "Alakazam to Mega\n" - "Evolve in battle."); - -static const u8 sSlowbroniteDesc[] = _( - "This stone enables\n" - "Slowbro to Mega\n" - "Evolve in battle."); - -static const u8 sGengariteDesc[] = _( - "This stone enables\n" - "Gengar to Mega\n" - "Evolve in battle."); - -static const u8 sKangaskhaniteDesc[] = _( - "This stone enables\n" - "Kangaskhan to Mega\n" - "Evolve in battle."); - -static const u8 sPinsiriteDesc[] = _( - "This stone enables\n" - "Pinsir to Mega\n" - "Evolve in battle."); - -static const u8 sGyaradositeDesc[] = _( - "This stone enables\n" - "Gyarados to Mega\n" - "Evolve in battle."); - -static const u8 sAerodactyliteDesc[] = _( - "This stone enables\n" - "Aerodactyl to Mega\n" - "Evolve in battle."); - -static const u8 sMewtwoniteDesc[] = _( - "This stone enables\n" - "Mewtwo to Mega\n" - "Evolve in battle."); - -static const u8 sAmpharositeDesc[] = _( - "This stone enables\n" - "Ampharos to Mega\n" - "Evolve in battle."); - -static const u8 sSteelixiteDesc[] = _( - "This stone enables\n" - "Steelix to Mega\n" - "Evolve in battle."); - -static const u8 sScizoriteDesc[] = _( - "This stone enables\n" - "Scizor to Mega\n" - "Evolve in battle."); - -static const u8 sHeracroniteDesc[] = _( - "This stone enables\n" - "Heracross to Mega\n" - "Evolve in battle."); - -static const u8 sHoundoominiteDesc[] = _( - "This stone enables\n" - "Houndoom to Mega\n" - "Evolve in battle."); - -static const u8 sTyranitariteDesc[] = _( - "This stone enables\n" - "Tyranitar to Mega\n" - "Evolve in battle."); - -static const u8 sSceptiliteDesc[] = _( - "This stone enables\n" - "Sceptile to Mega\n" - "Evolve in battle."); - -static const u8 sBlazikeniteDesc[] = _( - "This stone enables\n" - "Blaziken to Mega\n" - "Evolve in battle."); - -static const u8 sSwampertiteDesc[] = _( - "This stone enables\n" - "Swampert to Mega\n" - "Evolve in battle."); - -static const u8 sGardevoiriteDesc[] = _( - "This stone enables\n" - "Gardevoir to Mega\n" - "Evolve in battle."); - -static const u8 sSableniteDesc[] = _( - "This stone enables\n" - "Sableye to Mega\n" - "Evolve in battle."); - -static const u8 sMawiliteDesc[] = _( - "This stone enables\n" - "Mawile to Mega\n" - "Evolve in battle."); - -static const u8 sAggroniteDesc[] = _( - "This stone enables\n" - "Aggron to Mega\n" - "Evolve in battle."); - -static const u8 sMedichamiteDesc[] = _( - "This stone enables\n" - "Medicham to Mega\n" - "Evolve in battle."); - -static const u8 sManectiteDesc[] = _( - "This stone enables\n" - "Manectric to Mega\n" - "Evolve in battle."); - -static const u8 sSharpedoniteDesc[] = _( - "This stone enables\n" - "Sharpedo to Mega\n" - "Evolve in battle."); - -static const u8 sCameruptiteDesc[] = _( - "This stone enables\n" - "Camerupt to Mega\n" - "Evolve in battle."); - -static const u8 sAltarianiteDesc[] = _( - "This stone enables\n" - "Altaria to Mega\n" - "Evolve in battle."); - -static const u8 sBanettiteDesc[] = _( - "This stone enables\n" - "Banette to Mega\n" - "Evolve in battle."); - -static const u8 sAbsoliteDesc[] = _( - "This stone enables\n" - "Absol to Mega\n" - "Evolve in battle."); - -static const u8 sGlalititeDesc[] = _( - "This stone enables\n" - "Glalie to Mega\n" - "Evolve in battle."); - -static const u8 sSalamenciteDesc[] = _( - "This stone enables\n" - "Salamence to Mega\n" - "Evolve in battle."); - -static const u8 sMetagrossiteDesc[] = _( - "This stone enables\n" - "Metagross to Mega\n" - "Evolve in battle."); - -static const u8 sLatiasiteDesc[] = _( - "This stone enables\n" - "Latias to Mega\n" - "Evolve in battle."); - -static const u8 sLatiositeDesc[] = _( - "This stone enables\n" - "Latios to Mega\n" - "Evolve in battle."); - -static const u8 sLopunniteDesc[] = _( - "This stone enables\n" - "Lopunny to Mega\n" - "Evolve in battle."); - -static const u8 sGarchompiteDesc[] = _( - "This stone enables\n" - "Garchomp to Mega\n" - "Evolve in battle."); - -static const u8 sLucarioniteDesc[] = _( - "This stone enables\n" - "Lucario to Mega\n" - "Evolve in battle."); - -static const u8 sAbomasiteDesc[] = _( - "This stone enables\n" - "Abomasnow to Mega\n" - "Evolve in battle."); - -static const u8 sGalladiteDesc[] = _( - "This stone enables\n" - "Gallade to Mega\n" - "Evolve in battle."); - -static const u8 sAudiniteDesc[] = _( - "This stone enables\n" - "Audino to Mega\n" - "Evolve in battle."); - -static const u8 sDianciteDesc[] = _( - "This stone enables\n" - "Diancie to Mega\n" - "Evolve in battle."); - -// Gems -static const u8 sNormalGemDesc[] = _( - "Increases the\n" - "power of Normal\n" - "Type moves."); - -static const u8 sFireGemDesc[] = _( - "Increases the\n" - "power of Fire\n" - "Type moves."); - -static const u8 sWaterGemDesc[] = _( - "Increases the\n" - "power of Water\n" - "Type moves."); - -static const u8 sElectricGemDesc[] = _( - "Increases the\n" - "power of Electric\n" - "Type moves."); - -static const u8 sGrassGemDesc[] = _( - "Increases the\n" - "power of Grass\n" - "Type moves."); - -static const u8 sIceGemDesc[] = _( - "Increases the\n" - "power of Ice\n" - "Type moves."); - -static const u8 sFightingGemDesc[] = _( - "Increases the\n" - "power of Fighting\n" - "Type moves."); - -static const u8 sPoisonGemDesc[] = _( - "Increases the\n" - "power of Poison\n" - "Type moves."); - -static const u8 sGroundGemDesc[] = _( - "Increases the\n" - "power of Ground\n" - "Type moves."); - -static const u8 sFlyingGemDesc[] = _( - "Increases the\n" - "power of Flying\n" - "Type moves."); - -static const u8 sPsychicGemDesc[] = _( - "Increases the\n" - "power of Psychic\n" - "Type moves."); - -static const u8 sBugGemDesc[] = _( - "Increases the\n" - "power of Bug\n" - "Type moves."); - -static const u8 sRockGemDesc[] = _( - "Increases the\n" - "power of Rock\n" - "Type moves."); - -static const u8 sGhostGemDesc[] = _( - "Increases the\n" - "power of Ghost\n" - "Type moves."); - -static const u8 sDragonGemDesc[] = _( - "Increases the\n" - "power of Dragon\n" - "Type moves."); - -static const u8 sDarkGemDesc[] = _( - "Increases the\n" - "power of Dark\n" - "Type moves."); - -static const u8 sSteelGemDesc[] = _( - "Increases the\n" - "power of Steel\n" - "Type moves."); - -static const u8 sFairyGemDesc[] = _( - "Increases the\n" - "power of Fairy\n" - "Type moves."); - -// Z-Crystals -static const u8 sNormaliumZDesc[] = _( - "Upgrade Normal-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sFiriumZDesc[] = _( - "Upgrade Fire-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sWateriumZDesc[] = _( - "Upgrade Water-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sElectriumZDesc[] = _( - "Upgrade Electric-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sGrassiumZDesc[] = _( - "Upgrade Grass-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sIciumZDesc[] = _( - "Upgrade Ice-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sFightiniumZDesc[] = _( - "Upgrade Fighting-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sPoisoniumZDesc[] = _( - "Upgrade Poison-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sGroundiumZDesc[] = _( - "Upgrade Ground-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sFlyiniumZDesc[] = _( - "Upgrade Flying-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sPsychiumZDesc[] = _( - "Upgrade Psychic-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sBuginiumZDesc[] = _( - "Upgrade Bug-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sRockiumZDesc[] = _( - "Upgrade Rock-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sGhostiumZDesc[] = _( - "Upgrade Ghost-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sDragoniumZDesc[] = _( - "Upgrade Dragon-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sDarkiniumZDesc[] = _( - "Upgrade Dark-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sSteeliumZDesc[] = _( - "Upgrade Steel-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sFairiumZDesc[] = _( - "Upgrade Fairy-\n" - "type moves into\n" - "Z-Moves."); - -static const u8 sPikaniumZDesc[] = _( - "Upgrade Pikachu's\n" - "Volt Tackle\n" - "into a Z-Move."); - -static const u8 sEeviumZDesc[] = _( - "Upgrade Eevee's\n" - "Last Resort\n" - "into a Z-Move."); - -static const u8 sSnorliumZDesc[] = _( - "Upgrade Snorlax's\n" - "Giga Impact\n" - "into a Z-Move."); - -static const u8 sMewniumZDesc[] = _( - "Upgrade Mew's\n" - "Psychic into\n" - "a Z-Move."); - -static const u8 sDecidiumZDesc[] = _( - "Upgrade Decidu-\n" - "eye's Spirit Sha-\n" - "ckle into a Z-Move."); - -static const u8 sInciniumZDesc[] = _( - "Upgrade Incine-\n" - "roar's Darkest La-\n" - "riat into a Z-Move."); - -static const u8 sPrimariumZDesc[] = _( - "Upgrade Primarina's\n" - "Sparkling Aria\n" - "into a Z-Move."); - -static const u8 sLycaniumZDesc[] = _( - "Upgrade Lycanroc's\n" - "Stone Edge\n" - "into a Z-Move."); - -static const u8 sMimikiumZDesc[] = _( - "Upgrade Mimikyu's\n" - "Play Rough\n" - "into a Z-Move."); - -static const u8 sKommoniumZDesc[] = _( - "Upgrade Kommo-o's\n" - "Clanging Scales\n" - "into a Z-Move."); - -static const u8 sTapuniumZDesc[] = _( - "Upgrade the tapu's\n" - "Nature's Madness\n" - "into a Z-Move."); - -static const u8 sSolganiumZDesc[] = _( - "Upgrade Solgaleo's\n" - "Sunsteel Strike\n" - "into a Z-Move."); - -static const u8 sLunaliumZDesc[] = _( - "Upgrade Lunala's\n" - "Moongeist Beam\n" - "into a Z-Move."); - -static const u8 sMarshadiumZDesc[] = _( - "Upgrade Marsha-\n" - "dow's Spectral Thi-\n" - "ef into a Z-Move."); - -static const u8 sAloraichiumZDesc[] = _( - "Upgrade Alolan\n" - "Raichu's Thunder-\n" - "bolt into a Z-Move."); - -static const u8 sPikashuniumZDesc[] = _( - "Upgrade Pikachu w/\n" - "a cap's Thunderbolt\n" - "into a Z-Move."); - -static const u8 sUltranecroziumZDesc[] = _( - "A crystal to turn\n" - "fused Necrozma\n" - "into a new form."); - -// Species-specific Held Items -static const u8 sLightBallDesc[] = _( - "A hold item that\n" - "raises the Atk and\n" - "Sp. Atk of Pikachu."); - -static const u8 sLeekDesc[] = _( - "A hold item that\n" - "raises Farfetch'd's\n" - "critical-hit ratio."); - -static const u8 sThickClubDesc[] = _( - "A hold item that \n" - "raises Cubone or\n" - "Marowak's Attack."); - -static const u8 sLuckyPunchDesc[] = _( - "A hold item that\n" - "raises Chansey's\n" - "critical-hit rate."); - -static const u8 sMetalPowderDesc[] = _( - "A hold item that\n" - "raises Ditto's\n" - "Defense."); - -static const u8 sQuickPowderDesc[] = _( - "An item to be held\n" - "by Ditto. This odd\n" - "powder boosts Speed."); - -static const u8 sDeepSeaScaleDesc[] = _( - "A hold item that\n" - "raises the Sp. Def\n" - "of Clamperl."); - -static const u8 sDeepSeaToothDesc[] = _( - "A hold item that\n" - "raises the Sp. Atk\n" - "of Clamperl."); - -static const u8 sSoulDewDesc[] = _( -#if B_SOUL_DEW_BOOST >= GEN_7 - "Powers up Latios' &\n" - "Latias' Psychic and\n" - "Dragon-type moves."); -#else - "Hold item: raises\n" - "Sp. Atk & Sp. Def of\n" - "Latios & Latias."); -#endif - -static const u8 sAdamantOrbDesc[] = _( - "Boosts the power of\n" - "Dialga's Dragon and\n" - "Steel-type moves."); - -static const u8 sLustrousOrbDesc[] = _( - "Boosts the power of\n" - "Palkia's Dragon and\n" - "Water-type moves."); - -static const u8 sGriseousOrbDesc[] = _( - "Powers up Giratina's\n" - "Dragon and Ghost-\n" - "type moves."); - -// Incenses -static const u8 sSeaIncenseDesc[] = _( - "A hold item that\n" - "slightly boosts\n" - "Water-type moves."); - -static const u8 sLaxIncenseDesc[] = _( - "A hold item that\n" - "slightly lowers the\n" - "foe's accuracy."); - -static const u8 sOddIncenseDesc[] = _( - "A hold item that\n" - "boosts Psychic-\n" - "type moves."); - -static const u8 sRockIncenseDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Rock-type moves."); - -static const u8 sFullIncenseDesc[] = _( - "A held item that\n" - "makes the holder\n" - "move slower."); - -static const u8 sWaveIncenseDesc[] = _( - "A hold item that\n" - "slightly boosts\n" - "Water-type moves."); - -static const u8 sRoseIncenseDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Grass-type moves."); - -static const u8 sLuckIncenseDesc[] = _( - "Doubles money in\n" - "battle if the\n" - "holder takes part."); - -static const u8 sPureIncenseDesc[] = _( - "A hold item that\n" - "helps repel wild\n" - "Pokémon."); - -// Contest Scarves -static const u8 sRedScarfDesc[] = _( - "A hold item that\n" - "raises Cool in\n" - "Contests."); - -static const u8 sBlueScarfDesc[] = _( - "A hold item that\n" - "raises Beauty in\n" - "Contests."); - -static const u8 sPinkScarfDesc[] = _( - "A hold item that\n" - "raises Cute in\n" - "Contests."); - -static const u8 sGreenScarfDesc[] = _( - "A hold item that\n" - "raises Smart in\n" - "Contests."); - -static const u8 sYellowScarfDesc[] = _( - "A hold item that\n" - "raises Tough in\n" - "Contests."); - -// EV Gain Modifiers -static const u8 sMachoBraceDesc[] = _( - "A hold item that\n" - "promotes growth,\n" - "but reduces Speed."); - -static const u8 sPowerWeightDesc[] = _( - "A hold item that\n" - "promotes HP gain,\n" - "but reduces Speed."); - -static const u8 sPowerBracerDesc[] = _( - "A hold item that\n" - "promotes Atk gain,\n" - "but reduces Speed."); - -static const u8 sPowerBeltDesc[] = _( - "A hold item that\n" - "promotes Def gain,\n" - "but reduces Speed."); - -static const u8 sPowerLensDesc[] = _( - "Hold item that pro-\n" - "motes Sp. Atk gain,\n" - "but reduces Speed."); - -static const u8 sPowerBandDesc[] = _( - "Hold item that pro-\n" - "motes Sp. Def gain,\n" - "but reduces Speed."); - -static const u8 sPowerAnkletDesc[] = _( - "A hold item that\n" - "promotes Spd gain,\n" - "but reduces Speed."); - -// Type-boosting Held Items -static const u8 sSilkScarfDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Normal-type moves."); - -static const u8 sCharcoalDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Fire-type moves."); - -static const u8 sMysticWaterDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Water-type moves."); - -static const u8 sMagnetDesc[] = _( - "A hold item that\n" - "boosts Electric-\n" - "type moves."); - -static const u8 sMiracleSeedDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Grass-type moves."); - -static const u8 sNeverMeltIceDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Ice-type moves."); - -static const u8 sBlackBeltDesc[] = _( - "A hold item that\n" - "boosts Fighting-\n" - "type moves."); - -static const u8 sPoisonBarbDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Poison-type moves."); - -static const u8 sSoftSandDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Ground-type moves."); - -static const u8 sSharpBeakDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Flying-type moves."); - -static const u8 sTwistedSpoonDesc[] = _( - "A hold item that\n" - "boosts Psychic-\n" - "type moves."); - -static const u8 sSilverPowderDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Bug-type moves."); - -static const u8 sHardStoneDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Rock-type moves."); - -static const u8 sSpellTagDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Ghost-type moves."); - -static const u8 sDragonFangDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Dragon-type moves."); - -static const u8 sBlackGlassesDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Dark-type moves."); - -static const u8 sMetalCoatDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Steel-type moves."); - -// Choice Items -static const u8 sChoiceBandDesc[] = _( - "Raises a move's\n" - "power, but permits\n" - "only that move."); - -static const u8 sChoiceSpecsDesc[] = _( - "Boosts Sp. Atk, but\n" - "allows the use of\n" - "only one move."); - -static const u8 sChoiceScarfDesc[] = _( - "Boosts Speed, but\n" - "allows the use of\n" - "only one move."); - -// Status Orbs -static const u8 sFlameOrbDesc[] = _( - "A bizarre orb that\n" - "inflicts a burn on\n" - "holder in battle."); - -static const u8 sToxicOrbDesc[] = _( - "A bizarre orb that\n" - "badly poisons the\n" - "holder in battle."); - -// Weather Rocks -static const u8 sDampRockDesc[] = _( - "Extends the length\n" - "of Rain Dance if\n" - "used by the holder."); - -static const u8 sHeatRockDesc[] = _( - "Extends the length\n" - "of Sunny Day if\n" - "used by the holder."); - -static const u8 sSmoothRockDesc[] = _( - "Extends the length\n" - "of Sandstorm if\n" - "used by the holder."); - -static const u8 sIcyRockDesc[] = _( - "Extends the length\n" - "of the move Hail\n" - "used by the holder."); - -// Terrain Seeds -static const u8 sElectricSeedDesc[] = _( - "Boosts Defense on\n" - "Electric Terrain,\n" - "but only one time."); - -static const u8 sPsychicSeedDesc[] = _( - "Boosts Sp. Def. on\n" - "Psychic Terrain,\n" - "but only one time."); - -static const u8 sMistySeedDesc[] = _( - "Boosts Sp. Def. on\n" - "Misty Terrain,\n" - "but only one time."); - -static const u8 sGrassySeedDesc[] = _( - "Boosts Defense on\n" - "Grassy Terrain,\n" - "but only one time."); - -// Type-activated Stat Modifiers -static const u8 sAbsorbBulbDesc[] = _( - "Raises Sp. Atk if\n" - "the holder is hit by\n" - "a Water-type move."); - -static const u8 sCellBatteryDesc[] = _( - "Raises Atk if the\n" - "holder is hit by an\n" - "Electric-type move."); - -static const u8 sLuminousMossDesc[] = _( - "Raises Sp. Def if\n" - "the holder is hit by\n" - "a Water-type move."); - -static const u8 sSnowballDesc[] = _( - "Raises Atk if its\n" - "holder is hit by an\n" - "Ice-type move."); - -// Misc. Held Items -static const u8 sBrightPowderDesc[] = _( - "A hold item that\n" - "casts a glare to\n" - "reduce accuracy."); - -static const u8 sWhiteHerbDesc[] = _( - "A hold item that\n" - "restores any\n" - "lowered stat."); - -static const u8 sExpShareDesc[] = _( -#if I_EXP_SHARE_ITEM >= GEN_6 - "This device gives\n" - "exp. to other\n" - "party members."); -#else - "A hold item that\n" - "gets Exp. points\n" - "from battles."); -#endif - -static const u8 sQuickClawDesc[] = _( - "A hold item that\n" - "occasionally allows\n" - "the first strike."); - -static const u8 sSootheBellDesc[] = _( - "A hold item that\n" - "calms spirits and\n" - "fosters friendship."); - -#if B_MENTAL_HERB >= GEN_5 -static const u8 sMentalHerbDesc[] = _( - "Snaps Pokémon out\n" - "of move-binding\n" - "effects."); -#else -static const u8 sMentalHerbDesc[] = _( - "A hold item that\n" - "snaps Pokémon out\n" - "of infatuation."); -#endif - -static const u8 sKingsRockDesc[] = _( - "A hold item that\n" - "may cause flinching\n" - "when the foe is hit."); - -static const u8 sAmuletCoinDesc[] = _( - "Doubles money in\n" - "battle if the\n" - "holder takes part."); - -static const u8 sCleanseTagDesc[] = _( - "A hold item that\n" - "helps repel wild\n" - "Pokémon."); - -static const u8 sSmokeBallDesc[] = _( - "A hold item that\n" - "assures fleeing\n" - "from wild Pokémon."); - -static const u8 sFocusBandDesc[] = _( - "A hold item that\n" - "occasionally\n" - "prevents fainting."); - -static const u8 sLuckyEggDesc[] = _( - "A hold item that\n" - "boosts Exp. points\n" - "earned in battle."); - -static const u8 sScopeLensDesc[] = _( - "A hold item that\n" - "improves the\n" - "critical-hit rate."); - -static const u8 sLeftoversDesc[] = _( - "A hold item that\n" - "gradually restores\n" - "HP in battle."); - -static const u8 sShellBellDesc[] = _( - "A hold item that\n" - "restores HP upon\n" - "striking the foe."); - -static const u8 sWideLensDesc[] = _( - "A magnifying lens\n" - "that boosts the\n" - "accuracy of moves."); - -static const u8 sMuscleBandDesc[] = _( - "A headband that\n" - "boosts the power of\n" - "physical moves."); - -static const u8 sWiseGlassesDesc[] = _( - "A pair of glasses\n" - "that ups the power\n" - "of special moves."); - -static const u8 sExpertBeltDesc[] = _( - "A belt that boosts\n" - "the power of super\n" - "effective moves."); - -static const u8 sLightClayDesc[] = _( - "Extends the length\n" - "of barrier moves\n" - "used by the holder."); - -static const u8 sLifeOrbDesc[] = _( - "Boosts the power of\n" - "moves at the cost\n" - "of some HP per turn."); - -static const u8 sPowerHerbDesc[] = _( - "Allows immediate\n" - "use of a move that\n" - "charges first."); - -static const u8 sFocusSashDesc[] = _( - "If the holder has\n" - "full HP, it endures\n" - "KO hits with 1 HP."); - -static const u8 sZoomLensDesc[] = _( - "If the holder moves\n" - "after the foe, it'll\n" - "boost accuracy."); - -static const u8 sMetronomeDesc[] = _( - "A held item that\n" - "boosts a move used\n" - "consecutively."); - -static const u8 sIronBallDesc[] = _( - "Cuts Speed and lets\n" - "Flying-types be hit\n" - "by Ground moves."); - -static const u8 sLaggingTailDesc[] = _( - "A held item that\n" - "makes the holder\n" - "move slower."); - -static const u8 sDestinyKnotDesc[] = _( - "If the holder falls\n" - "in love, the foe\n" - "does too."); - -static const u8 sBlackSludgeDesc[] = _( - "Gradually restores\n" - "HP of Poison-types.\n" - "Damages others."); - -static const u8 sGripClawDesc[] = _( - "Makes binding moves\n" - "used by the holder\n" - "go on for 7 turns."); - -static const u8 sStickyBarbDesc[] = _( - "Damages the holder\n" - "each turn. May latch\n" - "on to foes."); - -static const u8 sShedShellDesc[] = _( - "Enables the holder\n" - "to switch out of\n" - "battle without fail."); - -static const u8 sBigRootDesc[] = _( - "A held item that\n" - "boosts the power of\n" - "HP-stealing moves."); - -static const u8 sRazorClawDesc[] = _( - "A hooked claw that\n" - "ups the holder's\n" - "critical-hit ratio."); - -static const u8 sRazorFangDesc[] = _( - "A hold item that\n" - "may cause flinching\n" - "when the foe is hit."); - -static const u8 sEvioliteDesc[] = _( - "Raises the Def and\n" - "Sp. Def of Pokémon\n" - "that can evolve."); - -static const u8 sFloatStoneDesc[] = _( - "It's so light that\n" - "when held, it halves\n" - "a Pokémon's weight."); - -static const u8 sRockyHelmetDesc[] = _( - "Hurts the foe if\n" - "they touch its\n" - "holder."); - -static const u8 sAirBalloonDesc[] = _( - "Elevates the holder\n" - "in the air. If hit,\n" - "this item will burst."); - -static const u8 sRedCardDesc[] = _( - "Switches out the\n" - "foe if they hit the\n" - "holder."); - -static const u8 sRingTargetDesc[] = _( - "Moves that wouldn't\n" - "have effect will\n" - "land on its holder."); - -static const u8 sBindingBandDesc[] = _( - "Increases the\n" - "power of binding\n" - "moves when held."); - -static const u8 sEjectButtonDesc[] = _( - "Switches out the\n" - "user if they're hit\n" - "by the foe."); - -static const u8 sWeaknessPolicyDesc[] = _( - "If hit by a Super\n" - "Effective move, ups\n" - "Atk and Sp. Atk."); - -static const u8 sAssaultVestDesc[] = _( - "Raises Sp. Def but\n" - "prevents the use\n" - "of status moves."); - -static const u8 sSafetyGogglesDesc[] = _( - "Protect from\n" - "weather damage and\n" - "powder moves."); - -static const u8 sAdrenalineOrbDesc[] = _( - "Boosts Speed if the\n" - "user is intimidated,\n" - "but only one time."); - -static const u8 sTerrainExtenderDesc[] = _( - "Extends the length\n" - "of the active\n" - "battle terrain."); - -static const u8 sProtectivePadsDesc[] = _( - "Guard the holder\n" - "from contact move\n" - "effects."); - -static const u8 sThroatSprayDesc[] = _( - "Raises Sp. Atk. if\n" - "the holder uses a\n" - "sound-based move."); - -static const u8 sEjectPackDesc[] = _( - "Forces the user to\n" - "switch if its stats\n" - "are lowered."); - -static const u8 sHeavyDutyBootsDesc[] = _( - "Boots that prevent\n" - "effects of traps\n" - "set in the field."); - -static const u8 sBlunderPolicyDesc[] = _( - "Raises Speed if\n" - "the user misses\n" - "due to Accuracy."); - -static const u8 sRoomServiceDesc[] = _( - "Lowers Speed if\n" - "Trick Room is\n" - "active."); - -static const u8 sUtilityUmbrellaDesc[] = _( - "An umbrella that\n" - "protects from\n" - "weather effects."); - -// Berries -static const u8 sCheriBerryDesc[] = _( - "A hold item that\n" - "heals paralysis\n" - "in battle."); - -static const u8 sChestoBerryDesc[] = _( - "A hold item that\n" - "awakens Pokémon\n" - "in battle."); - -static const u8 sPechaBerryDesc[] = _( - "A hold item that\n" - "heals poisoning\n" - "in battle."); - -static const u8 sRawstBerryDesc[] = _( - "A hold item that\n" - "heals a burn in\n" - "battle."); - -static const u8 sAspearBerryDesc[] = _( - "A hold item that\n" - "defrosts Pokémon\n" - "in battle."); - -static const u8 sLeppaBerryDesc[] = _( - "A hold item that\n" - "restores 10 PP in\n" - "battle."); - -static const u8 sOranBerryDesc[] = _( - "A hold item that\n" - "restores 10 HP in\n" - "battle."); - -static const u8 sPersimBerryDesc[] = _( - "A hold item that\n" - "heals confusion\n" - "in battle."); - -static const u8 sLumBerryDesc[] = _( - "A hold item that\n" - "heals any status\n" - "problem in battle."); - -static const u8 sSitrusBerryDesc[] = _( -#if I_SITRUS_BERRY_HEAL >= GEN_4 - "A hold item that\n" - "restores the user's\n" - "HP a little."); -#else - "A hold item that\n" - "restores 30 HP in\n" - "battle."); -#endif - -static const u8 sFigyBerryDesc[] = _( - "A hold item that\n" - "restores HP but\n" - "may confuse."); - -static const u8 sWikiBerryDesc[] = _( - "A hold item that\n" - "restores HP but\n" - "may confuse."); - -static const u8 sMagoBerryDesc[] = _( - "A hold item that\n" - "restores HP but\n" - "may confuse."); - -static const u8 sAguavBerryDesc[] = _( - "A hold item that\n" - "restores HP but\n" - "may confuse."); - -static const u8 sIapapaBerryDesc[] = _( - "A hold item that\n" - "restores HP but\n" - "may confuse."); - -static const u8 sRazzBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Razz."); - -static const u8 sBlukBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Bluk."); - -static const u8 sNanabBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Nanab."); - -static const u8 sWepearBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Wepear."); - -static const u8 sPinapBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Pinap."); - -static const u8 sPomegBerryDesc[] = _( - "Makes a Pokémon\n" - "friendly but lowers\n" - "base HP."); - -static const u8 sKelpsyBerryDesc[] = _( - "Makes a Pokémon\n" - "friendly but lowers\n" - "base Attack."); - -static const u8 sQualotBerryDesc[] = _( - "Makes a Pokémon\n" - "friendly but lowers\n" - "base Defense."); - -static const u8 sHondewBerryDesc[] = _( - "Makes a Pokémon\n" - "friendly but lowers\n" - "base Sp. Atk."); - -static const u8 sGrepaBerryDesc[] = _( - "Makes a Pokémon\n" - "friendly but lowers\n" - "base Sp. Def."); - -static const u8 sTamatoBerryDesc[] = _( - "Makes a Pokémon\n" - "friendly but lowers\n" - "base Speed."); - -static const u8 sCornnBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Cornn."); - -static const u8 sMagostBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Magost."); - -static const u8 sRabutaBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Rabuta."); - -static const u8 sNomelBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Nomel."); - -static const u8 sSpelonBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Spelon."); - -static const u8 sPamtreBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Pamtre."); - -static const u8 sWatmelBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Watmel."); - -static const u8 sDurinBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Durin."); - -static const u8 sBelueBerryDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow Belue."); - -static const u8 sChilanBerryDesc[] = _( - "A hold item that\n" - "weakens a Normal\n" - "move."); - -static const u8 sOccaBerryDesc[] = _( - "A hold item that\n" - "weakens a Fire\n" - "move if weak to it."); - -static const u8 sPasshoBerryDesc[] = _( - "A hold item that\n" - "weakens a Water\n" - "move if weak to it."); - -static const u8 sWacanBerryDesc[] = _( - "A hold item that\n" - "weakens a Electric\n" - "move if weak to it."); - -static const u8 sRindoBerryDesc[] = _( - "A hold item that\n" - "weakens a Grass\n" - "move if weak to it."); - -static const u8 sYacheBerryDesc[] = _( - "A hold item that\n" - "weakens a Ice\n" - "move if weak to it."); - -static const u8 sChopleBerryDesc[] = _( - "A hold item that\n" - "weakens a Fighting\n" - "move if weak to it."); - -static const u8 sKebiaBerryDesc[] = _( - "A hold item that\n" - "weakens a Poison\n" - "move if weak to it."); - -static const u8 sShucaBerryDesc[] = _( - "A hold item that\n" - "weakens a Ground\n" - "move if weak to it."); - -static const u8 sCobaBerryDesc[] = _( - "A hold item that\n" - "weakens a Flying\n" - "move if weak to it."); - -static const u8 sPayapaBerryDesc[] = _( - "A hold item that\n" - "weakens a Psychic\n" - "move if weak to it."); - -static const u8 sTangaBerryDesc[] = _( - "A hold item that\n" - "weakens a Bug\n" - "move if weak to it."); - -static const u8 sChartiBerryDesc[] = _( - "A hold item that\n" - "weakens a Rock\n" - "move if weak to it."); - -static const u8 sKasibBerryDesc[] = _( - "A hold item that\n" - "weakens a Ghost\n" - "move if weak to it."); - -static const u8 sHabanBerryDesc[] = _( - "A hold item that\n" - "weakens a Dragon\n" - "move if weak to it."); - -static const u8 sColburBerryDesc[] = _( - "A hold item that\n" - "weakens a Dark\n" - "move if weak to it."); - -static const u8 sBabiriBerryDesc[] = _( - "A hold item that\n" - "weakens a Steel\n" - "move if weak to it."); - -static const u8 sRoseliBerryDesc[] = _( - "A hold item that\n" - "weakens a Fairy\n" - "move if weak to it."); - -static const u8 sLiechiBerryDesc[] = _( - "A hold item that\n" - "raises Attack in\n" - "a pinch."); - -static const u8 sGanlonBerryDesc[] = _( - "A hold item that\n" - "raises Defense in\n" - "a pinch."); - -static const u8 sSalacBerryDesc[] = _( - "A hold item that\n" - "raises Speed in\n" - "a pinch."); - -static const u8 sPetayaBerryDesc[] = _( - "A hold item that\n" - "raises Sp. Atk in\n" - "a pinch."); - -static const u8 sApicotBerryDesc[] = _( - "A hold item that\n" - "raises Sp. Def in\n" - "a pinch."); - -static const u8 sLansatBerryDesc[] = _( - "A hold item that\n" - "ups the critical-\n" - "hit rate in a pinch."); - -static const u8 sStarfBerryDesc[] = _( - "A hold item that\n" - "sharply boosts a\n" - "stat in a pinch."); - -static const u8 sEnigmaBerryDesc[] = _( - "A hold item that\n" - "heals from super\n" - "effective moves."); - -static const u8 sMicleBerryDesc[] = _( - "When held, it ups\n" - "the Accuracy of a\n" - "move in a pinch."); - -static const u8 sCustapBerryDesc[] = _( - "It allows a Pokémon\n" - "in a pinch to move\n" - "first just once."); - -static const u8 sJabocaBerryDesc[] = _( - "If hit by a physical\n" - "move, it will hurt\n" - "the attacker a bit."); - -static const u8 sRowapBerryDesc[] = _( - "If hit by a special\n" - "move, it will hurt\n" - "the attacker a bit."); - -static const u8 sKeeBerryDesc[] = _( - "If hit by a physical\n" - "move, it raises the\n" - "Defense a bit."); - -static const u8 sMarangaBerryDesc[] = _( - "If hit by a special\n" - "move, it raises the\n" - "Sp. Def. a bit."); - -static const u8 sEnigmaBerryEReaderDesc[] = _( - "{POKEBLOCK} ingredient.\n" - "Plant in loamy soil\n" - "to grow a mystery."); - -// TMs/HMs -static const u8 sTM01Desc[] = _( - "Powerful, but makes\n" - "the user flinch if\n" - "hit by the foe."); - -static const u8 sTM02Desc[] = _( - "Hooks and slashes\n" - "the foe with long,\n" - "sharp claws."); - -static const u8 sTM03Desc[] = _( - "Generates an\n" - "ultrasonic wave\n" - "that may confuse."); - -static const u8 sTM04Desc[] = _( - "Raises Sp. Atk and\n" - "Sp. Def by focusing\n" - "the mind."); - -static const u8 sTM05Desc[] = _( - "A savage roar that\n" - "makes the foe flee \n" - "to end the battle."); - -static const u8 sTM06Desc[] = _( - "Poisons the foe\n" - "with a toxin that\n" - "gradually worsens."); - -static const u8 sTM07Desc[] = _( - "Creates a hailstorm\n" - "that damages all\n" - "types except Ice."); - -static const u8 sTM08Desc[] = _( - "Bulks up the body\n" - "to boost both\n" - "Attack & Defense."); - -static const u8 sTM09Desc[] = _( - "Shoots 2 to 5 seeds\n" - "in a row to strike\n" - "the foe."); - -static const u8 sTM10Desc[] = _( - "The attack power\n" - "varies among\n" - "different Pokémon."); - -static const u8 sTM11Desc[] = _( - "Raises the power of\n" - "Fire-type moves\n" - "for 5 turns."); - -static const u8 sTM12Desc[] = _( - "Enrages the foe so\n" - "it can only use\n" - "attack moves."); - -static const u8 sTM13Desc[] = _( - "Fires an icy cold\n" - "beam that may\n" - "freeze the foe."); - -static const u8 sTM14Desc[] = _( - "A brutal snow-and-\n" - "wind attack that\n" - "may freeze the foe."); - -static const u8 sTM15Desc[] = _( - "Powerful, but needs\n" - "recharging the\n" - "next turn."); - -static const u8 sTM16Desc[] = _( - "Creates a wall of\n" - "light that lowers\n" - "Sp. Atk damage."); - -static const u8 sTM17Desc[] = _( - "Negates all damage,\n" - "but may fail if used\n" - "in succession."); - -static const u8 sTM18Desc[] = _( - "Raises the power of\n" - "Water-type moves\n" - "for 5 turns."); - -static const u8 sTM19Desc[] = _( - "Recovers half the\n" - "HP of the damage \n" - "this move inflicts."); - -static const u8 sTM20Desc[] = _( - "Prevents status\n" - "abnormality with a\n" - "mystical power."); - -static const u8 sTM21Desc[] = _( - "The less the user\n" - "likes you, the more\n" - "powerful this move."); - -static const u8 sTM22Desc[] = _( - "Absorbs sunlight in\n" - "the 1st turn, then\n" - "attacks next turn."); - -static const u8 sTM23Desc[] = _( - "Slams the foe with\n" - "a hard tail. It may\n" - "lower Defense."); - -static const u8 sTM24Desc[] = _( - "A powerful electric\n" - "attack that may\n" - "cause paralysis."); - -static const u8 sTM25Desc[] = _( - "Strikes the foe\n" - "with a thunderbolt.\n" - "It may paralyze."); - -static const u8 sTM26Desc[] = _( - "Causes a quake\n" - "that has no effect\n" - "on flying foes."); - -static const u8 sTM27Desc[] = _( - "The more the user\n" - "likes you, the more\n" - "powerful this move."); - -static const u8 sTM28Desc[] = _( - "Digs underground\n" - "the 1st turn, then\n" - "strikes next turn."); - -static const u8 sTM29Desc[] = _( - "A powerful psychic\n" - "attack that may\n" - "lower Sp. Def."); - -static const u8 sTM30Desc[] = _( - "Hurls a dark lump\n" - "at the foe. It may\n" - "lower Sp. Def."); - -static const u8 sTM31Desc[] = _( - "Destroys barriers\n" - "like Light Screen\n" - "and causes damage."); - -static const u8 sTM32Desc[] = _( - "Creates illusory\n" - "copies to enhance\n" - "elusiveness."); - -static const u8 sTM33Desc[] = _( - "Creates a wall of\n" - "light that weakens\n" - "physical attacks."); - -static const u8 sTM34Desc[] = _( - "Zaps the foe with a\n" - "jolt of electricity\n" - "that never misses."); - -static const u8 sTM35Desc[] = _( - "Looses a stream of\n" - "fire that may burn\n" - "the foe."); - -static const u8 sTM36Desc[] = _( - "Hurls sludge at the\n" - "foe. It may poison\n" - "the foe."); - -static const u8 sTM37Desc[] = _( - "Causes a sandstorm\n" - "that hits the foe\n" - "over several turns."); - -static const u8 sTM38Desc[] = _( - "A powerful fire\n" - "attack that may\n" - "burn the foe."); - -static const u8 sTM39Desc[] = _( - "Stops the foe from\n" - "moving with rocks.\n" - "May lower Speed."); - -static const u8 sTM40Desc[] = _( - "An extremely fast\n" - "attack that can't\n" - "be avoided."); - -static const u8 sTM41Desc[] = _( - "Prevents the foe\n" - "from using the same\n" - "move in a row."); - -static const u8 sTM42Desc[] = _( - "Raises Attack when\n" - "poisoned, burned,\n" - "or paralyzed."); - -static const u8 sTM43Desc[] = _( - "Adds an effect to\n" - "attack depending\n" - "on the location."); - -static const u8 sTM44Desc[] = _( - "The user sleeps for\n" - "2 turns to restore\n" - "health and status."); - -static const u8 sTM45Desc[] = _( - "Makes it tough to\n" - "attack a foe of the\n" - "opposite gender."); - -static const u8 sTM46Desc[] = _( - "While attacking,\n" - "it may steal the\n" - "foe's held item."); - -static const u8 sTM47Desc[] = _( - "Spreads hard-\n" - "edged wings and\n" - "slams into the foe."); - -static const u8 sTM48Desc[] = _( - "Switches abilities\n" - "with the foe on the\n" - "turn this is used."); - -static const u8 sTM49Desc[] = _( - "Steals the effects\n" - "of the move the foe\n" - "is trying to use."); - -static const u8 sTM50Desc[] = _( - "Enables full-power\n" - "attack, but sharply\n" - "lowers Sp. Atk."); - -static const u8 sTM51Desc[] = _( // Todo - "?????"); - -static const u8 sTM52Desc[] = _( // Todo - "?????"); - -static const u8 sTM53Desc[] = _( // Todo - "?????"); - -static const u8 sTM54Desc[] = _( // Todo - "?????"); - -static const u8 sTM55Desc[] = _( // Todo - "?????"); - -static const u8 sTM56Desc[] = _( // Todo - "?????"); - -static const u8 sTM57Desc[] = _( // Todo - "?????"); - -static const u8 sTM58Desc[] = _( // Todo - "?????"); - -static const u8 sTM59Desc[] = _( // Todo - "?????"); - -static const u8 sTM60Desc[] = _( // Todo - "?????"); - -static const u8 sTM61Desc[] = _( // Todo - "?????"); - -static const u8 sTM62Desc[] = _( // Todo - "?????"); - -static const u8 sTM63Desc[] = _( // Todo - "?????"); - -static const u8 sTM64Desc[] = _( // Todo - "?????"); - -static const u8 sTM65Desc[] = _( // Todo - "?????"); - -static const u8 sTM66Desc[] = _( // Todo - "?????"); - -static const u8 sTM67Desc[] = _( // Todo - "?????"); - -static const u8 sTM68Desc[] = _( // Todo - "?????"); - -static const u8 sTM69Desc[] = _( // Todo - "?????"); - -static const u8 sTM70Desc[] = _( // Todo - "?????"); - -static const u8 sTM71Desc[] = _( // Todo - "?????"); - -static const u8 sTM72Desc[] = _( // Todo - "?????"); - -static const u8 sTM73Desc[] = _( // Todo - "?????"); - -static const u8 sTM74Desc[] = _( // Todo - "?????"); - -static const u8 sTM75Desc[] = _( // Todo - "?????"); - -static const u8 sTM76Desc[] = _( // Todo - "?????"); - -static const u8 sTM77Desc[] = _( // Todo - "?????"); - -static const u8 sTM78Desc[] = _( // Todo - "?????"); - -static const u8 sTM79Desc[] = _( // Todo - "?????"); - -static const u8 sTM80Desc[] = _( // Todo - "?????"); - -static const u8 sTM81Desc[] = _( // Todo - "?????"); - -static const u8 sTM82Desc[] = _( // Todo - "?????"); - -static const u8 sTM83Desc[] = _( // Todo - "?????"); - -static const u8 sTM84Desc[] = _( // Todo - "?????"); - -static const u8 sTM85Desc[] = _( // Todo - "?????"); - -static const u8 sTM86Desc[] = _( // Todo - "?????"); - -static const u8 sTM87Desc[] = _( // Todo - "?????"); - -static const u8 sTM88Desc[] = _( // Todo - "?????"); - -static const u8 sTM89Desc[] = _( // Todo - "?????"); - -static const u8 sTM90Desc[] = _( // Todo - "?????"); - -static const u8 sTM91Desc[] = _( // Todo - "?????"); - -static const u8 sTM92Desc[] = _( // Todo - "?????"); - -static const u8 sTM93Desc[] = _( // Todo - "?????"); - -static const u8 sTM94Desc[] = _( // Todo - "?????"); - -static const u8 sTM95Desc[] = _( // Todo - "?????"); - -static const u8 sTM96Desc[] = _( // Todo - "?????"); - -static const u8 sTM97Desc[] = _( // Todo - "?????"); - -static const u8 sTM98Desc[] = _( // Todo - "?????"); - -static const u8 sTM99Desc[] = _( // Todo - "?????"); - -static const u8 sTM100Desc[] = _( // Todo - "?????"); - -static const u8 sHM01Desc[] = _( - "Attacks the foe\n" - "with sharp blades\n" - "or claws."); - -static const u8 sHM02Desc[] = _( - "Flies up on the\n" - "first turn, then\n" - "attacks next turn."); - -static const u8 sHM03Desc[] = _( - "Creates a huge\n" - "wave, then crashes\n" - "it down on the foe."); - -static const u8 sHM04Desc[] = _( - "Builds enormous\n" - "power, then slams\n" - "the foe."); - -static const u8 sHM05Desc[] = _( - "Looses a powerful\n" - "blast of light that\n" - "reduces accuracy."); - -static const u8 sHM06Desc[] = _( - "A rock-crushingly\n" - "tough attack that\n" - "may lower Defense."); - -static const u8 sHM07Desc[] = _( - "Attacks the foe\n" - "with enough power\n" - "to climb waterfalls."); - -static const u8 sHM08Desc[] = _( - "Dives underwater\n" - "the 1st turn, then\n" - "attacks next turn."); - -// Charms -static const u8 sOvalCharmDesc[] = _( - "Raises the chance\n" - "of finding eggs\n" - "at the daycare."); - -static const u8 sShinyCharmDesc[] = _( - "A charm that will\n" - "raise the chance\n" - "of Shiny Pokémon."); - -static const u8 sCatchingCharmDesc[] = _( - "A charm that raises\n" - "the chance of\n" - "Critical Captures."); - -static const u8 sExpCharmDesc[] = _( - "A charm that raises\n" - "the amount of Exp.\n" - "earned in battle."); - -// Form-changing Key Items -static const u8 sRotomCatalogDesc[] = _( - "A catalog full of\n" - "deviced liked by\n" - "Rotom."); - -static const u8 sGracideaDesc[] = _( - "Bouquets made with\n" - "it are offered as a\n" - "token of gratitude."); - -static const u8 sRevealGlassDesc[] = _( - "This glass returns\n" - "a Pokémon back to\n" - "its original form."); - -static const u8 sDNASplicersDesc[] = _( - "Splicer that fuses\n" - "Kyurem and a\n" - "certain Pokémon."); - -static const u8 sZygardeCubeDesc[] = _( - "An item to store\n" - "Zygarde Cores and\n" - "Cells."); - -static const u8 sPrisonBottleDesc[] = _( - "A bottle used to\n" - "seal a certain\n" - "Pokémon long ago."); - -static const u8 sNSolarizerDesc[] = _( - "A device to fuse\n" - "and split Necrozma\n" - "using a Solgaleo."); - -static const u8 sNLunarizerDesc[] = _( - "A device to fuse\n" - "and split Necrozma\n" - "using a Lunala."); - -static const u8 sReinsOfUnityDesc[] = _( - "Reins that unite\n" - "Calyrex with its\n" - "beloved steed."); - -// Battle Mechanic Key Items -static const u8 sMegaRingDesc[] = _( - "Enables {PKMN} holding\n" - "their Mega Stone to\n" - "Mega Evolve."); - -static const u8 sZPowerRingDesc[] = _( - "A strange ring\n" - "that enables\n" - "Z-Move usage."); - -static const u8 sDynamaxBandDesc[] = _( - "A band carrying a\n" - "Wishing Star that\n" - "allows Dynamaxing."); - -// Misc. Key Items -static const u8 sBicycleDesc[] = _( - "A folding bicycle\n" - "that is faster than\n" - "the Running Shoes."); - -static const u8 sMachBikeDesc[] = _( - "A folding bicycle\n" - "that doubles your\n" - "speed or better."); - -static const u8 sAcroBikeDesc[] = _( - "A folding bicycle\n" - "capable of jumps\n" - "and wheelies."); - -static const u8 sOldRodDesc[] = _( - "Use by any body of\n" - "water to fish for\n" - "wild Pokémon."); - -static const u8 sGoodRodDesc[] = _( - "A decent fishing\n" - "rod for catching\n" - "wild Pokémon."); - -static const u8 sSuperRodDesc[] = _( - "The best fishing\n" - "rod for catching\n" - "wild Pokémon."); - -static const u8 sDowsingMachineDesc[] = _( - "A device that\n" - "signals an invisible\n" - "item by sound."); - -static const u8 sTownMapDesc[] = _( - "Can be viewed\n" - "anytime. Shows your\n" - "present location."); - -static const u8 sVsSeekerDesc[] = _( - "A rechargeable unit\n" - "that flags battle-\n" - "ready Trainers."); - -static const u8 sTMCaseDesc[] = _( - "A convenient case \n" - "that holds TMs and\n" - "HMs."); - -static const u8 sBerryPouchDesc[] = _( - "A convenient\n" - "container that\n" - "holds Berries."); - -static const u8 sPokemonBoxLinkDesc[] = _( - "This device grants\n" - "access to the {PKMN}\n" - "Storage System."); - -static const u8 sCoinCaseDesc[] = _( - "A case that holds\n" - "up to 9,999 Coins."); - -static const u8 sPowderJarDesc[] = _( - "Stores Berry\n" - "Powder made using\n" - "a Berry Crusher."); - -static const u8 sWailmerPailDesc[] = _( - "A tool used for\n" - "watering Berries\n" - "and plants."); - -static const u8 sPokeRadarDesc[] = _( - "A tool used to\n" - "search out Pokémon\n" - "hiding in grass."); - -static const u8 sPokeblockCaseDesc[] = _( - "A case for holding\n" - "{POKEBLOCK}s made with\n" - "a Berry Blender."); - -static const u8 sSootSackDesc[] = _( - "A sack used to\n" - "gather and hold\n" - "volcanic ash."); - -static const u8 sPokeFluteDesc[] = _( - "A sweet-sounding\n" - "flute that awakens\n" - "Pokémon."); - -static const u8 sFameCheckerDesc[] = _( - "Stores information\n" - "on famous people\n" - "for instant recall."); - -static const u8 sTeachyTVDesc[] = _( - "A TV set tuned to\n" - "an advice program\n" - "for Trainers."); - -// Story Key Items -static const u8 sSSTicketDesc[] = _( - "The ticket required\n" - "for sailing on a\n" - "ferry."); - -static const u8 sEonTicketDesc[] = _( - "The ticket for a\n" - "ferry to a distant\n" - "southern island."); - -static const u8 sMysticTicketDesc[] = _( - "A ticket required\n" - "to board the ship\n" - "to Navel Rock."); - -static const u8 sAuroraTicketDesc[] = _( - "A ticket required\n" - "to board the ship\n" - "to Birth Island."); - -static const u8 sOldSeaMapDesc[] = _( - "A faded sea chart\n" - "that shows the way\n" - "to a certain island."); - -static const u8 sLetterDesc[] = _( - "A letter to Steven\n" - "from the President\n" - "of the Devon Corp."); - -static const u8 sDevonPartsDesc[] = _( - "A package that\n" - "contains Devon's\n" - "machine parts."); - -static const u8 sGoGogglesDesc[] = _( - "Nifty goggles that\n" - "protect eyes from\n" - "desert sandstorms."); - -static const u8 sDevonScopeDesc[] = _( - "A device by Devon\n" - "that signals any\n" - "unseeable Pokémon."); - -static const u8 sBasementKeyDesc[] = _( - "The key for New\n" - "Mauville beneath\n" - "Mauville City."); - -static const u8 sScannerDesc[] = _( - "A device found\n" - "inside the\n" - "Abandoned Ship."); - -static const u8 sStorageKeyDesc[] = _( - "The key to the\n" - "storage inside the\n" - "Abandoned Ship."); - -static const u8 sKeyToRoom1Desc[] = _( - "A key that opens a\n" - "door inside the\n" - "Abandoned Ship."); - -static const u8 sKeyToRoom2Desc[] = _( - "A key that opens a\n" - "door inside the\n" - "Abandoned Ship."); - -static const u8 sKeyToRoom4Desc[] = _( - "A key that opens a\n" - "door inside the\n" - "Abandoned Ship."); - -static const u8 sKeyToRoom6Desc[] = _( - "A key that opens a\n" - "door inside the\n" - "Abandoned Ship."); - -static const u8 sMeteoriteDesc[] = _( - "A meteorite found\n" - "at Meteor Falls."); - -static const u8 sMagmaEmblemDesc[] = _( - "A medal-like item in\n" - "the same shape as\n" - "Team Magma's mark."); - -static const u8 sContestPassDesc[] = _( - "The pass required\n" - "for entering\n" - "Pokémon Contests."); - -static const u8 sOaksParcelDesc[] = _( - "A parcel for Prof.\n" - "Oak from a Pokémon\n" - "Mart's clerk."); - -static const u8 sSecretKeyDesc[] = _( - "The key to the\n" - "Cinnabar Island\n" - "Gym's entrance."); - -static const u8 sBikeVoucherDesc[] = _( - "A voucher for\n" - "obtaining a bicycle\n" - "from the Bike Shop."); - -static const u8 sGoldTeethDesc[] = _( - "Gold dentures lost\n" - "by the Safari\n" - "Zone's Warden."); - -static const u8 sCardKeyDesc[] = _( - "A card-type door\n" - "key used in Silph\n" - "Co's office."); - -static const u8 sLiftKeyDesc[] = _( - "An elevator key\n" - "used in Team\n" - "Rocket's Hideout."); - -static const u8 sSilphScopeDesc[] = _( - "Silph Co's scope\n" - "makes unseeable\n" - "POKéMON visible."); - -static const u8 sTriPassDesc[] = _( - "A pass for ferries\n" - "between One, Two,\n" - "and Three Island."); - -static const u8 sRainbowPassDesc[] = _( - "For ferries serving\n" - "Vermilion and the\n" - "Sevii Islands."); - -static const u8 sTeaDesc[] = _( - "A thirst-quenching\n" - "tea prepared by an\n" - "old lady."); - -static const u8 sRubyDesc[] = _( - "An exquisite, red-\n" - "glowing gem that\n" - "symbolizes passion."); - -static const u8 sSapphireDesc[] = _( - "A brilliant blue gem\n" - "that symbolizes\n" - "honesty."); - -static const u8 sAbilityShieldDesc[] = _( - "Ability changes are\n" - "prevented for this\n" - "items's holder."); - -static const u8 sClearAmuletDesc[] = _( - "Stat lowering is\n" - "prevented for this\n" - "items's holder."); - -static const u8 sPunchingGloveDesc[] = _( - "Powers up punching\n" - "moves and removes\n" - "their contact."); - -static const u8 sCovertCloakDesc[] = _( - "Protects the holder\n" - "from secondary\n" - "move effects."); - -static const u8 sLoadedDiceDesc[] = _( - "Rolls high numbers.\n" - "Multihit strikes\n" - "hit more times."); - -static const u8 sAuspiciousArmorDesc[] = _( - "Armor inhabited by\n" - "auspicious wishes.\n" - "Causes evolution."); - -static const u8 sBoosterEnergyDesc[] = _( - "Encapsuled energy\n" - "ups Pokémon with\n" - "certain Abilities."); - -static const u8 sBigBambooShootDesc[] = _( - "A large and rare\n" - "bamboo shoot. Best\n" - "sold to gourmands."); - -static const u8 sGimmighoulCoinDesc[] = _( - "Gimmighoul hoard\n" - "and treasure these\n" - "curious coins."); - -static const u8 sLeadersCrestDesc[] = _( - "A shard of an old\n" - "blade of some sort.\n" - "Held by Bisharp."); - -static const u8 sMaliciousArmorDesc[] = _( - "Armor inhabited by\n" - "malicious will.\n" - "Causes evolution."); - -static const u8 sMirrorHerbDesc[] = _( - "Mirrors an enemy's\n" - "stat increases\n" - "but only once."); - -static const u8 sScrollOfDarknessDesc[] = _( - "A peculiar scroll\n" - "with secrets of\n" - "the dark path."); - -static const u8 sScrollOfWatersDesc[] = _( - "A peculiar scroll\n" - "with secrets of\n" - "the water path."); - -static const u8 sTeraOrbDesc[] = _( - "Energy charges can\n" - "be used to cause\n" - "Terastallization."); - -static const u8 sTinyBambooShootDesc[] = _( - "A small and rare\n" - "bamboo shoot. Best\n" - "sold to gourmands."); - -static const u8 sTeraShardDesc[] = _( - "These shards may\n" - "form when a Tera\n" - "Pokémon faints."); - -static const u8 sAdamantCrystalDesc[] = _( - "A large, glowing gem\n" - "that lets Dialga\n" - "change form."); - -static const u8 sGriseousCoreDesc[] = _( - "A large, glowing gem\n" - "that lets Giratina\n" - "change form."); - -static const u8 sLustrousGlobeDesc[] = _( - "A large, glowing gem\n" - "that lets Palkia\n" - "change form."); - -static const u8 sBerserkGene[] = _( - "Sharply boosts\n" - "Attack, but causes\n" - "lasting confusion."); - -static const u8 sFairyFeatherDesc[] = _( - "A hold item that\n" - "raises the power of\n" - "Fairy-type moves."); - -static const u8 sSyrupyAppleDesc[] = _( - "A very syrupy apple\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sUnremarkableTeacupDesc[] = _( - "A cracked teacup\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sMasterpieceTeacupDesc[] = _( - "A chipped teacup\n" - "that makes certain\n" - "Pokémon evolve."); - -static const u8 sCornerstoneMaskDesc[] = _( - "Allows Ogerpon to\n" - "wield the Rock-\n" - "type in battle."); - -static const u8 sWellspringMaskDesc[] = _( - "Allows Ogerpon to\n" - "wield the Water-\n" - "type in battle."); - -static const u8 sHearthflameMaskDesc[] = _( - "Allows Ogerpon to\n" - "wield the Fire-\n" - "type in battle."); - -static const u8 sHealthMochiDesc[] = _( - "An item that raises\n" - "the base HP of\n" - "a Pokémon."); - -static const u8 sMuscleMochiDesc[] = _( - "An item that raises\n" - "the base Attack of\n" - "a Pokémon."); - -static const u8 sResistMochiDesc[] = _( - "An item that raises\n" - "the base Defense\n" - "of a Pokémon."); - -static const u8 sGeniusMochiDesc[] = _( - "An item that raises\n" - "the base Sp. Atk.\n" - "of a Pokémon."); - -static const u8 sCleverMochiDesc[] = _( - "An item that raises\n" - "the base Sp. Def.\n" - "of a Pokémon."); - -static const u8 sSwiftMochiDesc[] = _( - "An item that raises\n" - "the base Speed of\n" - "a Pokémon."); - -static const u8 sFreshStartMochiDesc[] = _( - "An item that resets\n" - "all base points of\n" - "a Pokémon."); - -static const u8 sGlimmeringCharmDesc[] = _( - "A charm that will\n" - "raise the shards\n" - "from Tera Raids."); diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index 3c1189144a..c321a844b1 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/species_names.h b/src/data/text/species_names.h deleted file mode 100644 index dd840c1ce6..0000000000 --- a/src/data/text/species_names.h +++ /dev/null @@ -1,1568 +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_TAUROS_PALDEAN_COMBAT_BREED] = _("Tauros"), - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = _("Tauros"), - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = _("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_WOOPER_PALDEAN] = _("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_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"), - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = _("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_URSALUNA_BLOODMOON] = _("Ursaluna"), - [SPECIES_BASCULEGION_MALE] = _("Bsculegion"), - [SPECIES_SNEASLER] = _("Sneasler"), - [SPECIES_OVERQWIL] = _("Overqwil"), - [SPECIES_ENAMORUS_INCARNATE] = _("Enamorus"), -#endif -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = _("Sprigatito"), - [SPECIES_FLORAGATO] = _("Floragato"), - [SPECIES_MEOWSCARADA] = _("Meowscarad"), - [SPECIES_FUECOCO] = _("Fuecoco"), - [SPECIES_CROCALOR] = _("Crocalor"), - [SPECIES_SKELEDIRGE] = _("Skeledirge"), - [SPECIES_QUAXLY] = _("Quaxly"), - [SPECIES_QUAXWELL] = _("Quaxwell"), - [SPECIES_QUAQUAVAL] = _("Quaquaval"), - [SPECIES_LECHONK] = _("Lechonk"), - [SPECIES_OINKOLOGNE_MALE] = _("Oinkologne"), - [SPECIES_OINKOLOGNE_FEMALE] = _("Oinkologne"), - [SPECIES_TAROUNTULA] = _("Tarountula"), - [SPECIES_SPIDOPS] = _("Spidops"), - [SPECIES_NYMBLE] = _("Nymble"), - [SPECIES_LOKIX] = _("Lokix"), - [SPECIES_PAWMI] = _("Pawmi"), - [SPECIES_PAWMO] = _("Pawmo"), - [SPECIES_PAWMOT] = _("Pawmot"), - [SPECIES_TANDEMAUS] = _("Tandemaus"), - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = _("Maushold"), - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = _("Maushold"), - [SPECIES_FIDOUGH] = _("Fidough"), - [SPECIES_DACHSBUN] = _("Dachsbun"), - [SPECIES_SMOLIV] = _("Smoliv"), - [SPECIES_DOLLIV] = _("Dolliv"), - [SPECIES_ARBOLIVA] = _("Arboliva"), - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = _("Sqawkabily"), - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = _("Sqawkabily"), - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = _("Sqawkabily"), - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = _("Sqawkabily"), - [SPECIES_NACLI] = _("Nacli"), - [SPECIES_NACLSTACK] = _("Naclstack"), - [SPECIES_GARGANACL] = _("Garganacl"), - [SPECIES_CHARCADET] = _("Charcadet"), - [SPECIES_ARMAROUGE] = _("Armarouge"), - [SPECIES_CERULEDGE] = _("Ceruledge"), - [SPECIES_TADBULB] = _("Tadbulb"), - [SPECIES_BELLIBOLT] = _("Bellibolt"), - [SPECIES_WATTREL] = _("Wattrel"), - [SPECIES_KILOWATTREL] = _("Kilowatrel"), - [SPECIES_MASCHIFF] = _("Maschiff"), - [SPECIES_MABOSSTIFF] = _("Mabosstiff"), - [SPECIES_SHROODLE] = _("Shroodle"), - [SPECIES_GRAFAIAI] = _("Grafaiai"), - [SPECIES_BRAMBLIN] = _("Bramblin"), - [SPECIES_BRAMBLEGHAST] = _("Brmblghast"), - [SPECIES_TOEDSCOOL] = _("Toedscool"), - [SPECIES_TOEDSCRUEL] = _("Toedscruel"), - [SPECIES_KLAWF] = _("Klawf"), - [SPECIES_CAPSAKID] = _("Capsakid"), - [SPECIES_SCOVILLAIN] = _("Scovillain"), - [SPECIES_RELLOR] = _("Rellor"), - [SPECIES_RABSCA] = _("Rabsca"), - [SPECIES_FLITTLE] = _("Flittle"), - [SPECIES_ESPATHRA] = _("Espathra"), - [SPECIES_TINKATINK] = _("Tinkatink"), - [SPECIES_TINKATUFF] = _("Tinkatuff"), - [SPECIES_TINKATON] = _("Tinkaton"), - [SPECIES_WIGLETT] = _("Wiglett"), - [SPECIES_WUGTRIO] = _("Wugtrio"), - [SPECIES_BOMBIRDIER] = _("Bombirdier"), - [SPECIES_FINIZEN] = _("Finizen"), - [SPECIES_PALAFIN_ZERO] = _("Palafin"), - [SPECIES_PALAFIN_HERO] = _("Palafin"), - [SPECIES_VAROOM] = _("Varoom"), - [SPECIES_REVAVROOM] = _("Revavroom"), - [SPECIES_CYCLIZAR] = _("Cyclizar"), - [SPECIES_ORTHWORM] = _("Orthworm"), - [SPECIES_GLIMMET] = _("Glimmet"), - [SPECIES_GLIMMORA] = _("Glimmora"), - [SPECIES_GREAVARD] = _("Greavard"), - [SPECIES_HOUNDSTONE] = _("Houndstone"), - [SPECIES_FLAMIGO] = _("Flamigo"), - [SPECIES_CETODDLE] = _("Cetoddle"), - [SPECIES_CETITAN] = _("Cetitan"), - [SPECIES_VELUZA] = _("Veluza"), - [SPECIES_DONDOZO] = _("Dondozo"), - [SPECIES_TATSUGIRI_CURLY] = _("Tatsugiri"), - [SPECIES_TATSUGIRI_DROOPY] = _("Tatsugiri"), - [SPECIES_TATSUGIRI_STRETCHY] = _("Tatsugiri"), - [SPECIES_ANNIHILAPE] = _("Annihilape"), - [SPECIES_CLODSIRE] = _("Clodsire"), - [SPECIES_FARIGIRAF] = _("Farigiraf"), - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = _("Dudunsprce"), - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = _("Dudunsprce"), - [SPECIES_KINGAMBIT] = _("Kingambit"), - [SPECIES_GREAT_TUSK] = _("Great Tusk"), - [SPECIES_SCREAM_TAIL] = _("ScreamTail"), - [SPECIES_BRUTE_BONNET] = _("BruteBonet"), - [SPECIES_FLUTTER_MANE] = _("FluttrMane"), - [SPECIES_SLITHER_WING] = _("SlithrWing"), - [SPECIES_SANDY_SHOCKS] = _("SndyShocks"), - [SPECIES_IRON_TREADS] = _("IronTreads"), - [SPECIES_IRON_BUNDLE] = _("IronBundle"), - [SPECIES_IRON_HANDS] = _("Iron Hands"), - [SPECIES_IRON_JUGULIS] = _("IronJuguls"), - [SPECIES_IRON_MOTH] = _("Iron Moth"), - [SPECIES_IRON_THORNS] = _("IronThorns"), - [SPECIES_FRIGIBAX] = _("Frigibax"), - [SPECIES_ARCTIBAX] = _("Arctibax"), - [SPECIES_BAXCALIBUR] = _("Baxcalibur"), - [SPECIES_GIMMIGHOUL_CHEST] = _("Gimmighoul"), - [SPECIES_GIMMIGHOUL_ROAMING] = _("Gimmighoul"), - [SPECIES_GHOLDENGO] = _("Gholdengo"), - [SPECIES_WO_CHIEN] = _("Wo-Chien"), - [SPECIES_CHIEN_PAO] = _("Chien-Pao"), - [SPECIES_TING_LU] = _("Ting-Lu"), - [SPECIES_CHI_YU] = _("Chi-Yu"), - [SPECIES_ROARING_MOON] = _("RoarngMoon"), - [SPECIES_IRON_VALIANT] = _("IronVliant"), - [SPECIES_KORAIDON] = _("Koraidon"), - [SPECIES_MIRAIDON] = _("Miraidon"), - [SPECIES_WALKING_WAKE] = _("WalkngWake"), - [SPECIES_IRON_LEAVES] = _("IronLeaves"), - [SPECIES_DIPPLIN] = _("Dipplin"), - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = _("Ptchageist"), - [SPECIES_POLTCHAGEIST_ARTISAN] = _("Ptchageist"), - [SPECIES_SINISTCHA_UNREMARKABLE] = _("Sinistcha"), - [SPECIES_SINISTCHA_MASTERPIECE] = _("Sinistcha"), - [SPECIES_OKIDOGI] = _("Okidogi"), - [SPECIES_MUNKIDORI] = _("Munkidori"), - [SPECIES_FEZANDIPITI] = _("Fezndipiti"), - [SPECIES_OGERPON_TEAL_MASK] = _("Ogerpon"), - [SPECIES_OGERPON_WELLSPRING_MASK] = _("Ogerpon"), - [SPECIES_OGERPON_HEARTHFLAME_MASK] = _("Ogerpon"), - [SPECIES_OGERPON_CORNERSTONE_MASK] = _("Ogerpon"), - [SPECIES_OGERPON_TEAL_MASK_TERA] = _("Ogerpon"), - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = _("Ogerpon"), - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = _("Ogerpon"), - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = _("Ogerpon"), -#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"), - // 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/trainer_graphics/back_pic_anims.h b/src/data/trainer_graphics/back_pic_anims.h deleted file mode 100644 index ed12e0cb41..0000000000 --- a/src/data/trainer_graphics/back_pic_anims.h +++ /dev/null @@ -1,129 +0,0 @@ -static const union AnimCmd sAnimCmd_Brendan_1[] = -{ - ANIMCMD_FRAME(0, 24), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 24), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(3, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnimCmd_May_Steven_1[] = -{ - ANIMCMD_FRAME(0, 24), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 24), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(3, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnimCmd_Wally_1[] = -{ - ANIMCMD_FRAME(0, 24), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 24), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(3, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnimCmd_Red_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), - ANIMCMD_FRAME(4, 24), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnimCmd_Leaf_1[] = -{ - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(2, 6), - ANIMCMD_FRAME(3, 6), - ANIMCMD_FRAME(4, 24), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnimCmd_RubySapphireBrendan_1[] = -{ - ANIMCMD_FRAME(0, 24), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 24), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(3, 50), - ANIMCMD_END, -}; - -static const union AnimCmd sAnimCmd_RubySapphireMay_1[] = -{ - ANIMCMD_FRAME(0, 24), - ANIMCMD_FRAME(1, 9), - ANIMCMD_FRAME(2, 24), - ANIMCMD_FRAME(0, 9), - ANIMCMD_FRAME(3, 50), - ANIMCMD_END, -}; - -static const union AnimCmd *const sBackAnims_Brendan[] = -{ - sAnim_GeneralFrame3, - sAnimCmd_Brendan_1, -}; - -static const union AnimCmd *const sBackAnims_May[] = -{ - sAnim_GeneralFrame3, - sAnimCmd_May_Steven_1, -}; - -static const union AnimCmd *const sBackAnims_Red[] = -{ - sAnim_GeneralFrame0, - sAnimCmd_Red_1, -}; - -static const union AnimCmd *const sBackAnims_Leaf[] = -{ - sAnim_GeneralFrame0, - sAnimCmd_Leaf_1, -}; - -static const union AnimCmd *const sBackAnims_RubySapphireBrendan[] = -{ - sAnim_GeneralFrame3, - sAnimCmd_RubySapphireBrendan_1, -}; - -static const union AnimCmd *const sBackAnims_RubySapphireMay[] = -{ - sAnim_GeneralFrame3, - sAnimCmd_RubySapphireMay_1, -}; - -static const union AnimCmd *const sBackAnims_Wally[] = -{ - sAnim_GeneralFrame3, - sAnimCmd_Wally_1, -}; - -static const union AnimCmd *const sBackAnims_Steven[] = -{ - sAnim_GeneralFrame3, - sAnimCmd_May_Steven_1, -}; - -const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = -{ - [TRAINER_BACK_PIC_BRENDAN] = sBackAnims_Brendan, - [TRAINER_BACK_PIC_MAY] = sBackAnims_May, - [TRAINER_BACK_PIC_RED] = sBackAnims_Red, - [TRAINER_BACK_PIC_LEAF] = sBackAnims_Leaf, - [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = sBackAnims_RubySapphireBrendan, - [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = sBackAnims_RubySapphireMay, - [TRAINER_BACK_PIC_WALLY] = sBackAnims_Wally, - [TRAINER_BACK_PIC_STEVEN] = sBackAnims_Steven, -}; diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h deleted file mode 100644 index 524d48d480..0000000000 --- a/src/data/trainer_graphics/back_pic_tables.h +++ /dev/null @@ -1,72 +0,0 @@ -const struct MonCoords gTrainerBackPicCoords[] = -{ - [TRAINER_BACK_PIC_BRENDAN] = {.size = 8, .y_offset = 4}, - [TRAINER_BACK_PIC_MAY] = {.size = 8, .y_offset = 4}, - [TRAINER_BACK_PIC_RED] = {.size = 8, .y_offset = 5}, - [TRAINER_BACK_PIC_LEAF] = {.size = 8, .y_offset = 5}, - [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = {.size = 8, .y_offset = 4}, - [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = {.size = 8, .y_offset = 4}, - [TRAINER_BACK_PIC_WALLY] = {.size = 8, .y_offset = 4}, - [TRAINER_BACK_PIC_STEVEN] = {.size = 8, .y_offset = 4}, -}; - -// this table goes functionally unused, since none of these pics are compressed -// and the place they would get extracted to gets overwritten later anyway -// the casts are so they'll play nice with the strict struct definition -const struct CompressedSpriteSheet gTrainerBackPicTable[] = -{ - [TRAINER_BACK_PIC_BRENDAN] = { - .data = (const u32 *)gTrainerBackPic_Brendan, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_Brendan), - .tag = TRAINER_BACK_PIC_BRENDAN, - }, - [TRAINER_BACK_PIC_MAY] = { - .data = (const u32 *)gTrainerBackPic_May, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_May), - .tag = TRAINER_BACK_PIC_MAY, - }, - [TRAINER_BACK_PIC_RED] = { - .data = (const u32 *)gTrainerBackPic_Red, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_Red), - .tag = TRAINER_BACK_PIC_RED, - }, - [TRAINER_BACK_PIC_LEAF] = { - .data = (const u32 *)gTrainerBackPic_Leaf, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_Leaf), - .tag = TRAINER_BACK_PIC_LEAF, - }, - [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = { - .data = (const u32 *)gTrainerBackPic_RubySapphireBrendan, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_RubySapphireBrendan), - .tag = TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN, - }, - [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = { - .data = (const u32 *)gTrainerBackPic_RubySapphireMay, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_RubySapphireMay), - .tag = TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY, - }, - [TRAINER_BACK_PIC_WALLY] = { - .data = (const u32 *)gTrainerBackPic_Wally, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_Wally), - .tag = TRAINER_BACK_PIC_WALLY, - }, - [TRAINER_BACK_PIC_STEVEN] = { - .data = (const u32 *)gTrainerBackPic_Steven, - .size = TRAINER_PIC_SIZE * ARRAY_COUNT(gTrainerBackPicTable_Steven), - .tag = TRAINER_BACK_PIC_STEVEN, - }, -}; - -#define TRAINER_BACK_PAL(trainerPic, pal) [TRAINER_BACK_PIC_##trainerPic] = {pal, TRAINER_BACK_PIC_##trainerPic} - -const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = -{ - TRAINER_BACK_PAL(BRENDAN, gTrainerPalette_Brendan), - TRAINER_BACK_PAL(MAY, gTrainerPalette_May), - TRAINER_BACK_PAL(RED, gTrainerBackPicPalette_Red), - TRAINER_BACK_PAL(LEAF, gTrainerBackPicPalette_Leaf), - TRAINER_BACK_PAL(RUBY_SAPPHIRE_BRENDAN, gTrainerPalette_RubySapphireBrendan), - TRAINER_BACK_PAL(RUBY_SAPPHIRE_MAY, gTrainerPalette_RubySapphireMay), - TRAINER_BACK_PAL(WALLY, gTrainerPalette_Wally), - TRAINER_BACK_PAL(STEVEN, gTrainerPalette_Steven), -}; diff --git a/src/data/trainer_graphics/front_pic_anims.h b/src/data/trainer_graphics/front_pic_anims.h deleted file mode 100644 index f01394532a..0000000000 --- a/src/data/trainer_graphics/front_pic_anims.h +++ /dev/null @@ -1,468 +0,0 @@ -static const union AnimCmd *const sAnims_Hiker[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_AquaGruntM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PokemonBreederF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_CoolTrainerM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_BirdKeeper[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Collector[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_AquaGruntF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SwimmerM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_MagmaGruntM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_ExpertM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_AquaAdminM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_BlackBelt[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_AquaAdminF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_AquaLeaderArchie[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_HexManiac[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_AromaLady[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_RuinManiac[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Interviewer[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_TuberF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_TuberM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_CoolTrainerF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Lady[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Beauty[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_RichBoy[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_ExpertF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Pokemaniac[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_MagmaGruntF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Guitarist[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Kindler[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Camper[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Picnicker[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_BugManiac[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PokemonBreederM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PsychicM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PsychicF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Gentleman[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_EliteFourSidney[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_EliteFourPhoebe[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_EliteFourGlacia[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_EliteFourDrake[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderRoxanne[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderBrawly[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderWattson[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderFlannery[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderNorman[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderWinona[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderTateAndLiza[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_LeaderJuan[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SchoolKidM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SchoolKidF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SrAndJr[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PokefanM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PokefanF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Youngster[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_ChampionWallace[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Fisherman[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_CyclingTriathleteM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_CyclingTriathleteF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_RunningTriathleteM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_RunningTriathleteF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SwimmingTriathleteM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SwimmingTriathleteF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_DragonTamer[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_NinjaBoy[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_BattleGirl[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_ParasolLady[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SwimmerF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Twins[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Sailor[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_MagmaAdmin[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Wally[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Brendan[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_May[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_BugCatcher[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PokemonRangerM[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PokemonRangerF[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_MagmaLeaderMaxie[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Lass[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_YoungCouple[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_OldCouple[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SisAndBro[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Steven[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_SalonMaidenAnabel[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_DomeAceTucker[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PalaceMavenSpenser[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_ArenaTycoonGreta[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_FactoryHeadNoland[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PikeQueenLucy[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_PyramidKingBrandon[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Red[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_Leaf[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_RubySapphireBrendan[] ={ - sAnim_GeneralFrame0, -}; - -static const union AnimCmd *const sAnims_RubySapphireMay[] ={ - sAnim_GeneralFrame0, -}; - -const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[] = -{ - [TRAINER_PIC_HIKER] = sAnims_Hiker, - [TRAINER_PIC_AQUA_GRUNT_M] = sAnims_AquaGruntM, - [TRAINER_PIC_POKEMON_BREEDER_F] = sAnims_PokemonBreederF, - [TRAINER_PIC_COOLTRAINER_M] = sAnims_CoolTrainerM, - [TRAINER_PIC_BIRD_KEEPER] = sAnims_BirdKeeper, - [TRAINER_PIC_COLLECTOR] = sAnims_Collector, - [TRAINER_PIC_AQUA_GRUNT_F] = sAnims_AquaGruntF, - [TRAINER_PIC_SWIMMER_M] = sAnims_SwimmerM, - [TRAINER_PIC_MAGMA_GRUNT_M] = sAnims_MagmaGruntM, - [TRAINER_PIC_EXPERT_M] = sAnims_ExpertM, - [TRAINER_PIC_AQUA_ADMIN_M] = sAnims_AquaAdminM, - [TRAINER_PIC_BLACK_BELT] = sAnims_BlackBelt, - [TRAINER_PIC_AQUA_ADMIN_F] = sAnims_AquaAdminF, - [TRAINER_PIC_AQUA_LEADER_ARCHIE] = sAnims_AquaLeaderArchie, - [TRAINER_PIC_HEX_MANIAC] = sAnims_HexManiac, - [TRAINER_PIC_AROMA_LADY] = sAnims_AromaLady, - [TRAINER_PIC_RUIN_MANIAC] = sAnims_RuinManiac, - [TRAINER_PIC_INTERVIEWER] = sAnims_Interviewer, - [TRAINER_PIC_TUBER_F] = sAnims_TuberF, - [TRAINER_PIC_TUBER_M] = sAnims_TuberM, - [TRAINER_PIC_COOLTRAINER_F] = sAnims_CoolTrainerF, - [TRAINER_PIC_LADY] = sAnims_Lady, - [TRAINER_PIC_BEAUTY] = sAnims_Beauty, - [TRAINER_PIC_RICH_BOY] = sAnims_RichBoy, - [TRAINER_PIC_EXPERT_F] = sAnims_ExpertF, - [TRAINER_PIC_POKEMANIAC] = sAnims_Pokemaniac, - [TRAINER_PIC_MAGMA_GRUNT_F] = sAnims_MagmaGruntF, - [TRAINER_PIC_GUITARIST] = sAnims_Guitarist, - [TRAINER_PIC_KINDLER] = sAnims_Kindler, - [TRAINER_PIC_CAMPER] = sAnims_Camper, - [TRAINER_PIC_PICNICKER] = sAnims_Picnicker, - [TRAINER_PIC_BUG_MANIAC] = sAnims_BugManiac, - [TRAINER_PIC_POKEMON_BREEDER_M] = sAnims_PokemonBreederM, - [TRAINER_PIC_PSYCHIC_M] = sAnims_PsychicM, - [TRAINER_PIC_PSYCHIC_F] = sAnims_PsychicF, - [TRAINER_PIC_GENTLEMAN] = sAnims_Gentleman, - [TRAINER_PIC_ELITE_FOUR_SIDNEY] = sAnims_EliteFourSidney, - [TRAINER_PIC_ELITE_FOUR_PHOEBE] = sAnims_EliteFourPhoebe, - [TRAINER_PIC_ELITE_FOUR_GLACIA] = sAnims_EliteFourGlacia, - [TRAINER_PIC_ELITE_FOUR_DRAKE] = sAnims_EliteFourDrake, - [TRAINER_PIC_LEADER_ROXANNE] = sAnims_LeaderRoxanne, - [TRAINER_PIC_LEADER_BRAWLY] = sAnims_LeaderBrawly, - [TRAINER_PIC_LEADER_WATTSON] = sAnims_LeaderWattson, - [TRAINER_PIC_LEADER_FLANNERY] = sAnims_LeaderFlannery, - [TRAINER_PIC_LEADER_NORMAN] = sAnims_LeaderNorman, - [TRAINER_PIC_LEADER_WINONA] = sAnims_LeaderWinona, - [TRAINER_PIC_LEADER_TATE_AND_LIZA] = sAnims_LeaderTateAndLiza, - [TRAINER_PIC_LEADER_JUAN] = sAnims_LeaderJuan, - [TRAINER_PIC_SCHOOL_KID_M] = sAnims_SchoolKidM, - [TRAINER_PIC_SCHOOL_KID_F] = sAnims_SchoolKidF, - [TRAINER_PIC_SR_AND_JR] = sAnims_SrAndJr, - [TRAINER_PIC_POKEFAN_M] = sAnims_PokefanM, - [TRAINER_PIC_POKEFAN_F] = sAnims_PokefanF, - [TRAINER_PIC_YOUNGSTER] = sAnims_Youngster, - [TRAINER_PIC_CHAMPION_WALLACE] = sAnims_ChampionWallace, - [TRAINER_PIC_FISHERMAN] = sAnims_Fisherman, - [TRAINER_PIC_CYCLING_TRIATHLETE_M] = sAnims_CyclingTriathleteM, - [TRAINER_PIC_CYCLING_TRIATHLETE_F] = sAnims_CyclingTriathleteF, - [TRAINER_PIC_RUNNING_TRIATHLETE_M] = sAnims_RunningTriathleteM, - [TRAINER_PIC_RUNNING_TRIATHLETE_F] = sAnims_RunningTriathleteF, - [TRAINER_PIC_SWIMMING_TRIATHLETE_M] = sAnims_SwimmingTriathleteM, - [TRAINER_PIC_SWIMMING_TRIATHLETE_F] = sAnims_SwimmingTriathleteF, - [TRAINER_PIC_DRAGON_TAMER] = sAnims_DragonTamer, - [TRAINER_PIC_NINJA_BOY] = sAnims_NinjaBoy, - [TRAINER_PIC_BATTLE_GIRL] = sAnims_BattleGirl, - [TRAINER_PIC_PARASOL_LADY] = sAnims_ParasolLady, - [TRAINER_PIC_SWIMMER_F] = sAnims_SwimmerF, - [TRAINER_PIC_TWINS] = sAnims_Twins, - [TRAINER_PIC_SAILOR] = sAnims_Sailor, - [TRAINER_PIC_MAGMA_ADMIN] = sAnims_MagmaAdmin, - [TRAINER_PIC_WALLY] = sAnims_Wally, - [TRAINER_PIC_BRENDAN] = sAnims_Brendan, - [TRAINER_PIC_MAY] = sAnims_May, - [TRAINER_PIC_BUG_CATCHER] = sAnims_BugCatcher, - [TRAINER_PIC_POKEMON_RANGER_M] = sAnims_PokemonRangerM, - [TRAINER_PIC_POKEMON_RANGER_F] = sAnims_PokemonRangerF, - [TRAINER_PIC_MAGMA_LEADER_MAXIE] = sAnims_MagmaLeaderMaxie, - [TRAINER_PIC_LASS] = sAnims_Lass, - [TRAINER_PIC_YOUNG_COUPLE] = sAnims_YoungCouple, - [TRAINER_PIC_OLD_COUPLE] = sAnims_OldCouple, - [TRAINER_PIC_SIS_AND_BRO] = sAnims_SisAndBro, - [TRAINER_PIC_STEVEN] = sAnims_Steven, - [TRAINER_PIC_SALON_MAIDEN_ANABEL] = sAnims_SalonMaidenAnabel, - [TRAINER_PIC_DOME_ACE_TUCKER] = sAnims_DomeAceTucker, - [TRAINER_PIC_PALACE_MAVEN_SPENSER] = sAnims_PalaceMavenSpenser, - [TRAINER_PIC_ARENA_TYCOON_GRETA] = sAnims_ArenaTycoonGreta, - [TRAINER_PIC_FACTORY_HEAD_NOLAND] = sAnims_FactoryHeadNoland, - [TRAINER_PIC_PIKE_QUEEN_LUCY] = sAnims_PikeQueenLucy, - [TRAINER_PIC_PYRAMID_KING_BRANDON] = sAnims_PyramidKingBrandon, - [TRAINER_PIC_RED] = sAnims_Red, - [TRAINER_PIC_LEAF] = sAnims_Leaf, - [TRAINER_PIC_RS_BRENDAN] = sAnims_RubySapphireBrendan, - [TRAINER_PIC_RS_MAY] = sAnims_RubySapphireMay, -}; diff --git a/src/data/trainer_graphics/front_pic_tables.h b/src/data/trainer_graphics/front_pic_tables.h deleted file mode 100644 index dd4aa26de0..0000000000 --- a/src/data/trainer_graphics/front_pic_tables.h +++ /dev/null @@ -1,294 +0,0 @@ -const struct MonCoords gTrainerFrontPicCoords[] = -{ - [TRAINER_PIC_HIKER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_AQUA_GRUNT_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_POKEMON_BREEDER_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_COOLTRAINER_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_BIRD_KEEPER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_COLLECTOR] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_AQUA_GRUNT_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SWIMMER_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_MAGMA_GRUNT_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_EXPERT_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_AQUA_ADMIN_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_BLACK_BELT] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_AQUA_ADMIN_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_AQUA_LEADER_ARCHIE] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_HEX_MANIAC] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_AROMA_LADY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_RUIN_MANIAC] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_INTERVIEWER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_TUBER_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_TUBER_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_COOLTRAINER_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LADY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_BEAUTY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_RICH_BOY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_EXPERT_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_POKEMANIAC] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_MAGMA_GRUNT_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_GUITARIST] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_KINDLER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_CAMPER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_PICNICKER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_BUG_MANIAC] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_POKEMON_BREEDER_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_PSYCHIC_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_PSYCHIC_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_GENTLEMAN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_ELITE_FOUR_SIDNEY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_ELITE_FOUR_PHOEBE] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_ELITE_FOUR_GLACIA] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_ELITE_FOUR_DRAKE] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_ROXANNE] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_BRAWLY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_WATTSON] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_FLANNERY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_NORMAN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_WINONA] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_TATE_AND_LIZA] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEADER_JUAN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SCHOOL_KID_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SCHOOL_KID_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SR_AND_JR] = {.size = 8, .y_offset = 2}, - [TRAINER_PIC_POKEFAN_M] = {.size = 8, .y_offset = 2}, - [TRAINER_PIC_POKEFAN_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_YOUNGSTER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_CHAMPION_WALLACE] = {.size = 8, .y_offset = 2}, - [TRAINER_PIC_FISHERMAN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_CYCLING_TRIATHLETE_M] = {.size = 8, .y_offset = 2}, - [TRAINER_PIC_CYCLING_TRIATHLETE_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_RUNNING_TRIATHLETE_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_RUNNING_TRIATHLETE_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SWIMMING_TRIATHLETE_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SWIMMING_TRIATHLETE_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_DRAGON_TAMER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_NINJA_BOY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_BATTLE_GIRL] = {.size = 8, .y_offset = 2}, - [TRAINER_PIC_PARASOL_LADY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SWIMMER_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_TWINS] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SAILOR] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_MAGMA_ADMIN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_WALLY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_BRENDAN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_MAY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_BUG_CATCHER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_POKEMON_RANGER_M] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_POKEMON_RANGER_F] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_MAGMA_LEADER_MAXIE] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LASS] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_YOUNG_COUPLE] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_OLD_COUPLE] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SIS_AND_BRO] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_STEVEN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_SALON_MAIDEN_ANABEL] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_DOME_ACE_TUCKER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_PALACE_MAVEN_SPENSER] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_ARENA_TYCOON_GRETA] = {.size = 8, .y_offset = 2}, - [TRAINER_PIC_FACTORY_HEAD_NOLAND] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_PIKE_QUEEN_LUCY] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_PYRAMID_KING_BRANDON] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_RED] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_LEAF] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_RS_BRENDAN] = {.size = 8, .y_offset = 1}, - [TRAINER_PIC_RS_MAY] = {.size = 8, .y_offset = 1}, -}; - -#define TRAINER_SPRITE(trainerPic, sprite, size) [TRAINER_PIC_##trainerPic] = {sprite, size, TRAINER_PIC_##trainerPic} - -const struct CompressedSpriteSheet gTrainerFrontPicTable[] = -{ - TRAINER_SPRITE(HIKER, gTrainerFrontPic_Hiker, TRAINER_PIC_SIZE), - TRAINER_SPRITE(AQUA_GRUNT_M, gTrainerFrontPic_AquaGruntM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(POKEMON_BREEDER_F, gTrainerFrontPic_PokemonBreederF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(COOLTRAINER_M, gTrainerFrontPic_CoolTrainerM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(BIRD_KEEPER, gTrainerFrontPic_BirdKeeper, TRAINER_PIC_SIZE), - TRAINER_SPRITE(COLLECTOR, gTrainerFrontPic_Collector, TRAINER_PIC_SIZE), - TRAINER_SPRITE(AQUA_GRUNT_F, gTrainerFrontPic_AquaGruntF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SWIMMER_M, gTrainerFrontPic_SwimmerM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(MAGMA_GRUNT_M, gTrainerFrontPic_MagmaGruntM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(EXPERT_M, gTrainerFrontPic_ExpertM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(AQUA_ADMIN_M, gTrainerFrontPic_AquaAdminM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(BLACK_BELT, gTrainerFrontPic_BlackBelt, TRAINER_PIC_SIZE), - TRAINER_SPRITE(AQUA_ADMIN_F, gTrainerFrontPic_AquaAdminF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(AQUA_LEADER_ARCHIE, gTrainerFrontPic_AquaLeaderArchie, TRAINER_PIC_SIZE), - TRAINER_SPRITE(HEX_MANIAC, gTrainerFrontPic_HexManiac, TRAINER_PIC_SIZE), - TRAINER_SPRITE(AROMA_LADY, gTrainerFrontPic_AromaLady, TRAINER_PIC_SIZE), - TRAINER_SPRITE(RUIN_MANIAC, gTrainerFrontPic_RuinManiac, TRAINER_PIC_SIZE), - TRAINER_SPRITE(INTERVIEWER, gTrainerFrontPic_Interviewer, TRAINER_PIC_SIZE), - TRAINER_SPRITE(TUBER_F, gTrainerFrontPic_TuberF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(TUBER_M, gTrainerFrontPic_TuberM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(COOLTRAINER_F, gTrainerFrontPic_CoolTrainerF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LADY, gTrainerFrontPic_Lady, TRAINER_PIC_SIZE), - TRAINER_SPRITE(BEAUTY, gTrainerFrontPic_Beauty, TRAINER_PIC_SIZE), - TRAINER_SPRITE(RICH_BOY, gTrainerFrontPic_RichBoy, TRAINER_PIC_SIZE), - TRAINER_SPRITE(EXPERT_F, gTrainerFrontPic_ExpertF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(POKEMANIAC, gTrainerFrontPic_Pokemaniac, TRAINER_PIC_SIZE), - TRAINER_SPRITE(MAGMA_GRUNT_F, gTrainerFrontPic_MagmaGruntF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(GUITARIST, gTrainerFrontPic_Guitarist, TRAINER_PIC_SIZE), - TRAINER_SPRITE(KINDLER, gTrainerFrontPic_Kindler, TRAINER_PIC_SIZE), - TRAINER_SPRITE(CAMPER, gTrainerFrontPic_Camper, TRAINER_PIC_SIZE), - TRAINER_SPRITE(PICNICKER, gTrainerFrontPic_Picnicker, TRAINER_PIC_SIZE), - TRAINER_SPRITE(BUG_MANIAC, gTrainerFrontPic_BugManiac, TRAINER_PIC_SIZE), - TRAINER_SPRITE(POKEMON_BREEDER_M, gTrainerFrontPic_PokemonBreederM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(PSYCHIC_M, gTrainerFrontPic_PsychicM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(PSYCHIC_F, gTrainerFrontPic_PsychicF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(GENTLEMAN, gTrainerFrontPic_Gentleman, TRAINER_PIC_SIZE), - TRAINER_SPRITE(ELITE_FOUR_SIDNEY, gTrainerFrontPic_EliteFourSidney, TRAINER_PIC_SIZE), - TRAINER_SPRITE(ELITE_FOUR_PHOEBE, gTrainerFrontPic_EliteFourPhoebe, TRAINER_PIC_SIZE), - TRAINER_SPRITE(ELITE_FOUR_GLACIA, gTrainerFrontPic_EliteFourGlacia, TRAINER_PIC_SIZE), - TRAINER_SPRITE(ELITE_FOUR_DRAKE, gTrainerFrontPic_EliteFourDrake, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_ROXANNE, gTrainerFrontPic_LeaderRoxanne, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_BRAWLY, gTrainerFrontPic_LeaderBrawly, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_WATTSON, gTrainerFrontPic_LeaderWattson, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_FLANNERY, gTrainerFrontPic_LeaderFlannery, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_NORMAN, gTrainerFrontPic_LeaderNorman, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_WINONA, gTrainerFrontPic_LeaderWinona, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_TATE_AND_LIZA, gTrainerFrontPic_LeaderTateAndLiza, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEADER_JUAN, gTrainerFrontPic_LeaderJuan, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SCHOOL_KID_M, gTrainerFrontPic_SchoolKidM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SCHOOL_KID_F, gTrainerFrontPic_SchoolKidF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SR_AND_JR, gTrainerFrontPic_SrAndJr, TRAINER_PIC_SIZE * 2), - TRAINER_SPRITE(POKEFAN_M, gTrainerFrontPic_PokefanM, TRAINER_PIC_SIZE * 2), - TRAINER_SPRITE(POKEFAN_F, gTrainerFrontPic_PokefanF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(YOUNGSTER, gTrainerFrontPic_Youngster, TRAINER_PIC_SIZE), - TRAINER_SPRITE(CHAMPION_WALLACE, gTrainerFrontPic_ChampionWallace, TRAINER_PIC_SIZE * 2), - TRAINER_SPRITE(FISHERMAN, gTrainerFrontPic_Fisherman, TRAINER_PIC_SIZE), - TRAINER_SPRITE(CYCLING_TRIATHLETE_M, gTrainerFrontPic_CyclingTriathleteM, TRAINER_PIC_SIZE * 2), - TRAINER_SPRITE(CYCLING_TRIATHLETE_F, gTrainerFrontPic_CyclingTriathleteF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(RUNNING_TRIATHLETE_M, gTrainerFrontPic_RunningTriathleteM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(RUNNING_TRIATHLETE_F, gTrainerFrontPic_RunningTriathleteF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SWIMMING_TRIATHLETE_M, gTrainerFrontPic_SwimmingTriathleteM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SWIMMING_TRIATHLETE_F, gTrainerFrontPic_SwimmingTriathleteF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(DRAGON_TAMER, gTrainerFrontPic_DragonTamer, TRAINER_PIC_SIZE), - TRAINER_SPRITE(NINJA_BOY, gTrainerFrontPic_NinjaBoy, TRAINER_PIC_SIZE), - TRAINER_SPRITE(BATTLE_GIRL, gTrainerFrontPic_BattleGirl, TRAINER_PIC_SIZE * 2), - TRAINER_SPRITE(PARASOL_LADY, gTrainerFrontPic_ParasolLady, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SWIMMER_F, gTrainerFrontPic_SwimmerF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(TWINS, gTrainerFrontPic_Twins, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SAILOR, gTrainerFrontPic_Sailor, TRAINER_PIC_SIZE), - TRAINER_SPRITE(MAGMA_ADMIN, gTrainerFrontPic_MagmaAdmin, TRAINER_PIC_SIZE), - TRAINER_SPRITE(WALLY, gTrainerFrontPic_Wally, TRAINER_PIC_SIZE), - TRAINER_SPRITE(BRENDAN, gTrainerFrontPic_Brendan, TRAINER_PIC_SIZE), - TRAINER_SPRITE(MAY, gTrainerFrontPic_May, TRAINER_PIC_SIZE), - TRAINER_SPRITE(BUG_CATCHER, gTrainerFrontPic_BugCatcher, TRAINER_PIC_SIZE), - TRAINER_SPRITE(POKEMON_RANGER_M, gTrainerFrontPic_PokemonRangerM, TRAINER_PIC_SIZE), - TRAINER_SPRITE(POKEMON_RANGER_F, gTrainerFrontPic_PokemonRangerF, TRAINER_PIC_SIZE), - TRAINER_SPRITE(MAGMA_LEADER_MAXIE, gTrainerFrontPic_MagmaLeaderMaxie, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LASS, gTrainerFrontPic_Lass, TRAINER_PIC_SIZE), - TRAINER_SPRITE(YOUNG_COUPLE, gTrainerFrontPic_YoungCouple, TRAINER_PIC_SIZE), - TRAINER_SPRITE(OLD_COUPLE, gTrainerFrontPic_OldCouple, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SIS_AND_BRO, gTrainerFrontPic_SisAndBro, TRAINER_PIC_SIZE), - TRAINER_SPRITE(STEVEN, gTrainerFrontPic_Steven, TRAINER_PIC_SIZE), - TRAINER_SPRITE(SALON_MAIDEN_ANABEL, gTrainerFrontPic_SalonMaidenAnabel, TRAINER_PIC_SIZE), - TRAINER_SPRITE(DOME_ACE_TUCKER, gTrainerFrontPic_DomeAceTucker, TRAINER_PIC_SIZE), - TRAINER_SPRITE(PALACE_MAVEN_SPENSER, gTrainerFrontPic_PalaceMavenSpenser, TRAINER_PIC_SIZE), - TRAINER_SPRITE(ARENA_TYCOON_GRETA, gTrainerFrontPic_ArenaTycoonGreta, TRAINER_PIC_SIZE * 2), - TRAINER_SPRITE(FACTORY_HEAD_NOLAND, gTrainerFrontPic_FactoryHeadNoland, TRAINER_PIC_SIZE), - TRAINER_SPRITE(PIKE_QUEEN_LUCY, gTrainerFrontPic_PikeQueenLucy, TRAINER_PIC_SIZE), - TRAINER_SPRITE(PYRAMID_KING_BRANDON, gTrainerFrontPic_PyramidKingBrandon, TRAINER_PIC_SIZE), - TRAINER_SPRITE(RED, gTrainerFrontPic_Red, TRAINER_PIC_SIZE), - TRAINER_SPRITE(LEAF, gTrainerFrontPic_Leaf, TRAINER_PIC_SIZE), - TRAINER_SPRITE(RS_BRENDAN, gTrainerFrontPic_RubySapphireBrendan, TRAINER_PIC_SIZE), - TRAINER_SPRITE(RS_MAY, gTrainerFrontPic_RubySapphireMay, TRAINER_PIC_SIZE), -}; - -#define TRAINER_PAL(trainerPic, pal) [TRAINER_PIC_##trainerPic] = {pal, TRAINER_PIC_##trainerPic} - -const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[] = -{ - TRAINER_PAL(HIKER, gTrainerPalette_Hiker), - TRAINER_PAL(AQUA_GRUNT_M, gTrainerPalette_AquaGruntM), - TRAINER_PAL(POKEMON_BREEDER_F, gTrainerPalette_PokemonBreederF), - TRAINER_PAL(COOLTRAINER_M, gTrainerPalette_CoolTrainerM), - TRAINER_PAL(BIRD_KEEPER, gTrainerPalette_BirdKeeper), - TRAINER_PAL(COLLECTOR, gTrainerPalette_Collector), - TRAINER_PAL(AQUA_GRUNT_F, gTrainerPalette_AquaGruntF), - TRAINER_PAL(SWIMMER_M, gTrainerPalette_SwimmerM), - TRAINER_PAL(MAGMA_GRUNT_M, gTrainerPalette_MagmaGruntM), - TRAINER_PAL(EXPERT_M, gTrainerPalette_ExpertM), - TRAINER_PAL(AQUA_ADMIN_M, gTrainerPalette_AquaAdminM), - TRAINER_PAL(BLACK_BELT, gTrainerPalette_BlackBelt), - TRAINER_PAL(AQUA_ADMIN_F, gTrainerPalette_AquaAdminF), - TRAINER_PAL(AQUA_LEADER_ARCHIE, gTrainerPalette_AquaLeaderArchie), - TRAINER_PAL(HEX_MANIAC, gTrainerPalette_HexManiac), - TRAINER_PAL(AROMA_LADY, gTrainerPalette_AromaLady), - TRAINER_PAL(RUIN_MANIAC, gTrainerPalette_RuinManiac), - TRAINER_PAL(INTERVIEWER, gTrainerPalette_Interviewer), - TRAINER_PAL(TUBER_F, gTrainerPalette_TuberF), - TRAINER_PAL(TUBER_M, gTrainerPalette_TuberM), - TRAINER_PAL(COOLTRAINER_F, gTrainerPalette_CoolTrainerF), - TRAINER_PAL(LADY, gTrainerPalette_Lady), - TRAINER_PAL(BEAUTY, gTrainerPalette_Beauty), - TRAINER_PAL(RICH_BOY, gTrainerPalette_RichBoy), - TRAINER_PAL(EXPERT_F, gTrainerPalette_ExpertF), - TRAINER_PAL(POKEMANIAC, gTrainerPalette_Pokemaniac), - TRAINER_PAL(MAGMA_GRUNT_F, gTrainerPalette_MagmaGruntF), - TRAINER_PAL(GUITARIST, gTrainerPalette_Guitarist), - TRAINER_PAL(KINDLER, gTrainerPalette_Kindler), - TRAINER_PAL(CAMPER, gTrainerPalette_Camper), - TRAINER_PAL(PICNICKER, gTrainerPalette_Picnicker), - TRAINER_PAL(BUG_MANIAC, gTrainerPalette_BugManiac), - TRAINER_PAL(POKEMON_BREEDER_M, gTrainerPalette_PokemonBreederM), - TRAINER_PAL(PSYCHIC_M, gTrainerPalette_PsychicM), - TRAINER_PAL(PSYCHIC_F, gTrainerPalette_PsychicF), - TRAINER_PAL(GENTLEMAN, gTrainerPalette_Gentleman), - TRAINER_PAL(ELITE_FOUR_SIDNEY, gTrainerPalette_EliteFourSidney), - TRAINER_PAL(ELITE_FOUR_PHOEBE, gTrainerPalette_EliteFourPhoebe), - TRAINER_PAL(ELITE_FOUR_GLACIA, gTrainerPalette_EliteFourGlacia), - TRAINER_PAL(ELITE_FOUR_DRAKE, gTrainerPalette_EliteFourDrake), - TRAINER_PAL(LEADER_ROXANNE, gTrainerPalette_LeaderRoxanne), - TRAINER_PAL(LEADER_BRAWLY, gTrainerPalette_LeaderBrawly), - TRAINER_PAL(LEADER_WATTSON, gTrainerPalette_LeaderWattson), - TRAINER_PAL(LEADER_FLANNERY, gTrainerPalette_LeaderFlannery), - TRAINER_PAL(LEADER_NORMAN, gTrainerPalette_LeaderNorman), - TRAINER_PAL(LEADER_WINONA, gTrainerPalette_LeaderWinona), - TRAINER_PAL(LEADER_TATE_AND_LIZA, gTrainerPalette_LeaderTateAndLiza), - TRAINER_PAL(LEADER_JUAN, gTrainerPalette_LeaderJuan), - TRAINER_PAL(SCHOOL_KID_M, gTrainerPalette_SchoolKidM), - TRAINER_PAL(SCHOOL_KID_F, gTrainerPalette_SchoolKidF), - TRAINER_PAL(SR_AND_JR, gTrainerPalette_SrAndJr), - TRAINER_PAL(POKEFAN_M, gTrainerPalette_PokefanM), - TRAINER_PAL(POKEFAN_F, gTrainerPalette_PokefanF), - TRAINER_PAL(YOUNGSTER, gTrainerPalette_Youngster), - TRAINER_PAL(CHAMPION_WALLACE, gTrainerPalette_ChampionWallace), - TRAINER_PAL(FISHERMAN, gTrainerPalette_Fisherman), - TRAINER_PAL(CYCLING_TRIATHLETE_M, gTrainerPalette_CyclingTriathleteM), - TRAINER_PAL(CYCLING_TRIATHLETE_F, gTrainerPalette_CyclingTriathleteF), - TRAINER_PAL(RUNNING_TRIATHLETE_M, gTrainerPalette_RunningTriathleteM), - TRAINER_PAL(RUNNING_TRIATHLETE_F, gTrainerPalette_RunningTriathleteF), - TRAINER_PAL(SWIMMING_TRIATHLETE_M, gTrainerPalette_SwimmingTriathleteM), - TRAINER_PAL(SWIMMING_TRIATHLETE_F, gTrainerPalette_SwimmingTriathleteF), - TRAINER_PAL(DRAGON_TAMER, gTrainerPalette_DragonTamer), - TRAINER_PAL(NINJA_BOY, gTrainerPalette_NinjaBoy), - TRAINER_PAL(BATTLE_GIRL, gTrainerPalette_BattleGirl), - TRAINER_PAL(PARASOL_LADY, gTrainerPalette_ParasolLady), - TRAINER_PAL(SWIMMER_F, gTrainerPalette_SwimmerF), - TRAINER_PAL(TWINS, gTrainerPalette_Twins), - TRAINER_PAL(SAILOR, gTrainerPalette_Sailor), - TRAINER_PAL(MAGMA_ADMIN, gTrainerPalette_MagmaAdmin), - TRAINER_PAL(WALLY, gTrainerPalette_Wally), - TRAINER_PAL(BRENDAN, gTrainerPalette_Brendan), - TRAINER_PAL(MAY, gTrainerPalette_May), - TRAINER_PAL(BUG_CATCHER, gTrainerPalette_BugCatcher), - TRAINER_PAL(POKEMON_RANGER_M, gTrainerPalette_PokemonRangerM), - TRAINER_PAL(POKEMON_RANGER_F, gTrainerPalette_PokemonRangerF), - TRAINER_PAL(MAGMA_LEADER_MAXIE, gTrainerPalette_MagmaLeaderMaxie), - TRAINER_PAL(LASS, gTrainerPalette_Lass), - TRAINER_PAL(YOUNG_COUPLE, gTrainerPalette_YoungCouple), - TRAINER_PAL(OLD_COUPLE, gTrainerPalette_OldCouple), - TRAINER_PAL(SIS_AND_BRO, gTrainerPalette_SisAndBro), - TRAINER_PAL(STEVEN, gTrainerPalette_Steven), - TRAINER_PAL(SALON_MAIDEN_ANABEL, gTrainerPalette_SalonMaidenAnabel), - TRAINER_PAL(DOME_ACE_TUCKER, gTrainerPalette_DomeAceTucker), - TRAINER_PAL(PALACE_MAVEN_SPENSER, gTrainerPalette_PalaceMavenSpenser), - TRAINER_PAL(ARENA_TYCOON_GRETA, gTrainerPalette_ArenaTycoonGreta), - TRAINER_PAL(FACTORY_HEAD_NOLAND, gTrainerPalette_FactoryHeadNoland), - TRAINER_PAL(PIKE_QUEEN_LUCY, gTrainerPalette_PikeQueenLucy), - TRAINER_PAL(PYRAMID_KING_BRANDON, gTrainerPalette_PyramidKingBrandon), - TRAINER_PAL(RED, gTrainerPalette_Red), - TRAINER_PAL(LEAF, gTrainerPalette_Leaf), - TRAINER_PAL(RS_BRENDAN, gTrainerPalette_RubySapphireBrendan), - TRAINER_PAL(RS_MAY, gTrainerPalette_RubySapphireMay), -}; diff --git a/src/daycare.c b/src/daycare.c index 1f90e7bc80..33b3d8ac1b 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -26,8 +26,6 @@ #include "constants/moves.h" #include "constants/region_map_sections.h" -extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; - #define IS_DITTO(species) (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_DITTO || gSpeciesInfo[species].eggGroups[1] == EGG_GROUP_DITTO) static void ClearDaycareMonMail(struct DaycareMail *mail); @@ -237,9 +235,8 @@ static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycar CompactPartySlots(); CalculatePlayerPartyCount(); -#if P_EGG_MOVE_TRANSFER >= GEN_8 - TransferEggMoves(); -#endif + if (P_EGG_MOVE_TRANSFER >= GEN_8) + TransferEggMoves(); } static void StorePokemonInEmptyDaycareSlot(struct Pokemon *mon, struct DayCare *daycare) @@ -455,14 +452,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; @@ -697,16 +697,19 @@ static void InheritPokeball(struct Pokemon *egg, struct BoxPokemon *father, stru if (motherBall == ITEM_MASTER_BALL || motherBall == ITEM_CHERISH_BALL) motherBall = ITEM_POKE_BALL; -#if P_BALL_INHERITING >= GEN_7 - if (fatherSpecies == motherSpecies) - inheritBall = (Random() % 2 == 0 ? motherBall : fatherBall); - else if (motherSpecies != SPECIES_DITTO) + if (P_BALL_INHERITING >= GEN_7) + { + if (fatherSpecies == motherSpecies) + inheritBall = (Random() % 2 == 0 ? motherBall : fatherBall); + else if (motherSpecies != SPECIES_DITTO) + inheritBall = motherBall; + else + inheritBall = fatherBall; + } + else if (P_BALL_INHERITING == GEN_6) + { inheritBall = motherBall; - else - inheritBall = fatherBall; -#elif P_BALL_INHERITING == GEN_6 - inheritBall = motherBall; -#endif + } SetMonData(egg, MON_DATA_POKEBALL, &inheritBall); } @@ -718,21 +721,18 @@ static void InheritAbility(struct Pokemon *egg, struct BoxPokemon *father, struc u8 inheritAbility = motherAbility; if (motherSpecies == SPECIES_DITTO) - #if P_ABILITY_INHERITANCE < GEN_6 - return; - #else - inheritAbility = fatherAbility; - #endif + { + if (P_ABILITY_INHERITANCE >= GEN_6) + inheritAbility = fatherAbility; + else + return; + } if (inheritAbility < 2 && (Random() % 10 < 8)) { SetMonData(egg, MON_DATA_ABILITY_NUM, &inheritAbility); } -#if P_ABILITY_INHERITANCE < GEN_6 - else if (Random() % 10 < 8) -#else - else if (Random() % 10 < 6) -#endif + else if (Random() % 10 < (P_ABILITY_INHERITANCE >= GEN_6 ? 6 : 8)) { // Hidden Abilities have a different chance of being passed down SetMonData(egg, MON_DATA_ABILITY_NUM, &inheritAbility); @@ -1087,9 +1087,8 @@ static void _GiveEggFromDaycare(struct DayCare *daycare) InheritIVs(&egg, daycare); InheritPokeball(&egg, &daycare->mons[parentSlots[1]].mon, &daycare->mons[parentSlots[0]].mon); BuildEggMoveset(&egg, &daycare->mons[parentSlots[1]].mon, &daycare->mons[parentSlots[0]].mon); -#if P_ABILITY_INHERITANCE >= GEN_6 - InheritAbility(&egg, &daycare->mons[parentSlots[1]].mon, &daycare->mons[parentSlots[0]].mon); -#endif + if (P_ABILITY_INHERITANCE >= GEN_6) + InheritAbility(&egg, &daycare->mons[parentSlots[1]].mon, &daycare->mons[parentSlots[0]].mon); GiveMoveIfItem(&egg, daycare); @@ -1309,7 +1308,7 @@ u8 GetDaycareCompatibilityScore(struct DayCare *daycare) } // check unbreedable egg group - if (eggGroups[0][0] == EGG_GROUP_UNDISCOVERED || eggGroups[1][0] == EGG_GROUP_UNDISCOVERED) + if (eggGroups[0][0] == EGG_GROUP_NO_EGGS_DISCOVERED || eggGroups[1][0] == EGG_GROUP_NO_EGGS_DISCOVERED) return PARENTS_INCOMPATIBLE; // two Ditto can't breed if (eggGroups[0][0] == EGG_GROUP_DITTO && eggGroups[1][0] == EGG_GROUP_DITTO) diff --git a/src/debug.c b/src/debug.c index 9db4862120..c1853af4cf 100644 --- a/src/debug.c +++ b/src/debug.c @@ -71,22 +71,20 @@ enum DebugMenu { DEBUG_MENU_ITEM_UTILITIES, + DEBUG_MENU_ITEM_PARTY_BOXES, + DEBUG_MENU_ITEM_GIVE, DEBUG_MENU_ITEM_SCRIPTS, DEBUG_MENU_ITEM_FLAGVAR, - //DEBUG_MENU_ITEM_BATTLE, - DEBUG_MENU_ITEM_GIVE, DEBUG_MENU_ITEM_FILL, + //DEBUG_MENU_ITEM_BATTLE, DEBUG_MENU_ITEM_SOUND, - DEBUG_MENU_ITEM_ACCESS_PC, DEBUG_MENU_ITEM_CANCEL, }; enum UtilMenu { - DEBUG_UTIL_MENU_ITEM_HEAL_PARTY, DEBUG_UTIL_MENU_ITEM_FLY, DEBUG_UTIL_MENU_ITEM_WARP, - DEBUG_UTIL_MENU_ITEM_POISON_MONS, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK, DEBUG_UTIL_MENU_ITEM_ROM_SPACE, DEBUG_UTIL_MENU_ITEM_WEATHER, @@ -96,12 +94,20 @@ enum UtilMenu 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 PartyBoxesMenu +{ + DEBUG_PARTY_BOXES_MENU_ITEM_ACCESS_PC, + DEBUG_PARTY_BOXES_MENU_ITEM_MOVE_REMINDER, + DEBUG_PARTY_BOXES_MENU_ITEM_HATCH_AN_EGG, + DEBUG_PARTY_BOXES_MENU_ITEM_HEAL_PARTY, + DEBUG_PARTY_BOXES_MENU_ITEM_POISON_MONS, + DEBUG_PARTY_BOXES_MENU_ITEM_CLEAR_BOXES, +}; + enum ScriptMenu { DEBUG_UTIL_MENU_ITEM_SCRIPT_1, @@ -305,15 +311,16 @@ static void DebugAction_Util_Script_7(u8 taskId); static void DebugAction_Util_Script_8(u8 taskId); static void DebugAction_OpenUtilitiesMenu(u8 taskId); +static void DebugAction_OpenPartyBoxesMenu(u8 taskId); static void DebugAction_OpenScriptsMenu(u8 taskId); static void DebugAction_OpenFlagsVarsMenu(u8 taskId); 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_PartyBoxes(u8 taskId); static void DebugTask_HandleMenuInput_Scripts(u8 taskId); static void DebugTask_HandleMenuInput_FlagsVars(u8 taskId); static void DebugTask_HandleMenuInput_Battle(u8 taskId); @@ -321,14 +328,11 @@ static void DebugTask_HandleMenuInput_Give(u8 taskId); static void DebugTask_HandleMenuInput_Fill(u8 taskId); static void DebugTask_HandleMenuInput_Sound(u8 taskId); -static void DebugAction_Util_HealParty(u8 taskId); static void DebugAction_Util_Fly(u8 taskId); static void DebugAction_Util_Warp_Warp(u8 taskId); static void DebugAction_Util_Warp_SelectMapGroup(u8 taskId); static void DebugAction_Util_Warp_SelectMap(u8 taskId); static void DebugAction_Util_Warp_SelectWarp(u8 taskId); -static void DebugAction_FlagsVars_RunningShoes(u8 taskId); -static void DebugAction_Util_PoisonMons(u8 taskId); static void DebugAction_Util_CheckSaveBlock(u8 taskId); static void DebugAction_Util_CheckROMSpace(u8 taskId); static void DebugAction_Util_Weather(u8 taskId); @@ -339,11 +343,16 @@ static void DebugAction_Util_WatchCredits(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_PartyBoxes_AccessPC(u8 taskId); +static void DebugAction_PartyBoxes_MoveReminder(u8 taskId); +static void DebugAction_PartyBoxes_HatchAnEgg(u8 taskId); +static void DebugAction_PartyBoxes_HealParty(u8 taskId); +static void DebugAction_PartyBoxes_PoisonMons(u8 taskId); +static void DebugAction_PartyBoxes_ClearBoxes(u8 taskId); + static void DebugAction_FlagsVars_Flags(u8 taskId); static void DebugAction_FlagsVars_FlagsSelect(u8 taskId); static void DebugAction_FlagsVars_Vars(u8 taskId); @@ -363,6 +372,7 @@ static void DebugAction_FlagsVars_EncounterOnOff(u8 taskId); static void DebugAction_FlagsVars_TrainerSeeOnOff(u8 taskId); static void DebugAction_FlagsVars_BagUseOnOff(u8 taskId); static void DebugAction_FlagsVars_CatchingOnOff(u8 taskId); +static void DebugAction_FlagsVars_RunningShoes(u8 taskId); static void Debug_InitializeBattle(u8 taskId); @@ -402,6 +412,7 @@ static void DebugAction_Sound_MUS_SelectId(u8 taskId); extern const u8 Debug_FlagsNotSetOverworldConfigMessage[]; extern const u8 Debug_FlagsNotSetBattleConfigMessage[]; +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[]; @@ -424,6 +435,8 @@ extern const u8 Debug_CheckROMSpace[]; extern const u8 Debug_BoxFilledMessage[]; extern const u8 Debug_ShowExpansionVersion[]; +extern const u8 FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon[]; + #include "data/map_group_count.h" // Text @@ -437,13 +450,13 @@ static const u8 sDebugText_Empty[] = _(""); static const u8 sDebugText_Continue[] = _("Continue…{CLEAR_TO 110}{RIGHT_ARROW}"); // Main Menu static const u8 sDebugText_Utilities[] = _("Utilities…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_PartyBoxes[] = _("Party/Boxes…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Scripts[] = _("Scripts…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_FlagsVars[] = _("Flags & Vars…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Battle[] = _("Battle Test{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Give[] = _("Give X…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Fill[] = _("Fill PC/Pockets…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Sound[] = _("Sound…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_AccessPC[] = _("Access PC…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Cancel[] = _("Cancel"); // Script menu static const u8 sDebugText_Util_Script_1[] = _("Script 1"); @@ -455,14 +468,12 @@ 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_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}"); @@ -473,10 +484,15 @@ static const u8 sDebugText_Util_WatchCredits[] = _("Watch Credits… 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"); +// Party/Boxes Menu +static const u8 sDebugText_PartyBoxes_AccessPC[] = _("Access PC"); +static const u8 sDebugText_PartyBoxes_MoveReminder[] = _("Move Reminder"); +static const u8 sDebugText_PartyBoxes_HatchAnEgg[] = _("Hatch an Egg"); +static const u8 sDebugText_PartyBoxes_HealParty[] = _("Heal Party"); +static const u8 sDebugText_PartyBoxes_PoisonParty[] = _("Poison party"); +static const u8 sDebugText_PartyBoxes_ClearBoxes[] = _("Clear Storage Boxes"); // 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}"); @@ -614,23 +630,21 @@ 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_PARTY_BOXES] = {sDebugText_PartyBoxes, DEBUG_MENU_ITEM_PARTY_BOXES}, + [DEBUG_MENU_ITEM_GIVE] = {sDebugText_Give, DEBUG_MENU_ITEM_GIVE}, + [DEBUG_MENU_ITEM_SCRIPTS] = {sDebugText_Scripts, DEBUG_MENU_ITEM_SCRIPTS}, + [DEBUG_MENU_ITEM_FLAGVAR] = {sDebugText_FlagsVars, DEBUG_MENU_ITEM_FLAGVAR}, + [DEBUG_MENU_ITEM_FILL] = {sDebugText_Fill, DEBUG_MENU_ITEM_FILL}, + //[DEBUG_MENU_ITEM_BATTLE] = {sDebugText_Battle, DEBUG_MENU_ITEM_BATTLE}, + [DEBUG_MENU_ITEM_SOUND] = {sDebugText_Sound, DEBUG_MENU_ITEM_SOUND}, + [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_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}, @@ -640,12 +654,20 @@ static const struct ListMenuItem sDebugMenu_Items_Utilities[] = [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_PartyBoxes[] = +{ + [DEBUG_PARTY_BOXES_MENU_ITEM_ACCESS_PC] = {sDebugText_PartyBoxes_AccessPC, DEBUG_PARTY_BOXES_MENU_ITEM_ACCESS_PC}, + [DEBUG_PARTY_BOXES_MENU_ITEM_MOVE_REMINDER] = {sDebugText_PartyBoxes_MoveReminder, DEBUG_PARTY_BOXES_MENU_ITEM_MOVE_REMINDER}, + [DEBUG_PARTY_BOXES_MENU_ITEM_HATCH_AN_EGG] = {sDebugText_PartyBoxes_HatchAnEgg, DEBUG_PARTY_BOXES_MENU_ITEM_HATCH_AN_EGG}, + [DEBUG_PARTY_BOXES_MENU_ITEM_HEAL_PARTY] = {sDebugText_PartyBoxes_HealParty, DEBUG_PARTY_BOXES_MENU_ITEM_HEAL_PARTY}, + [DEBUG_PARTY_BOXES_MENU_ITEM_POISON_MONS] = {sDebugText_PartyBoxes_PoisonParty, DEBUG_PARTY_BOXES_MENU_ITEM_POISON_MONS}, + [DEBUG_PARTY_BOXES_MENU_ITEM_CLEAR_BOXES] = {sDebugText_PartyBoxes_ClearBoxes, DEBUG_PARTY_BOXES_MENU_ITEM_CLEAR_BOXES}, +}; + static const struct ListMenuItem sDebugMenu_Items_Scripts[] = { [DEBUG_UTIL_MENU_ITEM_SCRIPT_1] = {sDebugText_Util_Script_1, DEBUG_UTIL_MENU_ITEM_SCRIPT_1}, @@ -759,22 +781,21 @@ static const struct ListMenuItem sDebugMenu_Items_Sound[] = // 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_PARTY_BOXES] = DebugAction_OpenPartyBoxesMenu, + [DEBUG_MENU_ITEM_GIVE] = DebugAction_OpenGiveMenu, + [DEBUG_MENU_ITEM_SCRIPTS] = DebugAction_OpenScriptsMenu, + [DEBUG_MENU_ITEM_FLAGVAR] = DebugAction_OpenFlagsVarsMenu, + [DEBUG_MENU_ITEM_FILL] = DebugAction_OpenFillMenu, + //[DEBUG_MENU_ITEM_BATTLE] = DebugAction_OpenBattleMenu, + [DEBUG_MENU_ITEM_SOUND] = DebugAction_OpenSoundMenu, + [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, @@ -784,12 +805,20 @@ static void (*const sDebugMenu_Actions_Utilities[])(u8) = [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_PartyBoxes[])(u8) = +{ + [DEBUG_PARTY_BOXES_MENU_ITEM_ACCESS_PC] = DebugAction_PartyBoxes_AccessPC, + [DEBUG_PARTY_BOXES_MENU_ITEM_MOVE_REMINDER] = DebugAction_PartyBoxes_MoveReminder, + [DEBUG_PARTY_BOXES_MENU_ITEM_HATCH_AN_EGG] = DebugAction_PartyBoxes_HatchAnEgg, + [DEBUG_PARTY_BOXES_MENU_ITEM_HEAL_PARTY] = DebugAction_PartyBoxes_HealParty, + [DEBUG_PARTY_BOXES_MENU_ITEM_POISON_MONS] = DebugAction_PartyBoxes_PoisonMons, + [DEBUG_PARTY_BOXES_MENU_ITEM_CLEAR_BOXES] = DebugAction_PartyBoxes_ClearBoxes, +}; + static void (*const sDebugMenu_Actions_Scripts[])(u8) = { [DEBUG_UTIL_MENU_ITEM_SCRIPT_1] = DebugAction_Util_Script_1, @@ -925,6 +954,13 @@ static const struct ListMenuTemplate sDebugMenu_ListTemplate_Utilities = .totalItems = ARRAY_COUNT(sDebugMenu_Items_Utilities), }; +static const struct ListMenuTemplate sDebugMenu_ListTemplate_PartyBoxes = +{ + .items = sDebugMenu_Items_PartyBoxes, + .moveCursorFunc = ListMenuDefaultCursorMoveFunc, + .totalItems = ARRAY_COUNT(sDebugMenu_Items_PartyBoxes), +}; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Scripts = { .items = sDebugMenu_Items_Scripts, @@ -1353,6 +1389,25 @@ static void DebugTask_HandleMenuInput_Utilities(u8 taskId) } } +static void DebugTask_HandleMenuInput_PartyBoxes(u8 taskId) +{ + void (*func)(u8); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); + + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + if ((func = sDebugMenu_Actions_PartyBoxes[input]) != NULL) + func(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + Debug_DestroyMenu(taskId); + Debug_ReShowMainMenu(); + } +} + static void DebugTask_HandleMenuInput_Scripts(u8 taskId) { void (*func)(u8); @@ -1621,6 +1676,12 @@ static void DebugAction_OpenUtilitiesMenu(u8 taskId) Debug_ShowMenu(DebugTask_HandleMenuInput_Utilities, sDebugMenu_ListTemplate_Utilities); } +static void DebugAction_OpenPartyBoxesMenu(u8 taskId) +{ + Debug_DestroyMenu(taskId); + Debug_ShowMenu(DebugTask_HandleMenuInput_PartyBoxes, sDebugMenu_ListTemplate_PartyBoxes); +} + static void DebugAction_OpenScriptsMenu(u8 taskId) { Debug_DestroyMenu(taskId); @@ -1655,13 +1716,6 @@ static void DebugAction_OpenSoundMenu(u8 taskId) // ******************************* // Actions Utilities -static void DebugAction_Util_HealParty(u8 taskId) -{ - PlaySE(SE_USE_ITEM); - HealPlayerParty(); - ScriptContext_Enable(); - Debug_DestroyMenu_Full(taskId); -} static void DebugAction_Util_Fly(u8 taskId) { @@ -1866,22 +1920,6 @@ static void DebugAction_Util_Warp_SelectWarp(u8 taskId) #undef tMapNum #undef tWarp -static void DebugAction_Util_PoisonMons(u8 taskId) -{ - int i; - for (i = 0; i < PARTY_SIZE; i++) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, 0) - && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_NONE - && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_EGG) - { - u32 curStatus = STATUS1_POISON; - SetMonData(&gPlayerParty[i], MON_DATA_STATUS, &curStatus); - } - } - PlaySE(SE_FIELD_POISON); -} - void CheckSaveBlock1Size(struct ScriptContext *ctx) { u32 currSb1Size = sizeof(struct SaveBlock1); @@ -2106,19 +2144,12 @@ static void DebugAction_Util_Player_Gender(u8 taskId) static void DebugAction_Util_Player_Id(u8 taskId) { - u32 trainerId = ((Random() << 16) | Random()); + u32 trainerId = Random32(); 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)) @@ -2128,11 +2159,6 @@ static void DebugAction_Util_CheatStart(u8 taskId) 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); @@ -3658,7 +3684,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu } if (i >= PARTY_SIZE) - sentToPc = SendMonToPC(&mon); + sentToPc = CopyMonToPC(&mon); else { sentToPc = MON_GIVEN_TO_PARTY; @@ -4587,11 +4613,54 @@ SOUND_LIST_SE #undef X // ******************************* -// Actions Other +// Actions Party/Boxes -static void DebugAction_AccessPC(u8 taskId) +static void DebugAction_PartyBoxes_AccessPC(u8 taskId) { Debug_DestroyMenu_Full_Script(taskId, EventScript_PC); } +static void DebugAction_PartyBoxes_MoveReminder(u8 taskId) +{ + Debug_DestroyMenu_Full_Script(taskId, FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon); +} + +static void DebugAction_PartyBoxes_HatchAnEgg(u8 taskId) +{ + Debug_DestroyMenu_Full_Script(taskId, Debug_HatchAnEgg); +} + +static void DebugAction_PartyBoxes_HealParty(u8 taskId) +{ + PlaySE(SE_USE_ITEM); + HealPlayerParty(); + ScriptContext_Enable(); + Debug_DestroyMenu_Full(taskId); +} + +static void DebugAction_PartyBoxes_PoisonMons(u8 taskId) +{ + int i; + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, 0) + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_NONE + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG) != SPECIES_EGG) + { + u32 curStatus = STATUS1_POISON; + SetMonData(&gPlayerParty[i], MON_DATA_STATUS, &curStatus); + } + } + PlaySE(SE_FIELD_POISON); + ScriptContext_Enable(); + Debug_DestroyMenu_Full(taskId); +} + +static void DebugAction_PartyBoxes_ClearBoxes(u8 taskId) +{ + ResetPokemonStorageSystem(); + Debug_DestroyMenu_Full(taskId); + ScriptContext_Enable(); +} + #endif //DEBUG_OVERWORLD_MENU == TRUE diff --git a/src/decompress.c b/src/decompress.c index 82d5c6fdb8..4cd1b0ccd0 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 cc96fd5105..abb7ca4e15 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 cdd72d668c..6cd6955031 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8965,3 +8965,19 @@ u8 MovementAction_Fly_Finish(struct ObjectEvent *objectEvent, struct Sprite *spr { return TRUE; } + +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 05fb636fbe..1bd0e26561 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; @@ -549,8 +542,15 @@ static void CB2_TradeEvolutionSceneUpdate(void) 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 + #if P_SHEDINJA_BALL >= GEN_4 + u16 ball = ITEM_POKE_BALL; + #endif + 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 +560,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 +583,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 6a5422046e..d5c252415d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -28,6 +28,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" @@ -615,6 +616,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 cfb5021550..5d0ba3a50d 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1,4 +1,5 @@ #include "global.h" +#include "data.h" #include "decompress.h" #include "event_object_movement.h" #include "field_camera.h" @@ -31,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,14 +233,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[]; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; @@ -888,10 +893,10 @@ bool8 FieldEffectActiveListContains(u8 id) u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer) { struct SpriteTemplate spriteTemplate; - LoadCompressedSpritePaletteOverrideBuffer(&gTrainerFrontPicPaletteTable[trainerSpriteID], buffer); - LoadCompressedSpriteSheetOverrideBuffer(&gTrainerFrontPicTable[trainerSpriteID], buffer); - spriteTemplate.tileTag = gTrainerFrontPicTable[trainerSpriteID].tag; - spriteTemplate.paletteTag = gTrainerFrontPicPaletteTable[trainerSpriteID].tag; + LoadCompressedSpritePaletteOverrideBuffer(&gTrainerSprites[trainerSpriteID].palette, buffer); + LoadCompressedSpriteSheetOverrideBuffer(&gTrainerSprites[trainerSpriteID].frontPic, buffer); + spriteTemplate.tileTag = gTrainerSprites[trainerSpriteID].frontPic.tag; + spriteTemplate.paletteTag = gTrainerSprites[trainerSpriteID].palette.tag; spriteTemplate.oam = &sOam_64x64; spriteTemplate.anims = gDummySpriteAnimTable; spriteTemplate.images = NULL; @@ -902,8 +907,8 @@ u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buf static void UNUSED LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest) { - LZDecompressVram(gTrainerFrontPicTable[gender].data, dest); - LoadCompressedPalette(gTrainerFrontPicPaletteTable[gender].data, palOffset, PLTT_SIZE_4BPP); + LZDecompressVram(gTrainerSprites[gender].frontPic.data, dest); + LoadCompressedPalette(gTrainerSprites[gender].palette.data, palOffset, PLTT_SIZE_4BPP); } u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority) @@ -914,8 +919,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 @@ -924,9 +929,8 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) u8 CreateMonSprite_FieldMove(u16 species, u32 otId, u32 personality, s16 x, s16 y, u8 subpriority) { - const struct CompressedSpritePalette *spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); - u16 spriteId = CreateMonPicSprite(species, otId, personality, TRUE, x, y, 0, spritePalette->tag); - PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10); + u16 spriteId = CreateMonPicSprite(species, otId, personality, TRUE, x, y, 0, species); + PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10); if (spriteId == 0xFFFF) return MAX_SPRITES; else @@ -3911,3 +3915,68 @@ static void Task_MoveDeoxysRock(u8 taskId) #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 0f087799e3..99cab7fd77 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -241,7 +241,8 @@ static const u8 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 u8 sPlayerAvatarGfxIds[][2] = @@ -254,6 +255,7 @@ static const u8 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 u8 sFRLGAvatarGfxIds[GENDER_COUNT] = diff --git a/src/field_specials.c b/src/field_specials.c index 13b8ae9daf..c4968a6cc8 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" @@ -4207,3 +4209,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 df3afcd8a2..40bc24c741 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -627,24 +627,12 @@ const u16 gFrontierBannedSpecies[] = SPECIES_MEW, SPECIES_MEWTWO, SPECIES_HO_OH, SPECIES_LUGIA, SPECIES_CELEBI, SPECIES_KYOGRE, SPECIES_GROUDON, SPECIES_RAYQUAZA, SPECIES_JIRACHI, SPECIES_DEOXYS, -#if P_GEN_4_POKEMON == TRUE SPECIES_DIALGA, SPECIES_PALKIA, SPECIES_GIRATINA, SPECIES_MANAPHY, SPECIES_PHIONE, SPECIES_DARKRAI, SPECIES_SHAYMIN, SPECIES_ARCEUS, -#endif -#if P_GEN_5_POKEMON == TRUE SPECIES_VICTINI, SPECIES_RESHIRAM, SPECIES_ZEKROM, SPECIES_KYUREM, SPECIES_KELDEO, SPECIES_MELOETTA, SPECIES_GENESECT, -#endif -#if P_GEN_6_POKEMON == TRUE SPECIES_XERNEAS, SPECIES_YVELTAL, SPECIES_ZYGARDE, SPECIES_DIANCIE, SPECIES_HOOPA, SPECIES_VOLCANION, -#endif -#if P_GEN_7_POKEMON == TRUE SPECIES_COSMOG, SPECIES_COSMOEM, SPECIES_SOLGALEO, SPECIES_LUNALA, SPECIES_NECROZMA, SPECIES_MAGEARNA, SPECIES_MARSHADOW, SPECIES_ZERAORA, SPECIES_MELTAN, SPECIES_MELMETAL, -#endif -#if P_GEN_8_POKEMON == TRUE SPECIES_ZACIAN, SPECIES_ZAMAZENTA, SPECIES_ETERNATUS, SPECIES_CALYREX, SPECIES_ZARUDE, -#endif -#if P_GEN_9_POKEMON == TRUE SPECIES_KORAIDON, SPECIES_MIRAIDON, -#endif 0xFFFF }; @@ -1929,7 +1917,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] != GET_BASE_SPECIES_ID(species); i++) + for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF + && gFrontierBannedSpecies[i] != GET_BASE_SPECIES_ID(species) + && IsSpeciesEnabled(gFrontierBannedSpecies[i]); i++) ; if (gFrontierBannedSpecies[i] != 0xFFFF) diff --git a/src/graphics.c b/src/graphics.c index 45c066ad26..9ec11a5b8d 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1260,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"); @@ -1606,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 457e3260be..160e201b60 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.c b/src/item.c index 7c19b316d6..52af1c5f0b 100644 --- a/src/item.c +++ b/src/item.c @@ -23,7 +23,6 @@ static bool8 CheckPyramidBagHasSpace(u16 itemId, u16 count); EWRAM_DATA struct BagPocket gBagPockets[POCKETS_COUNT] = {0}; -#include "data/text/item_descriptions.h" #include "data/items.h" static u16 GetBagItemQuantity(u16 *quantity) diff --git a/src/item_use.c b/src/item_use.c index 602bda27af..6abec6498a 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 @@ -1231,7 +1234,8 @@ void ItemUseInBattle_BagMenu(u8 taskId) else { PlaySE(SE_SELECT); - RemoveUsedItem(); + if (!(B_TRY_CATCH_TRAINER_BALL >= GEN_4 && (ItemId_GetBattleUsage(gSpecialVar_ItemId) == EFFECT_ITEM_THROW_BALL) && (gBattleTypeFlags & BATTLE_TYPE_TRAINER))) + RemoveUsedItem(); ScheduleBgCopyTilemapToVram(2); if (!InBattlePyramid()) gTasks[taskId].func = Task_FadeAndCloseBagMenu; @@ -1315,7 +1319,7 @@ void ItemUseOutOfBattle_FormChange_ConsumedOnUse(u8 taskId) } void ItemUseOutOfBattle_RotomCatalog(u8 taskId) -{ +{ if (!gTasks[taskId].tUsingRegisteredKeyItem) { gItemUseCB = ItemUseCB_RotomCatalog; @@ -1330,7 +1334,7 @@ void ItemUseOutOfBattle_RotomCatalog(u8 taskId) } void ItemUseOutOfBattle_ZygardeCube(u8 taskId) -{ +{ if (!gTasks[taskId].tUsingRegisteredKeyItem) { gItemUseCB = ItemUseCB_ZygardeCube; @@ -1344,6 +1348,13 @@ void ItemUseOutOfBattle_ZygardeCube(u8 taskId) } } +void ItemUseOutOfBattle_Fusion(u8 taskId) +{ + gItemUseCB = ItemUseCB_Fusion; + gTasks[taskId].data[0] = FALSE; + SetUpItemUseCallback(taskId); +} + void Task_UseHoneyOnField(u8 taskId) { //ResetInitialPlayerAvatarState(); @@ -1372,4 +1383,68 @@ void ItemUseOutOfBattle_CannotUse(u8 taskId) DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem); } +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 diff --git a/src/load_save.c b/src/load_save.c index 44e08b5e9c..d42b71a4a9 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -13,6 +13,7 @@ #include "gba/flash_internal.h" #include "decoration_inventory.h" #include "agb_flash.h" +#include "event_data.h" static void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); @@ -126,7 +127,7 @@ void MoveSaveBlocks_ResetHeap(void) gMain.vblankCallback = vblankCB; // create a new encryption key - encryptionKey = (Random() << 16) + (Random()); + encryptionKey = Random32(); ApplyNewEncryptionKeyToAllEncryptedData(encryptionKey); gSaveBlock2Ptr->encryptionKey = encryptionKey; } diff --git a/src/lottery_corner.c b/src/lottery_corner.c index f19e9f7b7b..d06934ca51 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -23,9 +23,7 @@ static u8 GetMatchingDigits(u16, u16); void ResetLotteryCorner(void) { - u16 rand = Random(); - - SetLotteryNumber((Random() << 16) | rand); + SetLotteryNumber(Random32()); VarSet(VAR_POKELOT_PRIZE_ITEM, 0); } diff --git a/src/main.c b/src/main.c index d850bc27bc..537af7191b 100644 --- a/src/main.c +++ b/src/main.c @@ -373,7 +373,7 @@ static void VBlankIntr(void) TryReceiveLinkBattleData(); if (!gMain.inBattle || !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_RECORDED))) - Random(); + AdvanceRandom(); UpdateWirelessStatusIndicatorSprite(); diff --git a/src/menu_specialized.c b/src/menu_specialized.c index df3685ecfd..c99c71e4b5 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/overworld.c b/src/overworld.c index bf2bcf5ace..09e242b217 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -58,6 +58,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" @@ -818,6 +819,10 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) ResetCyclingRoadChallengeData(); RestartWildEncounterImmunitySteps(); TryUpdateRandomTrainerRematches(mapGroup, mapNum); + +if (I_VS_SEEKER_CHARGING != 0) + MapResetTrainerRematches(mapGroup, mapNum); + DoTimeBasedEvents(); SetSavedWeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); @@ -868,6 +873,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 798f9541d2..f333db02fb 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -247,13 +247,17 @@ 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); static bool8 AllocPartyMenuBgGfx(void); static void InitPartyMenuWindows(u8); +static void LoadPartyMenuWindows(void); static void InitPartyMenuBoxes(u8); +static void LoadPartyMenuBoxes(u8); static void LoadPartyMenuPokeballGfx(void); static bool8 CreatePartyMonSpritesLoop(void); static bool8 RenderPartyMenuBoxes(void); @@ -552,6 +556,18 @@ static void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCurs } } +static void RefreshPartyMenu(void) //Refreshes the party menu without restarting tasks +{ + u16 i; + 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(); @@ -577,6 +593,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) @@ -701,6 +726,104 @@ 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: + sPartyMenuInternal->data[0] = 0; + gMain.state++; + break; + case 7: + LoadPartyMenuWindows(); + gMain.state++; + break; + case 8: + LoadPartyMenuBoxes(gPartyMenu.layout); + sPartyMenuInternal->data[0] = 0; + gMain.state++; + break; + case 9: + LoadHeldItemIcons(); + gMain.state++; + break; + case 10: + LoadPartyMenuPokeballGfx(); + gMain.state++; + break; + case 11: + LoadPartyMenuAilmentGfx(); + gMain.state++; + break; + case 12: + LoadMonIconPalettes(); + gMain.state++; + break; + case 13: + if (CreatePartyMonSpritesLoop()) + { + sPartyMenuInternal->data[0] = 0; + gMain.state++; + } + break; + case 14: + if (RenderPartyMenuBoxes()) + { + sPartyMenuInternal->data[0] = 0; + gMain.state++; + } + break; + case 15: + CreateCancelConfirmPokeballSprites(); + gMain.state++; + break; + case 16: + CreateCancelConfirmWindows(sPartyMenuInternal->chooseHalf); + gMain.state++; + break; + case 17: + BlendPalettes(PALETTES_ALL, 16, RGB_WHITEALPHA); + gPaletteFade.bufferTransferDisabled = FALSE; + gMain.state++; + break; + case 18: + 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); @@ -818,9 +941,13 @@ static void FreePartyPointers(void) static void InitPartyMenuBoxes(u8 layout) { - u8 i; - sPartyMenuBoxes = Alloc(sizeof(struct PartyMenuBox[PARTY_SIZE])); + LoadPartyMenuBoxes(layout); +} + +static void LoadPartyMenuBoxes(u8 layout) +{ + u32 i; for (i = 0; i < PARTY_SIZE; i++) { @@ -2087,8 +2214,6 @@ static u8 CanTeachMove(struct Pokemon *mon, u16 move) static void InitPartyMenuWindows(u8 layout) { - u8 i; - switch (layout) { case PARTY_LAYOUT_SINGLE: @@ -2104,6 +2229,12 @@ static void InitPartyMenuWindows(u8 layout) InitWindows(sShowcaseMultiPartyMenuWindowTemplate); break; } + LoadPartyMenuWindows(); +} + +static void LoadPartyMenuWindows(void) +{ + u32 i; DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); @@ -5707,11 +5838,46 @@ 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; @@ -5771,6 +5937,250 @@ bool32 DoesMonHaveAnyMoves(struct Pokemon *mon) 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) { diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 7b61eec478..c7ef8c9e90 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 d191a2aa87..33b7dd02dd 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); @@ -852,9 +856,6 @@ 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[] = @@ -991,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] = { @@ -2435,15 +2434,15 @@ static void CreateMonDexNum(u16 entryNum, u8 left, u8 top, u16 unused) if (sPokedexView->dexMode == DEX_MODE_HOENN) dexNum = NationalToHoennOrder(dexNum); memcpy(text, sText_No0000, ARRAY_COUNT(sText_No0000)); - if (NATIONAL_DEX_COUNT > 999) + if (NATIONAL_DEX_COUNT > 999 && sPokedexView->dexMode != DEX_MODE_HOENN) { 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; + text[offset++] = CHAR_0 + (dexNum % 1000) / 100; + text[offset++] = CHAR_0 + ((dexNum % 1000) % 100) / 10; + text[offset++] = CHAR_0 + ((dexNum % 1000) % 100) % 10; + text[offset++] = EOS; PrintMonDexNumAndName(0, FONT_NARROW, text, left, top); } @@ -3810,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++; @@ -3821,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); @@ -3969,7 +3968,7 @@ static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b) } #define tState data[0] -#define tDexNum data[1] +#define tSpecies data[1] #define tPalTimer data[2] #define tMonSpriteId data[3] #define tOtIdLo data[12] @@ -3977,7 +3976,7 @@ static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b) #define tPersonalityLo data[14] #define tPersonalityHi data[15] -u8 DisplayCaughtMonDexPage(u16 dexNum, u32 otId, u32 personality) +u8 DisplayCaughtMonDexPage(u16 species, u32 otId, u32 personality) { u8 taskId = 0; if (POKEDEX_PLUS_HGSS) @@ -3986,7 +3985,7 @@ u8 DisplayCaughtMonDexPage(u16 dexNum, u32 otId, u32 personality) taskId = CreateTask(Task_DisplayCaughtMonDexPage, 0); gTasks[taskId].tState = 0; - gTasks[taskId].tDexNum = dexNum; + gTasks[taskId].tSpecies = species; gTasks[taskId].tOtIdLo = otId; gTasks[taskId].tOtIdHi = otId >> 16; gTasks[taskId].tPersonalityLo = personality; @@ -3997,7 +3996,7 @@ u8 DisplayCaughtMonDexPage(u16 dexNum, u32 otId, u32 personality) static void Task_DisplayCaughtMonDexPage(u8 taskId) { u8 spriteId; - u16 dexNum = gTasks[taskId].tDexNum; + u16 dexNum = SpeciesToNationalPokedexNum(gTasks[taskId].tSpecies); switch (gTasks[taskId].tState) { @@ -4023,7 +4022,7 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId) FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); PutWindowTilemap(WIN_INFO); PutWindowTilemap(WIN_FOOTPRINT); - DrawFootprint(WIN_FOOTPRINT, gTasks[taskId].tDexNum); + DrawFootprint(WIN_FOOTPRINT, dexNum); CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX); ResetPaletteFade(); LoadPokedexBgPalette(FALSE); @@ -4090,7 +4089,6 @@ static void Task_ExitCaughtMonPage(u8 taskId) { if (!gPaletteFade.active) { - u16 species; u32 otId; u32 personality; u8 paletteNum; @@ -4106,11 +4104,10 @@ static void Task_ExitCaughtMonPage(u8 taskId) if (buffer) Free(buffer); - species = NationalPokedexNumToSpecies(gTasks[taskId].tDexNum); otId = ((u16)gTasks[taskId].tOtIdHi << 16) | (u16)gTasks[taskId].tOtIdLo; personality = ((u16)gTasks[taskId].tPersonalityHi << 16) | (u16)gTasks[taskId].tPersonalityLo; paletteNum = gSprites[gTasks[taskId].tMonSpriteId].oam.paletteNum; - lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality); + lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(gTasks[taskId].tSpecies, otId, personality); LoadCompressedPalette(lzPaletteData, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); DestroyTask(taskId); } @@ -4130,7 +4127,7 @@ static void SpriteCB_SlideCaughtMonToCenter(struct Sprite *sprite) } #undef tState -#undef tDexNum +#undef tSpecies #undef tPalTimer #undef tMonSpriteId #undef tOtIdLo @@ -4143,7 +4140,7 @@ 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; @@ -4158,16 +4155,16 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) 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, 114 + (6 * digitCount), 0x19); if (owned) { - CopyMonCategoryText(num, str2); + CopyMonCategoryText(species, str2); category = str2; } else @@ -4179,8 +4176,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 { @@ -4188,7 +4185,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); @@ -4285,24 +4282,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; @@ -4430,7 +4409,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; } @@ -4587,7 +4566,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) @@ -4678,6 +4657,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 294d42b26e..27fac583ae 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -116,12 +116,9 @@ 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 @@ -195,7 +192,7 @@ static const u8 sText_Stats_eggGroup_AMORPHOUS[] = _("AMORPHOUS"); static const u8 sText_Stats_eggGroup_WATER_2[] = _("WATER {CIRCLE_2}"); static const u8 sText_Stats_eggGroup_DITTO[] = _("DITTO"); static const u8 sText_Stats_eggGroup_DRAGON[] = _("DRAGON"); -static const u8 sText_Stats_eggGroup_UNDISCOVERED[] = _("---"); +static const u8 sText_Stats_eggGroup_NO_EGGS_DISCOVERED[] = _("---"); static const u8 sText_Dex_SEEN[] = _("SEEN"); static const u8 sText_Dex_OWN[] = _("OWN"); @@ -432,7 +429,7 @@ struct PokedexView u8 statBarsSpriteId; u8 statBarsBgSpriteId; bool8 justScrolled; - u8 splitIconSpriteId; //Physical/Special Split + u8 categoryIconSpriteId; //Physical/Special/Status category u8 numEggMoves; u8 numLevelUpMoves; u8 numTMHMMoves; @@ -542,7 +539,8 @@ static void PrintMonWeight(u16 weight, u8 left, u8 top); 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 void DrawFootprint(u8 windowId, u16 species); +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); @@ -616,62 +614,61 @@ static void PrintForms(u8 taskId, u16 species); static void Task_SwitchScreensFromFormsScreen(u8 taskId); static void Task_ExitFormsScreen(u8 taskId); -//Physical Special Split icon -static u8 ShowSplitIcon(u32 split); //Physical/Special Split from BE -static void DestroySplitIcon(void); //Physical/Special Split from BE +//Physical/Special/Status category icon +static u8 ShowCategoryIcon(u32 category); +static void DestroyCategoryIcon(void); static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum); -//Physical/Special Split from BE -#define TAG_SPLIT_ICONS 30004 +#define TAG_CATEGORY_ICONS 30004 -static const u16 sSplitIcons_Pal[] = INCBIN_U16("graphics/interface/split_icons.gbapal"); -static const u32 sSplitIcons_Gfx[] = INCBIN_U32("graphics/interface/split_icons.4bpp.lz"); +static const u16 sCategoryIcons_Pal[] = INCBIN_U16("graphics/interface/category_icons.gbapal"); +static const u32 sCategoryIcons_Gfx[] = INCBIN_U32("graphics/interface/category_icons.4bpp.lz"); -static const struct OamData sOamData_SplitIcons = +static const struct OamData sOamData_CategoryIcons = { .size = SPRITE_SIZE(16x16), .shape = SPRITE_SHAPE(16x16), .priority = 0, }; -static const struct CompressedSpriteSheet sSpriteSheet_SplitIcons = +static const struct CompressedSpriteSheet sSpriteSheet_CategoryIcons = { - .data = sSplitIcons_Gfx, + .data = sCategoryIcons_Gfx, .size = 16*16*3/2, - .tag = TAG_SPLIT_ICONS, + .tag = TAG_CATEGORY_ICONS, }; -static const struct SpritePalette sSpritePal_SplitIcons = +static const struct SpritePalette sSpritePal_CategoryIcons = { - .data = sSplitIcons_Pal, - .tag = TAG_SPLIT_ICONS + .data = sCategoryIcons_Pal, + .tag = TAG_CATEGORY_ICONS }; -static const union AnimCmd sSpriteAnim_SplitIcon0[] = +static const union AnimCmd sSpriteAnim_CategoryIcon0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_SplitIcon1[] = +static const union AnimCmd sSpriteAnim_CategoryIcon1[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_SplitIcon2[] = +static const union AnimCmd sSpriteAnim_CategoryIcon2[] = { ANIMCMD_FRAME(8, 0), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_SplitIcons[] = +static const union AnimCmd *const sSpriteAnimTable_CategoryIcons[] = { - sSpriteAnim_SplitIcon0, - sSpriteAnim_SplitIcon1, - sSpriteAnim_SplitIcon2, + sSpriteAnim_CategoryIcon0, + sSpriteAnim_CategoryIcon1, + sSpriteAnim_CategoryIcon2, }; -static const struct SpriteTemplate sSpriteTemplate_SplitIcons = +static const struct SpriteTemplate sSpriteTemplate_CategoryIcons = { - .tileTag = TAG_SPLIT_ICONS, - .paletteTag = TAG_SPLIT_ICONS, - .oam = &sOamData_SplitIcons, - .anims = sSpriteAnimTable_SplitIcons, + .tileTag = TAG_CATEGORY_ICONS, + .paletteTag = TAG_CATEGORY_ICONS, + .oam = &sOamData_CategoryIcons, + .anims = sSpriteAnimTable_CategoryIcons, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -2804,12 +2801,12 @@ static void CreateMonDexNum(u16 entryNum, u8 left, u8 top, u16 unused) if (NATIONAL_DEX_COUNT > 999 && sPokedexView->dexMode != DEX_MODE_HOENN) { text[0] = CHAR_0 + dexNum / 1000; - offset = 1; + 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; + text[offset++] = CHAR_0 + (dexNum % 1000) / 100; + text[offset++] = CHAR_0 + ((dexNum % 1000) % 100) / 10; + text[offset++] = CHAR_0 + ((dexNum % 1000) % 100) % 10; + text[offset++] = EOS; PrintMonDexNumAndName(0, FONT_NARROW, text, left, top); } @@ -2827,7 +2824,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); @@ -3139,7 +3136,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; @@ -3675,7 +3672,6 @@ static void CreateStatBars(struct PokedexListItem *dexMon) sPokedexView->justScrolled = FALSE; - if (dexMon->owned) // Show filed bars { u8 i; @@ -3845,7 +3841,7 @@ static void Task_LoadInfoScreen(u8 taskId) FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); PutWindowTilemap(WIN_INFO); PutWindowTilemap(WIN_FOOTPRINT); - DrawFootprint(WIN_FOOTPRINT, sPokedexListItem->dexNum); + DrawFootprint(WIN_FOOTPRINT, NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum)); CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX); gMain.state++; break; @@ -3873,7 +3869,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++; @@ -4169,7 +4165,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; @@ -4178,7 +4174,7 @@ void Task_DisplayCaughtMonDexPageHGSS(u8 taskId) FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); PutWindowTilemap(WIN_INFO); PutWindowTilemap(WIN_FOOTPRINT); - DrawFootprint(WIN_FOOTPRINT, dexNum); + DrawFootprint(WIN_FOOTPRINT, species); CopyWindowToVram(WIN_FOOTPRINT, COPYWIN_GFX); ResetPaletteFade(); LoadPokedexBgPalette(FALSE); @@ -4198,7 +4194,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); @@ -4483,13 +4479,13 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) PrintInfoScreenTextWhite(str, 123, 17); species = NationalPokedexNumToSpeciesHGSS(num); if (species) - name = gSpeciesNames[species]; + name = GetSpeciesName(species); else name = sText_TenDashes; PrintInfoScreenTextWhite(name, 139 + (6 * digitCount), 17); if (owned) { - CopyMonCategoryText(num, str2); + CopyMonCategoryText(species, str2); category = str2; } else @@ -4501,8 +4497,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 { @@ -4510,9 +4506,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); @@ -4651,26 +4645,44 @@ static void UNUSED PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top) PrintInfoSubMenuText(windowId, str, left, top); } -static void DrawFootprint(u8 windowId, u16 dexNum) -{ - u8 footprint[32 * 4]; - const u8 * footprintGfx = gMonFootprintTable[NationalPokedexNumToSpecies(dexNum)]; - u16 tileIdx = 0; - u16 i, j; +// The footprints are drawn on WIN_FOOTPRINT, which uses BG palette 15 (loaded with graphics/text_window/message_box.gbapal) +// The footprint pixels are stored as 1BPP, and set to the below color index in this palette when converted to 4BPP. +#define FOOTPRINT_COLOR_IDX 2 - for (i = 0; i < 32; i++) +#define NUM_FOOTPRINT_TILES 4 + +static void DrawFootprint(u8 windowId, u16 species) +{ + u8 ALIGNED(4) footprint4bpp[TILE_SIZE_4BPP * NUM_FOOTPRINT_TILES]; + const u8 *footprintGfx = gSpeciesInfo[SanitizeSpeciesId(species)].footprint; + u32 i, j, tileIdx = 0; + + if (footprintGfx != NULL) { - u8 tile = footprintGfx[i]; - for (j = 0; j < 4; j++) + for (i = 0; i < TILE_SIZE_1BPP * NUM_FOOTPRINT_TILES; i++) { - u8 value = ((tile >> (2 * j)) & 1 ? 2 : 0); - if (tile & (2 << (2 * j))) - value |= 0x20; - footprint[tileIdx] = value; - tileIdx++; + u8 footprint1bpp = footprintGfx[i]; + + // Convert the 8 pixels in the above 1BPP byte to 4BPP. + // Each iteration creates one 4BPP byte (2 pixels), + // so we need 4 iterations to do all 8 pixels. + for (j = 0; j < 4; j++) + { + u8 tile = 0; + if (footprint1bpp & (1 << (2 * j))) + tile |= FOOTPRINT_COLOR_IDX; // Set pixel + if (footprint1bpp & (2 << (2 * j))) + tile |= FOOTPRINT_COLOR_IDX << 4; // Set pixel + footprint4bpp[tileIdx] = tile; + tileIdx++; + } } } - CopyToWindowPixelBuffer(windowId, footprint, sizeof(footprint), 0); + else + { + CpuFastFill(0, footprint4bpp, sizeof(footprint4bpp)); + } + CopyToWindowPixelBuffer(windowId, footprint4bpp, sizeof(footprint4bpp), 0); } static void PrintInfoSubMenuText(u8 windowId, const u8 *str, u8 left, u8 top) @@ -4694,8 +4706,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++) @@ -4706,6 +4718,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); @@ -4804,23 +4863,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; - } -} - //************************************ @@ -4888,21 +4930,22 @@ static void LoadTilesetTilemapHGSS(u8 page) } } -//Physical/Special Split -static u8 ShowSplitIcon(u32 split) +//Physical/Special/Status category +static u8 ShowCategoryIcon(u32 category) { - if (sPokedexView->splitIconSpriteId == 0xFF) - sPokedexView->splitIconSpriteId = CreateSprite(&sSpriteTemplate_SplitIcons, 139, 90, 0); + if (sPokedexView->categoryIconSpriteId == 0xFF) + sPokedexView->categoryIconSpriteId = CreateSprite(&sSpriteTemplate_CategoryIcons, 139, 90, 0); - gSprites[sPokedexView->splitIconSpriteId].invisible = FALSE; - StartSpriteAnim(&gSprites[sPokedexView->splitIconSpriteId], split); - return sPokedexView->splitIconSpriteId; + gSprites[sPokedexView->categoryIconSpriteId].invisible = FALSE; + StartSpriteAnim(&gSprites[sPokedexView->categoryIconSpriteId], category); + return sPokedexView->categoryIconSpriteId; } -static void DestroySplitIcon(void) + +static void DestroyCategoryIcon(void) { - if (sPokedexView->splitIconSpriteId != 0xFF) - DestroySprite(&gSprites[sPokedexView->splitIconSpriteId]); - sPokedexView->splitIconSpriteId = 0xFF; + if (sPokedexView->categoryIconSpriteId != 0xFF) + DestroySprite(&gSprites[sPokedexView->categoryIconSpriteId]); + sPokedexView->categoryIconSpriteId = 0xFF; } //************************************ @@ -5032,10 +5075,10 @@ static void Task_LoadStatsScreen(u8 taskId) sPokedexView->typeIconSpriteIds[0] = 0xFF; sPokedexView->typeIconSpriteIds[1] = 0xFF; CreateTypeIconSprites(); - sPokedexView->splitIconSpriteId = 0xFF; //Physical/Special Split - LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60); //Physical/Special Split - LoadCompressedSpriteSheet(&sSpriteSheet_SplitIcons); //Physical/Special Split - LoadSpritePalette(&sSpritePal_SplitIcons); //Physical/Special Split + sPokedexView->categoryIconSpriteId = 0xFF; + LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60); + LoadCompressedSpriteSheet(&sSpriteSheet_CategoryIcons); + LoadSpritePalette(&sSpritePal_CategoryIcons); gMain.state++; break; case 4: @@ -5233,6 +5276,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}; @@ -5267,23 +5311,39 @@ 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) { sStatsMovesTMHM_ID[numTMHMMoves] = (ITEM_TM01 + j); numTMHMMoves++; + + sStatsMoves[movesTotal] = move; + movesTotal++; break; } } - if (j >= NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES) - numTutorMoves++; + } - sStatsMoves[movesTotal] = move; - movesTotal++; + for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) + { + move = teachableLearnset[i]; + for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++) + { + if (ItemIdToBattleMoveId(ITEM_TM01 + j) == move) + break; + } + + if (j >= NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES) + { + numTutorMoves++; + + sStatsMoves[movesTotal] = move; + movesTotal++; + } } sPokedexView->numEggMoves = numEggMoves; @@ -5345,7 +5405,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 @@ -5438,9 +5498,9 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId) else ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, STR_CONV_MODE_RIGHT_ALIGN, 3); PrintStatsScreenTextSmall(WIN_STATS_MOVES_BOTTOM, gStringVar1, moves_x + 45, moves_y); - //Physical/Special Split - DestroySplitIcon(); - ShowSplitIcon(GetBattleMoveSplit(move)); + //Physical/Special/Status Category + DestroyCategoryIcon(); + ShowCategoryIcon(GetBattleMoveCategory(move)); //Accuracy if (gBattleMoves[move].accuracy == 0) StringCopy(gStringVar1, gText_ThreeDashes); @@ -5450,8 +5510,8 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId) } else //Appeal + Jam { - DestroySplitIcon(); - gSprites[sPokedexView->splitIconSpriteId].invisible = TRUE; + DestroyCategoryIcon(); + gSprites[sPokedexView->categoryIconSpriteId].invisible = TRUE; //Appeal contest_effectValue = gContestEffects[gContestMoves[move].effect].appeal; if (contest_effectValue != 0xFF) @@ -5482,7 +5542,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) @@ -5825,7 +5885,7 @@ static void PrintStatsScreen_Left(u8 taskId) base_i++; //Egg cycles - if (sPokedexView->sPokemonStats.eggGroup1 == EGG_GROUP_UNDISCOVERED || sPokedexView->sPokemonStats.eggGroup2 == EGG_GROUP_UNDISCOVERED) //Species without eggs (legendaries etc) + if (sPokedexView->sPokemonStats.eggGroup1 == EGG_GROUP_NO_EGGS_DISCOVERED || sPokedexView->sPokemonStats.eggGroup2 == EGG_GROUP_NO_EGGS_DISCOVERED) //Species without eggs (legendaries etc) { PrintStatsScreenTextSmall(WIN_STATS_LEFT, sText_Stats_EggCycles, base_x, base_y + base_y_offset*base_i); PrintStatsScreenTextSmall(WIN_STATS_LEFT, gText_ThreeDashes, 78, base_y + base_y_offset*base_i); @@ -5902,8 +5962,8 @@ static void PrintStatsScreen_Left(u8 taskId) case EGG_GROUP_DRAGON : StringCopy(gStringVar1, sText_Stats_eggGroup_DRAGON); break; - case EGG_GROUP_UNDISCOVERED: - StringCopy(gStringVar1, sText_Stats_eggGroup_UNDISCOVERED); + case EGG_GROUP_NO_EGGS_DISCOVERED: + StringCopy(gStringVar1, sText_Stats_eggGroup_NO_EGGS_DISCOVERED); break; } //Egg group 2 @@ -5953,8 +6013,8 @@ static void PrintStatsScreen_Left(u8 taskId) case EGG_GROUP_DRAGON : StringCopy(gStringVar2, sText_Stats_eggGroup_DRAGON); break; - case EGG_GROUP_UNDISCOVERED: - StringCopy(gStringVar2, sText_Stats_eggGroup_UNDISCOVERED); + case EGG_GROUP_NO_EGGS_DISCOVERED: + StringCopy(gStringVar2, sText_Stats_eggGroup_NO_EGGS_DISCOVERED); break; } StringExpandPlaceholders(gStringVar3, sText_Stats_eggGroup_Groups); @@ -6286,7 +6346,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; @@ -6337,7 +6397,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 @@ -6382,7 +6442,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); @@ -6390,7 +6450,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 @@ -6427,17 +6487,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; } } @@ -6459,9 +6525,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; @@ -6521,19 +6591,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; @@ -6553,12 +6626,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 @@ -6571,103 +6644,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; @@ -6676,59 +6749,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; @@ -7014,7 +7087,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++) { @@ -7144,7 +7217,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++; @@ -7338,19 +7411,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); @@ -7716,7 +7789,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 15c4a3d2be..f89a37c61e 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -15,6 +15,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" @@ -42,6 +43,8 @@ #include "constants/battle_frontier.h" #include "constants/battle_move_effects.h" #include "constants/battle_script_commands.h" +#include "constants/battle_partner.h" +#include "constants/cries.h" #include "constants/form_change_types.h" #include "constants/hold_effects.h" #include "constants/item_effects.h" @@ -100,1813 +103,11 @@ static const struct CombinedMove sCombinedMoves[2] = {0xFFFF, 0xFFFF, 0xFFFF} }; -// NOTE: The order of the elements in the 3 arrays below is irrelevant. +// NOTE: The order of the elements in the array below is irrelevant. // 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) -static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = -{ - SPECIES_TO_HOENN(TREECKO), - SPECIES_TO_HOENN(GROVYLE), - SPECIES_TO_HOENN(SCEPTILE), - SPECIES_TO_HOENN(TORCHIC), - SPECIES_TO_HOENN(COMBUSKEN), - SPECIES_TO_HOENN(BLAZIKEN), - SPECIES_TO_HOENN(MUDKIP), - SPECIES_TO_HOENN(MARSHTOMP), - SPECIES_TO_HOENN(SWAMPERT), - SPECIES_TO_HOENN(POOCHYENA), - SPECIES_TO_HOENN(MIGHTYENA), - SPECIES_TO_HOENN(ZIGZAGOON), - SPECIES_TO_HOENN(LINOONE), - SPECIES_TO_HOENN(WURMPLE), - SPECIES_TO_HOENN(SILCOON), - SPECIES_TO_HOENN(BEAUTIFLY), - SPECIES_TO_HOENN(CASCOON), - SPECIES_TO_HOENN(DUSTOX), - SPECIES_TO_HOENN(LOTAD), - SPECIES_TO_HOENN(LOMBRE), - SPECIES_TO_HOENN(LUDICOLO), - SPECIES_TO_HOENN(SEEDOT), - SPECIES_TO_HOENN(NUZLEAF), - SPECIES_TO_HOENN(SHIFTRY), - SPECIES_TO_HOENN(TAILLOW), - SPECIES_TO_HOENN(SWELLOW), - SPECIES_TO_HOENN(WINGULL), - SPECIES_TO_HOENN(PELIPPER), - SPECIES_TO_HOENN(RALTS), - SPECIES_TO_HOENN(KIRLIA), - SPECIES_TO_HOENN(GARDEVOIR), -#if P_GEN_4_POKEMON == TRUE - SPECIES_TO_HOENN(GALLADE), -#endif - SPECIES_TO_HOENN(SURSKIT), - SPECIES_TO_HOENN(MASQUERAIN), - SPECIES_TO_HOENN(SHROOMISH), - SPECIES_TO_HOENN(BRELOOM), - SPECIES_TO_HOENN(SLAKOTH), - SPECIES_TO_HOENN(VIGOROTH), - SPECIES_TO_HOENN(SLAKING), - SPECIES_TO_HOENN(ABRA), - SPECIES_TO_HOENN(KADABRA), - SPECIES_TO_HOENN(ALAKAZAM), - SPECIES_TO_HOENN(NINCADA), - SPECIES_TO_HOENN(NINJASK), - SPECIES_TO_HOENN(SHEDINJA), - SPECIES_TO_HOENN(WHISMUR), - SPECIES_TO_HOENN(LOUDRED), - SPECIES_TO_HOENN(EXPLOUD), - SPECIES_TO_HOENN(MAKUHITA), - SPECIES_TO_HOENN(HARIYAMA), - SPECIES_TO_HOENN(GOLDEEN), - SPECIES_TO_HOENN(SEAKING), - SPECIES_TO_HOENN(MAGIKARP), - SPECIES_TO_HOENN(GYARADOS), - SPECIES_TO_HOENN(AZURILL), - SPECIES_TO_HOENN(MARILL), - SPECIES_TO_HOENN(AZUMARILL), - SPECIES_TO_HOENN(GEODUDE), - SPECIES_TO_HOENN(GRAVELER), - SPECIES_TO_HOENN(GOLEM), - SPECIES_TO_HOENN(NOSEPASS), -#if P_GEN_4_POKEMON == TRUE - SPECIES_TO_HOENN(PROBOPASS), -#endif - SPECIES_TO_HOENN(SKITTY), - SPECIES_TO_HOENN(DELCATTY), - SPECIES_TO_HOENN(ZUBAT), - SPECIES_TO_HOENN(GOLBAT), - SPECIES_TO_HOENN(CROBAT), - SPECIES_TO_HOENN(TENTACOOL), - SPECIES_TO_HOENN(TENTACRUEL), - SPECIES_TO_HOENN(SABLEYE), - SPECIES_TO_HOENN(MAWILE), - SPECIES_TO_HOENN(ARON), - SPECIES_TO_HOENN(LAIRON), - SPECIES_TO_HOENN(AGGRON), - SPECIES_TO_HOENN(MACHOP), - SPECIES_TO_HOENN(MACHOKE), - SPECIES_TO_HOENN(MACHAMP), - SPECIES_TO_HOENN(MEDITITE), - SPECIES_TO_HOENN(MEDICHAM), - SPECIES_TO_HOENN(ELECTRIKE), - SPECIES_TO_HOENN(MANECTRIC), - SPECIES_TO_HOENN(PLUSLE), - SPECIES_TO_HOENN(MINUN), - SPECIES_TO_HOENN(MAGNEMITE), - SPECIES_TO_HOENN(MAGNETON), -#if P_GEN_4_POKEMON == TRUE - SPECIES_TO_HOENN(MAGNEZONE), -#endif - SPECIES_TO_HOENN(VOLTORB), - SPECIES_TO_HOENN(ELECTRODE), - SPECIES_TO_HOENN(VOLBEAT), - SPECIES_TO_HOENN(ILLUMISE), - SPECIES_TO_HOENN(ODDISH), - SPECIES_TO_HOENN(GLOOM), - SPECIES_TO_HOENN(VILEPLUME), - SPECIES_TO_HOENN(BELLOSSOM), - SPECIES_TO_HOENN(DODUO), - SPECIES_TO_HOENN(DODRIO), -#if P_GEN_4_POKEMON == TRUE - SPECIES_TO_HOENN(BUDEW), - SPECIES_TO_HOENN(ROSELIA), - SPECIES_TO_HOENN(ROSERADE), -#else - SPECIES_TO_HOENN(ROSELIA), -#endif - SPECIES_TO_HOENN(GULPIN), - SPECIES_TO_HOENN(SWALOT), - SPECIES_TO_HOENN(CARVANHA), - SPECIES_TO_HOENN(SHARPEDO), - SPECIES_TO_HOENN(WAILMER), - SPECIES_TO_HOENN(WAILORD), - SPECIES_TO_HOENN(NUMEL), - SPECIES_TO_HOENN(CAMERUPT), - SPECIES_TO_HOENN(SLUGMA), - SPECIES_TO_HOENN(MAGCARGO), - SPECIES_TO_HOENN(TORKOAL), - SPECIES_TO_HOENN(GRIMER), - SPECIES_TO_HOENN(MUK), - SPECIES_TO_HOENN(KOFFING), - SPECIES_TO_HOENN(WEEZING), - SPECIES_TO_HOENN(SPOINK), - SPECIES_TO_HOENN(GRUMPIG), - SPECIES_TO_HOENN(SANDSHREW), - SPECIES_TO_HOENN(SANDSLASH), - SPECIES_TO_HOENN(SPINDA), - SPECIES_TO_HOENN(SKARMORY), - SPECIES_TO_HOENN(TRAPINCH), - SPECIES_TO_HOENN(VIBRAVA), - SPECIES_TO_HOENN(FLYGON), - SPECIES_TO_HOENN(CACNEA), - SPECIES_TO_HOENN(CACTURNE), - SPECIES_TO_HOENN(SWABLU), - SPECIES_TO_HOENN(ALTARIA), - SPECIES_TO_HOENN(ZANGOOSE), - SPECIES_TO_HOENN(SEVIPER), - SPECIES_TO_HOENN(LUNATONE), - SPECIES_TO_HOENN(SOLROCK), - SPECIES_TO_HOENN(BARBOACH), - SPECIES_TO_HOENN(WHISCASH), - SPECIES_TO_HOENN(CORPHISH), - SPECIES_TO_HOENN(CRAWDAUNT), - SPECIES_TO_HOENN(BALTOY), - SPECIES_TO_HOENN(CLAYDOL), - SPECIES_TO_HOENN(LILEEP), - SPECIES_TO_HOENN(CRADILY), - SPECIES_TO_HOENN(ANORITH), - SPECIES_TO_HOENN(ARMALDO), - SPECIES_TO_HOENN(IGGLYBUFF), - SPECIES_TO_HOENN(JIGGLYPUFF), - SPECIES_TO_HOENN(WIGGLYTUFF), - SPECIES_TO_HOENN(FEEBAS), - SPECIES_TO_HOENN(MILOTIC), - SPECIES_TO_HOENN(CASTFORM), - SPECIES_TO_HOENN(STARYU), - SPECIES_TO_HOENN(STARMIE), - SPECIES_TO_HOENN(KECLEON), - SPECIES_TO_HOENN(SHUPPET), - SPECIES_TO_HOENN(BANETTE), - SPECIES_TO_HOENN(DUSKULL), - SPECIES_TO_HOENN(DUSCLOPS), -#if P_GEN_4_POKEMON == TRUE - SPECIES_TO_HOENN(DUSKNOIR), - SPECIES_TO_HOENN(TROPIUS), - SPECIES_TO_HOENN(CHINGLING), -#else - SPECIES_TO_HOENN(TROPIUS), -#endif - SPECIES_TO_HOENN(CHIMECHO), - SPECIES_TO_HOENN(ABSOL), - SPECIES_TO_HOENN(VULPIX), - SPECIES_TO_HOENN(NINETALES), - SPECIES_TO_HOENN(PICHU), - SPECIES_TO_HOENN(PIKACHU), - SPECIES_TO_HOENN(RAICHU), - SPECIES_TO_HOENN(PSYDUCK), - SPECIES_TO_HOENN(GOLDUCK), - SPECIES_TO_HOENN(WYNAUT), - SPECIES_TO_HOENN(WOBBUFFET), - SPECIES_TO_HOENN(NATU), - SPECIES_TO_HOENN(XATU), - SPECIES_TO_HOENN(GIRAFARIG), - 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 - SPECIES_TO_HOENN(RHYPERIOR), -#endif - SPECIES_TO_HOENN(SNORUNT), - SPECIES_TO_HOENN(GLALIE), -#if P_GEN_4_POKEMON == TRUE - SPECIES_TO_HOENN(FROSLASS), -#endif - SPECIES_TO_HOENN(SPHEAL), - SPECIES_TO_HOENN(SEALEO), - SPECIES_TO_HOENN(WALREIN), - SPECIES_TO_HOENN(CLAMPERL), - SPECIES_TO_HOENN(HUNTAIL), - SPECIES_TO_HOENN(GOREBYSS), - SPECIES_TO_HOENN(RELICANTH), - SPECIES_TO_HOENN(CORSOLA), - SPECIES_TO_HOENN(CHINCHOU), - SPECIES_TO_HOENN(LANTURN), - SPECIES_TO_HOENN(LUVDISC), - SPECIES_TO_HOENN(HORSEA), - SPECIES_TO_HOENN(SEADRA), - SPECIES_TO_HOENN(KINGDRA), - SPECIES_TO_HOENN(BAGON), - SPECIES_TO_HOENN(SHELGON), - SPECIES_TO_HOENN(SALAMENCE), - SPECIES_TO_HOENN(BELDUM), - SPECIES_TO_HOENN(METANG), - SPECIES_TO_HOENN(METAGROSS), - SPECIES_TO_HOENN(REGIROCK), - SPECIES_TO_HOENN(REGICE), - SPECIES_TO_HOENN(REGISTEEL), - SPECIES_TO_HOENN(LATIAS), - SPECIES_TO_HOENN(LATIOS), - SPECIES_TO_HOENN(KYOGRE), - SPECIES_TO_HOENN(GROUDON), - SPECIES_TO_HOENN(RAYQUAZA), - SPECIES_TO_HOENN(JIRACHI), - 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_TAUROS_PALDEAN_COMBAT_BREED - 1] = NATIONAL_DEX_TAUROS, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED - 1] = NATIONAL_DEX_TAUROS, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED - 1] = NATIONAL_DEX_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_WOOPER_PALDEAN - 1] = NATIONAL_DEX_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_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, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL - 1] = NATIONAL_DEX_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_URSALUNA_BLOODMOON - 1] = NATIONAL_DEX_URSALUNA, - SPECIES_TO_NATIONAL(BASCULEGION), - SPECIES_TO_NATIONAL(SNEASLER), - SPECIES_TO_NATIONAL(OVERQWIL), - SPECIES_TO_NATIONAL(ENAMORUS), -#endif -#if P_GEN_9_POKEMON == TRUE - SPECIES_TO_NATIONAL(SPRIGATITO), - SPECIES_TO_NATIONAL(FLORAGATO), - SPECIES_TO_NATIONAL(MEOWSCARADA), - SPECIES_TO_NATIONAL(FUECOCO), - SPECIES_TO_NATIONAL(CROCALOR), - SPECIES_TO_NATIONAL(SKELEDIRGE), - SPECIES_TO_NATIONAL(QUAXLY), - SPECIES_TO_NATIONAL(QUAXWELL), - SPECIES_TO_NATIONAL(QUAQUAVAL), - SPECIES_TO_NATIONAL(LECHONK), - SPECIES_TO_NATIONAL(OINKOLOGNE), - [SPECIES_OINKOLOGNE_FEMALE - 1] = NATIONAL_DEX_OINKOLOGNE, - SPECIES_TO_NATIONAL(TAROUNTULA), - SPECIES_TO_NATIONAL(SPIDOPS), - SPECIES_TO_NATIONAL(NYMBLE), - SPECIES_TO_NATIONAL(LOKIX), - SPECIES_TO_NATIONAL(PAWMI), - SPECIES_TO_NATIONAL(PAWMO), - SPECIES_TO_NATIONAL(PAWMOT), - SPECIES_TO_NATIONAL(TANDEMAUS), - SPECIES_TO_NATIONAL(MAUSHOLD), - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR - 1] = NATIONAL_DEX_MAUSHOLD, - SPECIES_TO_NATIONAL(FIDOUGH), - SPECIES_TO_NATIONAL(DACHSBUN), - SPECIES_TO_NATIONAL(SMOLIV), - SPECIES_TO_NATIONAL(DOLLIV), - SPECIES_TO_NATIONAL(ARBOLIVA), - SPECIES_TO_NATIONAL(SQUAWKABILLY), - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE - 1] = NATIONAL_DEX_SQUAWKABILLY, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE - 1] = NATIONAL_DEX_SQUAWKABILLY, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE - 1] = NATIONAL_DEX_SQUAWKABILLY, - SPECIES_TO_NATIONAL(NACLI), - SPECIES_TO_NATIONAL(NACLSTACK), - SPECIES_TO_NATIONAL(GARGANACL), - SPECIES_TO_NATIONAL(CHARCADET), - SPECIES_TO_NATIONAL(ARMAROUGE), - SPECIES_TO_NATIONAL(CERULEDGE), - SPECIES_TO_NATIONAL(TADBULB), - SPECIES_TO_NATIONAL(BELLIBOLT), - SPECIES_TO_NATIONAL(WATTREL), - SPECIES_TO_NATIONAL(KILOWATTREL), - SPECIES_TO_NATIONAL(MASCHIFF), - SPECIES_TO_NATIONAL(MABOSSTIFF), - SPECIES_TO_NATIONAL(SHROODLE), - SPECIES_TO_NATIONAL(GRAFAIAI), - SPECIES_TO_NATIONAL(BRAMBLIN), - SPECIES_TO_NATIONAL(BRAMBLEGHAST), - SPECIES_TO_NATIONAL(TOEDSCOOL), - SPECIES_TO_NATIONAL(TOEDSCRUEL), - SPECIES_TO_NATIONAL(KLAWF), - SPECIES_TO_NATIONAL(CAPSAKID), - SPECIES_TO_NATIONAL(SCOVILLAIN), - SPECIES_TO_NATIONAL(RELLOR), - SPECIES_TO_NATIONAL(RABSCA), - SPECIES_TO_NATIONAL(FLITTLE), - SPECIES_TO_NATIONAL(ESPATHRA), - SPECIES_TO_NATIONAL(TINKATINK), - SPECIES_TO_NATIONAL(TINKATUFF), - SPECIES_TO_NATIONAL(TINKATON), - SPECIES_TO_NATIONAL(WIGLETT), - SPECIES_TO_NATIONAL(WUGTRIO), - SPECIES_TO_NATIONAL(BOMBIRDIER), - SPECIES_TO_NATIONAL(FINIZEN), - SPECIES_TO_NATIONAL(PALAFIN), - [SPECIES_PALAFIN_HERO - 1] = NATIONAL_DEX_PALAFIN, - SPECIES_TO_NATIONAL(VAROOM), - SPECIES_TO_NATIONAL(REVAVROOM), - SPECIES_TO_NATIONAL(CYCLIZAR), - SPECIES_TO_NATIONAL(ORTHWORM), - SPECIES_TO_NATIONAL(GLIMMET), - SPECIES_TO_NATIONAL(GLIMMORA), - SPECIES_TO_NATIONAL(GREAVARD), - SPECIES_TO_NATIONAL(HOUNDSTONE), - SPECIES_TO_NATIONAL(FLAMIGO), - SPECIES_TO_NATIONAL(CETODDLE), - SPECIES_TO_NATIONAL(CETITAN), - SPECIES_TO_NATIONAL(VELUZA), - SPECIES_TO_NATIONAL(DONDOZO), - SPECIES_TO_NATIONAL(TATSUGIRI), - [SPECIES_TATSUGIRI_DROOPY - 1] = NATIONAL_DEX_TATSUGIRI, - [SPECIES_TATSUGIRI_STRETCHY - 1] = NATIONAL_DEX_TATSUGIRI, - SPECIES_TO_NATIONAL(ANNIHILAPE), - SPECIES_TO_NATIONAL(CLODSIRE), - SPECIES_TO_NATIONAL(FARIGIRAF), - SPECIES_TO_NATIONAL(DUDUNSPARCE), - [SPECIES_DUDUNSPARCE_THREE_SEGMENT - 1] = NATIONAL_DEX_DUDUNSPARCE, - SPECIES_TO_NATIONAL(KINGAMBIT), - SPECIES_TO_NATIONAL(GREAT_TUSK), - SPECIES_TO_NATIONAL(SCREAM_TAIL), - SPECIES_TO_NATIONAL(BRUTE_BONNET), - SPECIES_TO_NATIONAL(FLUTTER_MANE), - SPECIES_TO_NATIONAL(SLITHER_WING), - SPECIES_TO_NATIONAL(SANDY_SHOCKS), - SPECIES_TO_NATIONAL(IRON_TREADS), - SPECIES_TO_NATIONAL(IRON_BUNDLE), - SPECIES_TO_NATIONAL(IRON_HANDS), - SPECIES_TO_NATIONAL(IRON_JUGULIS), - SPECIES_TO_NATIONAL(IRON_MOTH), - SPECIES_TO_NATIONAL(IRON_THORNS), - SPECIES_TO_NATIONAL(FRIGIBAX), - SPECIES_TO_NATIONAL(ARCTIBAX), - SPECIES_TO_NATIONAL(BAXCALIBUR), - SPECIES_TO_NATIONAL(GIMMIGHOUL), - [SPECIES_GIMMIGHOUL_ROAMING - 1] = NATIONAL_DEX_GIMMIGHOUL, - SPECIES_TO_NATIONAL(GHOLDENGO), - SPECIES_TO_NATIONAL(WO_CHIEN), - SPECIES_TO_NATIONAL(CHIEN_PAO), - SPECIES_TO_NATIONAL(TING_LU), - SPECIES_TO_NATIONAL(CHI_YU), - SPECIES_TO_NATIONAL(ROARING_MOON), - SPECIES_TO_NATIONAL(IRON_VALIANT), - SPECIES_TO_NATIONAL(KORAIDON), - SPECIES_TO_NATIONAL(MIRAIDON), - SPECIES_TO_NATIONAL(WALKING_WAKE), - SPECIES_TO_NATIONAL(IRON_LEAVES), - SPECIES_TO_NATIONAL(DIPPLIN), - SPECIES_TO_NATIONAL(POLTCHAGEIST), - [SPECIES_POLTCHAGEIST_ARTISAN - 1] = NATIONAL_DEX_POLTCHAGEIST, - SPECIES_TO_NATIONAL(SINISTCHA), - [SPECIES_SINISTCHA_MASTERPIECE - 1] = NATIONAL_DEX_POLTCHAGEIST, - SPECIES_TO_NATIONAL(OKIDOGI), - SPECIES_TO_NATIONAL(MUNKIDORI), - SPECIES_TO_NATIONAL(FEZANDIPITI), - SPECIES_TO_NATIONAL(OGERPON), - [SPECIES_OGERPON_WELLSPRING_MASK - 1] = NATIONAL_DEX_OGERPON, - [SPECIES_OGERPON_HEARTHFLAME_MASK - 1] = NATIONAL_DEX_OGERPON, - [SPECIES_OGERPON_CORNERSTONE_MASK - 1] = NATIONAL_DEX_OGERPON, - [SPECIES_OGERPON_TEAL_MASK_TERA - 1] = NATIONAL_DEX_OGERPON, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA - 1] = NATIONAL_DEX_OGERPON, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA - 1] = NATIONAL_DEX_OGERPON, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA - 1] = NATIONAL_DEX_OGERPON, -#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, - // 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] = { @@ -1923,6 +124,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), @@ -1941,7 +145,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), @@ -1973,7 +177,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), @@ -1999,7 +203,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), @@ -2012,7 +216,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), @@ -2074,7 +278,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), @@ -2095,18 +299,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), @@ -2117,6 +324,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), @@ -2143,10 +353,10 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = const struct SpindaSpot gSpindaSpotGraphics[] = { - {.x = 16, .y = 7, .image = INCBIN_U16("graphics/spinda_spots/spot_0.1bpp")}, - {.x = 40, .y = 8, .image = INCBIN_U16("graphics/spinda_spots/spot_1.1bpp")}, - {.x = 22, .y = 25, .image = INCBIN_U16("graphics/spinda_spots/spot_2.1bpp")}, - {.x = 34, .y = 26, .image = INCBIN_U16("graphics/spinda_spots/spot_3.1bpp")} + {.x = 16, .y = 7, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_0.1bpp")}, + {.x = 40, .y = 8, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_1.1bpp")}, + {.x = 22, .y = 25, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_2.1bpp")}, + {.x = 34, .y = 26, .image = INCBIN_U16("graphics/pokemon/spinda/spots/spot_3.1bpp")} }; #include "data/pokemon/item_effects.h" @@ -2180,1515 +390,18 @@ 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/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_WOOPER_PALDEAN - 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_CIRCULAR_STRETCH_TWICE, - [SPECIES_DARTRIX - 1] = ANIM_V_STRETCH, - [SPECIES_DECIDUEYE - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, - [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_SQUISH_AND_BOUNCE, - [SPECIES_TRUMBEAK - 1] = ANIM_H_STRETCH, - [SPECIES_TOUCANNON - 1] = ANIM_SHAKE_GLOW_RED_SLOW, - [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_H_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_SLOW, - [SPECIES_PASSIMIAN - 1] = ANIM_H_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_FLASH_YELLOW, - [SPECIES_MIMIKYU_DISGUISED - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - [SPECIES_BRUXISH - 1] = ANIM_RISING_WOBBLE, - [SPECIES_DRAMPA - 1] = ANIM_V_SHAKE_TWICE, - [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_SHRINK_GROW_VIBRATE_FAST, - [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_ALCREMIE_STRAWBERRY_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL - 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_URSALUNA_BLOODMOON - 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 9 Todo: Assign proper ones. - [SPECIES_SPRIGATITO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FLORAGATO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MEOWSCARADA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FUECOCO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CROCALOR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SKELEDIRGE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_QUAXLY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_QUAXWELL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_QUAQUAVAL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LECHONK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OINKOLOGNE_MALE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OINKOLOGNE_FEMALE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TAROUNTULA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SPIDOPS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NYMBLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LOKIX - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PAWMI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PAWMO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PAWMOT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TANDEMAUS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FIDOUGH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DACHSBUN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SMOLIV - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DOLLIV - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARBOLIVA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NACLI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NACLSTACK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GARGANACL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHARCADET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARMAROUGE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CERULEDGE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TADBULB - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BELLIBOLT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WATTREL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KILOWATTREL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MASCHIFF - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MABOSSTIFF - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SHROODLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GRAFAIAI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BRAMBLIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BRAMBLEGHAST - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TOEDSCOOL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TOEDSCRUEL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KLAWF - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CAPSAKID - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SCOVILLAIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RELLOR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RABSCA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FLITTLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ESPATHRA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TINKATINK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TINKATUFF - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TINKATON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WIGLETT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WUGTRIO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BOMBIRDIER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FINIZEN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PALAFIN_ZERO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PALAFIN_HERO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_VAROOM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_REVAVROOM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CYCLIZAR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ORTHWORM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GLIMMET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GLIMMORA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GREAVARD - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HOUNDSTONE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FLAMIGO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CETODDLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CETITAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_VELUZA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DONDOZO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TATSUGIRI_CURLY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TATSUGIRI_DROOPY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TATSUGIRI_STRETCHY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ANNIHILAPE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CLODSIRE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FARIGIRAF - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KINGAMBIT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GREAT_TUSK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SCREAM_TAIL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BRUTE_BONNET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FLUTTER_MANE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLITHER_WING - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SANDY_SHOCKS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_TREADS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_BUNDLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_HANDS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_JUGULIS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_MOTH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_THORNS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FRIGIBAX - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARCTIBAX - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BAXCALIBUR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GIMMIGHOUL_CHEST - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GIMMIGHOUL_ROAMING - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GHOLDENGO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WO_CHIEN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHIEN_PAO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TING_LU - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHI_YU - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ROARING_MOON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_VALIANT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KORAIDON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MIRAIDON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WALKING_WAKE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IRON_LEAVES - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DIPPLIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_POLTCHAGEIST_COUNTERFEIT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_POLTCHAGEIST_ARTISAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SINISTCHA_UNREMARKABLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SINISTCHA_MASTERPIECE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OKIDOGI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MUNKIDORI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FEZANDIPITI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_TEAL_MASK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_WELLSPRING_MASK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_HEARTHFLAME_MASK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_CORNERSTONE_MASK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_TEAL_MASK_TERA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA - 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_SHRINK_GROW_VIBRATE_SLOW, - [SPECIES_LYCANROC_DUSK - 1] = ANIM_V_SHAKE, - [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_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) @@ -4136,7 +849,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); @@ -4146,8 +859,10 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, 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. @@ -4188,7 +903,6 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, } } } - #endif } if (gSpeciesInfo[species].abilities[1]) @@ -4856,15 +1570,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); } } @@ -4881,19 +1596,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--) { @@ -4907,6 +1623,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 @@ -4916,17 +1633,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); } @@ -5108,19 +1825,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]; + 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; } } @@ -5130,7 +1844,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerPicId, u8 battlerPosition if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { gMultiuseSpriteTemplate = sTrainerBackSpriteTemplates[trainerPicId]; - gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerPicId]; + gMultiuseSpriteTemplate.anims = gTrainerBacksprites[trainerPicId].animation; } else { @@ -5138,7 +1852,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerPicId, u8 battlerPosition gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; else gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition]; - gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerPicId]; + gMultiuseSpriteTemplate.anims = gTrainerSprites[trainerPicId].animation; } } @@ -5150,7 +1864,7 @@ void SetMultiuseSpriteTemplateToTrainerFront(u16 trainerPicId, u8 battlerPositio gMultiuseSpriteTemplate = gBattlerSpriteTemplates[battlerPosition]; gMultiuseSpriteTemplate.paletteTag = trainerPicId; - gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerPicId]; + gMultiuseSpriteTemplate.anims = gTrainerSprites[trainerPicId].animation; } static void EncryptBoxMon(struct BoxPokemon *boxMon) @@ -6016,14 +2730,14 @@ u8 GiveMonToPlayer(struct Pokemon *mon) } if (i >= PARTY_SIZE) - return SendMonToPC(mon); + return CopyMonToPC(mon); CopyMon(&gPlayerParty[i], mon, sizeof(*mon)); gPlayerPartyCount = i + 1; return MON_GIVEN_TO_PARTY; } -u8 SendMonToPC(struct Pokemon* mon) +u8 CopyMonToPC(struct Pokemon *mon) { s32 boxNo, boxPos; @@ -6224,7 +2938,76 @@ 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) @@ -6992,11 +3775,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) { @@ -7035,121 +3818,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: if (GetTimeOfDay() != TIME_NIGHT && friendship >= FRIENDSHIP_EVO_THRESHOLD) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_DAY: - if (GetTimeOfDay() != TIME_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: if (GetTimeOfDay() == TIME_NIGHT && friendship >= FRIENDSHIP_EVO_THRESHOLD) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_NIGHT: - if (GetTimeOfDay() == TIME_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: - if (GetTimeOfDay() == TIME_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: - if (GetTimeOfDay() != TIME_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: - if (GetTimeOfDay() == TIME_DUSK && 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 (gEvolutionTable[species][i].param <= level && (personality % 100) != 0) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= level && (personality % 100) != 0) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_FAMILY_OF_THREE: - if (gEvolutionTable[species][i].param <= level && (personality % 100) == 0) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + 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, gEvolutionTable[species][i].param) && (personality % 100) != 0) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (MonKnowsMove(mon, evolutions[i].param) && (personality % 100) != 0) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_MOVE_THREE_SEGMENT: - if (MonKnowsMove(mon, gEvolutionTable[species][i].param) && (personality % 100) == 0) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + 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; } } @@ -7158,15 +3944,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++) { @@ -7174,7 +3960,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; } } @@ -7182,27 +3968,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) @@ -7220,13 +4006,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) @@ -7243,109 +4029,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: - if (GetTimeOfDay() == TIME_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: - if (GetTimeOfDay() != TIME_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; } } @@ -7360,13 +4158,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; } @@ -7375,24 +4180,6 @@ bool8 IsMonPastEvolutionLevel(struct Pokemon *mon) return FALSE; } -u16 HoennPokedexNumToSpecies(u16 hoennNum) -{ - u16 species; - - if (!hoennNum) - return 0; - - species = 0; - - while (species < (NUM_SPECIES - 1) && sSpeciesToHoennPokedexNum[species] != hoennNum) - species++; - - if (species == NUM_SPECIES - 1) - return 0; - - return species + 1; -} - u16 NationalPokedexNumToSpecies(u16 nationalNum) { u16 species; @@ -7400,15 +4187,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) @@ -7432,17 +4219,16 @@ 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) { if (!species) return 0; - - return sSpeciesToHoennPokedexNum[species - 1]; + return NationalToHoennOrder(gSpeciesInfo[species].natDexNum); } u16 HoennToNationalOrder(u16 hoennNum) @@ -8035,9 +4821,10 @@ u8 CanLearnTeachableMove(u16 species, u16 move) else { u8 i; - for (i = 0; gTeachableLearnsets[species][i] != MOVE_UNAVAILABLE; i++) + const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species); + for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) { - if (gTeachableLearnsets[species][i] == move) + if (teachableLearnset[i] == move) return TRUE; } return FALSE; @@ -8050,6 +4837,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++) @@ -8059,23 +4847,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; } } } @@ -8087,9 +4875,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; } @@ -8101,6 +4890,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) @@ -8113,23 +4903,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; } } } @@ -8287,60 +5077,26 @@ 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; + if (gSpeciesInfo[species].shinyPaletteFemale != NULL && IsPersonalityFemale(species, personality)) + return gSpeciesInfo[species].shinyPaletteFemale; + else if (gSpeciesInfo[species].shinyPalette != NULL) + return gSpeciesInfo[species].shinyPalette; else - return gMonShinyPaletteTable[SPECIES_NONE].data; + return gSpeciesInfo[SPECIES_NONE].shinyPalette; } 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].paletteFemale != NULL && IsPersonalityFemale(species, personality)) + return gSpeciesInfo[species].paletteFemale; + else if (gSpeciesInfo[species].palette != NULL) + return gSpeciesInfo[species].palette; 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]; - } - else - { - if (gMonPaletteTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - return &gMonPaletteTableFemale[species]; - else if (gMonPaletteTable[species].data != NULL) - return &gMonPaletteTable[species]; - else - return &gMonPaletteTable[SPECIES_NONE]; + return gSpeciesInfo[SPECIES_NONE].palette; } } @@ -8540,7 +5296,7 @@ const u8 *GetTrainerPartnerName(void) { if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { - if (gPartnerTrainerId == TRAINER_STEVEN_PARTNER) + if (gPartnerTrainerId == TRAINER_PARTNER(PARTNER_STEVEN)) { return gTrainers[TRAINER_STEVEN].trainerName; } @@ -8628,18 +5384,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; } @@ -8649,20 +5405,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); } } @@ -8763,16 +5519,22 @@ void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality) const u8 *GetTrainerClassNameFromId(u16 trainerId) { - if (trainerId >= TRAINERS_COUNT) - trainerId = TRAINER_NONE; - return gTrainerClassNames[gTrainers[trainerId].trainerClass]; + if (trainerId > TRAINER_PARTNER(PARTNER_NONE)) + return gTrainerClassNames[gBattlePartners[trainerId].trainerClass]; + else if (trainerId < TRAINERS_COUNT) + return gTrainerClassNames[gTrainers[trainerId].trainerClass]; + + return gTrainerClassNames[gTrainers[TRAINER_NONE].trainerClass]; } const u8 *GetTrainerNameFromId(u16 trainerId) { - if (trainerId >= TRAINERS_COUNT) - trainerId = TRAINER_NONE; - return gTrainers[trainerId].trainerName; + if (trainerId > TRAINER_PARTNER(PARTNER_NONE)) + return gBattlePartners[trainerId].trainerName; + else if (trainerId < TRAINERS_COUNT) + return gTrainers[trainerId].trainerName; + + return gTrainers[TRAINER_NONE].trainerName; } bool8 HasTwoFramesAnimation(u16 species) @@ -8973,8 +5735,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; } @@ -8983,11 +5745,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; } } @@ -9005,7 +5767,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; @@ -9066,19 +5828,18 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, u16 method, u32 break; case FORM_CHANGE_WITHDRAW: case FORM_CHANGE_FAINT: + case FORM_CHANGE_STATUS: targetSpecies = formChanges[i].targetSpecies; break; case FORM_CHANGE_TIME_OF_DAY: switch (formChanges[i].param1) { case DAY: - RtcCalcLocalTime(); - if (gLocalTime.hours >= DAY_EVO_HOUR_BEGIN && gLocalTime.hours < DAY_EVO_HOUR_END) + if (GetTimeOfDay() != TIME_NIGHT) targetSpecies = formChanges[i].targetSpecies; break; case NIGHT: - RtcCalcLocalTime(); - if (gLocalTime.hours >= NIGHT_EVO_HOUR_BEGIN && gLocalTime.hours < NIGHT_EVO_HOUR_END) + if (GetTimeOfDay() == TIME_NIGHT) targetSpecies = formChanges[i].targetSpecies; break; } @@ -9094,7 +5855,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) { @@ -9112,6 +5873,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 @@ -9121,11 +5883,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); } @@ -9185,11 +5947,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; @@ -9237,7 +5999,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)) @@ -9330,3 +6092,30 @@ 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; +} + +u16 GetSpeciesPreEvolution(u16 species) +{ + int i, j; + + for (i = SPECIES_BULBASAUR; i < NUM_SPECIES; i++) + { + const struct Evolution *evolutions = GetSpeciesEvolutions(i); + if (evolutions == NULL) + continue; + for (j = 0; evolutions[j].method != EVOLUTIONS_END; j++) + { + if (SanitizeSpeciesId(evolutions[j].targetSpecies) == species) + return i; + } + } + + return SPECIES_NONE; +} diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 9ba66ad664..95557e431f 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,1305 +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_TAUROS_PALDEAN_COMBAT_BREED] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = 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_WOOPER_PALDEAN] = 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_CONCAVE_ARC_SMALL, - [SPECIES_DARTRIX] = BACK_ANIM_V_STRETCH, - [SPECIES_DECIDUEYE] = BACK_ANIM_SHRINK_GROW_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_SHRINK_GROW, - [SPECIES_TRUMBEAK] = BACK_ANIM_H_STRETCH, - [SPECIES_TOUCANNON] = BACK_ANIM_SHRINK_GROW_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_BAILE] = BACK_ANIM_H_VIBRATE, - [SPECIES_CUTIEFLY] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_RIBOMBEE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_ROCKRUFF] = BACK_ANIM_V_STRETCH, - [SPECIES_LYCANROC_MIDDAY] = BACK_ANIM_V_SHAKE, - [SPECIES_WISHIWASHI_SOLO] = 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_SLIDE, - [SPECIES_PASSIMIAN] = BACK_ANIM_H_SHAKE, - [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_NORMAL] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_METEOR_RED] = BACK_ANIM_H_VIBRATE, - [SPECIES_KOMALA] = BACK_ANIM_H_VIBRATE, - [SPECIES_TURTONATOR] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOGEDEMARU] = BACK_ANIM_GROW_STUTTER, - [SPECIES_MIMIKYU_DISGUISED] = BACK_ANIM_H_VIBRATE, - [SPECIES_BRUXISH] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRAMPA] = BACK_ANIM_H_SLIDE, - [SPECIES_DHELMISE] = BACK_ANIM_H_VIBRATE, - [SPECIES_JANGMO_O] = BACK_ANIM_GROW_STUTTER, - [SPECIES_HAKAMO_O] = BACK_ANIM_H_STRETCH, - [SPECIES_KOMMO_O] = BACK_ANIM_SHRINK_GROW_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_AMPED] = 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_PHONY] = BACK_ANIM_H_VIBRATE, - [SPECIES_POLTEAGEIST_PHONY] = 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_STRAWBERRY_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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_ICE_FACE] = BACK_ANIM_H_VIBRATE, - [SPECIES_INDEEDEE_MALE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MORPEKO_FULL_BELLY] = 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_HERO_OF_MANY_BATTLES] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = BACK_ANIM_H_VIBRATE, - [SPECIES_ETERNATUS] = BACK_ANIM_H_VIBRATE, - [SPECIES_KUBFU] = BACK_ANIM_H_VIBRATE, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = 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_MALE] = BACK_ANIM_H_VIBRATE, - [SPECIES_SNEASLER] = BACK_ANIM_H_VIBRATE, - [SPECIES_OVERQWIL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ENAMORUS_INCARNATE] = 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_SHRINK_GROW_VIBRATE, - [SPECIES_LYCANROC_DUSK] = BACK_ANIM_V_SHAKE, - [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_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] = { @@ -1799,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 29a65da0fe..6f0cd3956c 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$"); @@ -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); @@ -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) @@ -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 8c6065aa40..89d7d545b8 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, @@ -231,7 +231,7 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [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, @@ -417,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, @@ -525,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, @@ -683,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, @@ -757,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, @@ -847,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, @@ -1008,7 +999,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [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, @@ -1049,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, @@ -1098,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, @@ -1111,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, @@ -1174,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, @@ -1208,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, @@ -1231,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, @@ -1290,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, @@ -1334,8 +1303,6 @@ 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, @@ -1388,8 +1355,6 @@ 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 -#if P_GEN_9_POKEMON == TRUE [SPECIES_SPRIGATITO] = gMonIcon_Sprigatito, [SPECIES_FLORAGATO] = gMonIcon_Floragato, [SPECIES_MEOWSCARADA] = gMonIcon_Meowscarada, @@ -1521,1488 +1486,9 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = //[SPECIES_OGERPON_WELLSPRING_MASK_TERA] = gMonIcon_OgerponWellspringMask, TODO //[SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = gMonIcon_OgerponHearthflameMask, TODO //[SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = gMonIcon_OgerponCornerstoneMask, TODO -#endif [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_CUSTOM_GENDER_DIFF_ICONS == TRUE - [SPECIES_PIKACHU] = gMonIcon_PikachuF, - [SPECIES_WOBBUFFET] = gMonIcon_WobbuffetF, -#endif -#if P_GEN_4_POKEMON == TRUE && P_CUSTOM_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_WOOPER_PALDEAN] = 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_ALCREMIE_STRAWBERRY_RUBY_CREAM] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = 1, - [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = 1, - [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = 1, - [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = 1, - [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = 1, - [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = 1, - [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = 1, - [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = 1, - [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = 1, - [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = 1, - [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = 1, - [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = 1, - [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = 1, - [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = 1, - [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = 1, - [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = 1, - [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = 1, - [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = 1, - [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = 1, - [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = 1, - [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = 1, - [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = 1, - [SPECIES_ALCREMIE_STAR_MINT_CREAM] = 1, - [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = 1, - [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = 1, - [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = 1, - [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = 1, - [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = 1, - [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = 1, - [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = 1, - [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = 1, - [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = 1, - [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = 1, - [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = 1, - [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = 1, - [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = 1, - [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = 1, - [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = 1, - [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = 1, - [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = 1, - [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = 1, - [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = 1, - [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = 1, - [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = 1, - [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = 1, - [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = 1, - [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = 1, - [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = 1, - [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = 1, - [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = 1, - [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = 1, - [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = 1, - [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = 1, - [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = 1, - [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = 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_URSALUNA_BLOODMOON] = 0, - [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_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 -#if P_GEN_9_POKEMON == TRUE - [SPECIES_SPRIGATITO] = 4, - [SPECIES_FLORAGATO] = 1, - [SPECIES_MEOWSCARADA] = 1, - [SPECIES_FUECOCO] = 0, - [SPECIES_CROCALOR] = 0, - [SPECIES_SKELEDIRGE] = 0, - [SPECIES_QUAXLY] = 2, - [SPECIES_QUAXWELL] = 0, - [SPECIES_QUAQUAVAL] = 0, - [SPECIES_LECHONK] = 1, - [SPECIES_OINKOLOGNE_MALE] = 1, - [SPECIES_OINKOLOGNE_FEMALE] = 2, - [SPECIES_TAROUNTULA] = 1, - [SPECIES_SPIDOPS] = 1, - [SPECIES_NYMBLE] = 0, - [SPECIES_LOKIX] = 0, - [SPECIES_PAWMI] = 3, - [SPECIES_PAWMO] = 3, - [SPECIES_PAWMOT] = 3, - [SPECIES_TANDEMAUS] = 0, - [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = 0, - [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = 0, - [SPECIES_FIDOUGH] = 1, - [SPECIES_DACHSBUN] = 0, // TODO - [SPECIES_SMOLIV] = 1, - [SPECIES_DOLLIV] = 1, - [SPECIES_ARBOLIVA] = 5, - [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = 1, - [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = 2, - [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = 1, - [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = 1, - [SPECIES_NACLI] = 2, - [SPECIES_NACLSTACK] = 2, // TODO: recolor - [SPECIES_GARGANACL] = 2, - [SPECIES_CHARCADET] = 1, - [SPECIES_ARMAROUGE] = 0, - [SPECIES_CERULEDGE] = 2, - [SPECIES_TADBULB] = 5, // TODO: Redo to 0 - [SPECIES_BELLIBOLT] = 0, - [SPECIES_WATTREL] = 3, - [SPECIES_KILOWATTREL] = 3, - [SPECIES_MASCHIFF] = 3, - [SPECIES_MABOSSTIFF] = 5, - [SPECIES_SHROODLE] = 0, - [SPECIES_GRAFAIAI] = 0, - [SPECIES_BRAMBLIN] = 3, - [SPECIES_BRAMBLEGHAST] = 5, - [SPECIES_TOEDSCOOL] = 0, - [SPECIES_TOEDSCRUEL] = 0, - [SPECIES_KLAWF] = 0, - [SPECIES_CAPSAKID] = 1, - [SPECIES_SCOVILLAIN] = 1, - [SPECIES_RELLOR] = 5, - [SPECIES_RABSCA] = 0, - [SPECIES_FLITTLE] = 3, - [SPECIES_ESPATHRA] = 5, - [SPECIES_TINKATINK] = 1, - [SPECIES_TINKATUFF] = 4, - [SPECIES_TINKATON] = 4, - [SPECIES_WIGLETT] = 0, - [SPECIES_WUGTRIO] = 0, - [SPECIES_BOMBIRDIER] = 0, - [SPECIES_FINIZEN] = 0, - [SPECIES_PALAFIN_ZERO] = 0, - [SPECIES_PALAFIN_HERO] = 0, - [SPECIES_VAROOM] = 5, - [SPECIES_REVAVROOM] = 5, - [SPECIES_CYCLIZAR] = 1, - [SPECIES_ORTHWORM] = 4, - [SPECIES_GLIMMET] = 0, - [SPECIES_GLIMMORA] = 0, - [SPECIES_GREAVARD] = 2, - [SPECIES_HOUNDSTONE] = 5, - [SPECIES_FLAMIGO] = 4, - [SPECIES_CETODDLE] = 0, - [SPECIES_CETITAN] = 0, - [SPECIES_VELUZA] = 4, - [SPECIES_DONDOZO] = 0, - [SPECIES_TATSUGIRI_CURLY] = 0, - [SPECIES_TATSUGIRI_DROOPY] = 0, - [SPECIES_TATSUGIRI_STRETCHY] = 0, - [SPECIES_ANNIHILAPE] = 0, - [SPECIES_CLODSIRE] = 2, - [SPECIES_FARIGIRAF] = 0, - [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = 0, - [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = 0, - [SPECIES_KINGAMBIT] = 3, - [SPECIES_GREAT_TUSK] = 0, - [SPECIES_SCREAM_TAIL] = 0, - [SPECIES_BRUTE_BONNET] = 1, - [SPECIES_FLUTTER_MANE] = 4, - [SPECIES_SLITHER_WING] = 3, - [SPECIES_SANDY_SHOCKS] = 0, - [SPECIES_IRON_TREADS] = 0, - [SPECIES_IRON_BUNDLE] = 0, - [SPECIES_IRON_HANDS] = 0, - [SPECIES_IRON_JUGULIS] = 2, - [SPECIES_IRON_MOTH] = 3, - [SPECIES_IRON_THORNS] = 1, - [SPECIES_FRIGIBAX] = 3, - [SPECIES_ARCTIBAX] = 0, - [SPECIES_BAXCALIBUR] = 0, - [SPECIES_GIMMIGHOUL_CHEST] = 0, - [SPECIES_GIMMIGHOUL_ROAMING] = 0, - [SPECIES_GHOLDENGO] = 0, - [SPECIES_WO_CHIEN] = 5, - [SPECIES_CHIEN_PAO] = 0, - [SPECIES_TING_LU] = 0, - [SPECIES_CHI_YU] = 0, - [SPECIES_ROARING_MOON] = 3, - [SPECIES_IRON_VALIANT] = 4, - [SPECIES_KORAIDON] = 0, - [SPECIES_MIRAIDON] = 2, - [SPECIES_WALKING_WAKE] = 2, - [SPECIES_IRON_LEAVES] = 1, - [SPECIES_DIPPLIN] = 1, - [SPECIES_POLTCHAGEIST_COUNTERFEIT] = 4, - [SPECIES_POLTCHAGEIST_ARTISAN] = 4, - [SPECIES_SINISTCHA_UNREMARKABLE] = 1, - [SPECIES_SINISTCHA_MASTERPIECE] = 1, - [SPECIES_OKIDOGI] = 1, - [SPECIES_MUNKIDORI] = 0, - [SPECIES_FEZANDIPITI] = 0, - [SPECIES_OGERPON_TEAL_MASK] = 1, - [SPECIES_OGERPON_WELLSPRING_MASK] = 0, - [SPECIES_OGERPON_HEARTHFLAME_MASK] = 0, - [SPECIES_OGERPON_CORNERSTONE_MASK] = 0, - [SPECIES_OGERPON_TEAL_MASK_TERA] = 1, - [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = 0, - [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = 0, - [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = 0, -#endif - [SPECIES_EGG] = 1, -}; - -const u8 gMonIconPaletteIndicesFemale[] = -{ - [SPECIES_PIKACHU] = 2, - [SPECIES_WOBBUFFET] = 0, -#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[] = { @@ -3127,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); @@ -3153,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); @@ -3166,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) @@ -3193,20 +1669,11 @@ u16 GetUnownLetterByPersonality(u32 personality) u16 GetIconSpeciesNoPersonality(u16 species) { - u16 value; + species = SanitizeSpeciesId(species); - if (MailSpeciesToSpecies(species, &value) == SPECIES_UNOWN) - { - value += SPECIES_UNOWN_B; // TODO - return value; - } - else - { - if (species > NUM_SPECIES) - species = INVALID_ICON_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) @@ -3230,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]); } @@ -3247,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]); } @@ -3266,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); } @@ -3291,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; } @@ -3316,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 c85d01453f..6ea897c0a6 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -3952,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 bc2ffe1aea..3f98e65ba6 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 9e2abc2cf3..817ec51543 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -3682,12 +3682,13 @@ static void Task_OnBPressed(u8 taskId) case 0: if (IsMonBeingMoved()) { - #if OW_PC_PRESS_B < GEN_4 - PlaySE(SE_FAILURE); - PrintMessage(MSG_HOLDING_POKE); - sStorage->state = 1; - #else - if (CanPlaceMon()) + if (OW_PC_PRESS_B < GEN_4) + { + PlaySE(SE_FAILURE); + PrintMessage(MSG_HOLDING_POKE); + sStorage->state = 1; + } + else if (CanPlaceMon()) { PlaySE(SE_SELECT); SetPokeStorageTask(Task_PlaceMon); @@ -3696,7 +3697,6 @@ static void Task_OnBPressed(u8 taskId) { SetPokeStorageTask(Task_PokeStorageMain); } - #endif } else if (IsMovingItem()) { @@ -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 48338ad4a3..2ea61ba730 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" @@ -188,7 +189,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData bool8 handleDeoxys; s16 switchCounter; // Used for various switch statement cases that decompress/load graphics or pokemon data u8 unk_filler4[6]; - u8 splitIconSpriteId; + u8 categoryIconSpriteId; } *sMonSummaryScreen = NULL; EWRAM_DATA u8 gLastViewedMonIndex = 0; @@ -737,62 +738,62 @@ static const u8 sMovesPPLayout[] = _("{PP}{DYNAMIC 0}/{DYNAMIC 1}"); #define TAG_MON_STATUS 30001 #define TAG_MOVE_TYPES 30002 #define TAG_MON_MARKINGS 30003 -#define TAG_SPLIT_ICONS 30004 +#define TAG_CATEGORY_ICONS 30004 -static const u16 sSplitIcons_Pal[] = INCBIN_U16("graphics/interface/split_icons.gbapal"); -static const u32 sSplitIcons_Gfx[] = INCBIN_U32("graphics/interface/split_icons.4bpp.lz"); +static const u16 sCategoryIcons_Pal[] = INCBIN_U16("graphics/interface/category_icons.gbapal"); +static const u32 sCategoryIcons_Gfx[] = INCBIN_U32("graphics/interface/category_icons.4bpp.lz"); -static const struct OamData sOamData_SplitIcons = +static const struct OamData sOamData_CategoryIcons = { .size = SPRITE_SIZE(16x16), .shape = SPRITE_SHAPE(16x16), .priority = 0, }; -static const struct CompressedSpriteSheet sSpriteSheet_SplitIcons = +static const struct CompressedSpriteSheet sSpriteSheet_CategoryIcons = { - .data = sSplitIcons_Gfx, + .data = sCategoryIcons_Gfx, .size = 16*16*3/2, - .tag = TAG_SPLIT_ICONS, + .tag = TAG_CATEGORY_ICONS, }; -static const struct SpritePalette sSpritePal_SplitIcons = +static const struct SpritePalette sSpritePal_CategoryIcons = { - .data = sSplitIcons_Pal, - .tag = TAG_SPLIT_ICONS + .data = sCategoryIcons_Pal, + .tag = TAG_CATEGORY_ICONS }; -static const union AnimCmd sSpriteAnim_SplitIcon0[] = +static const union AnimCmd sSpriteAnim_CategoryIcon0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_SplitIcon1[] = +static const union AnimCmd sSpriteAnim_CategoryIcon1[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd sSpriteAnim_SplitIcon2[] = +static const union AnimCmd sSpriteAnim_CategoryIcon2[] = { ANIMCMD_FRAME(8, 0), ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_SplitIcons[] = +static const union AnimCmd *const sSpriteAnimTable_CategoryIcons[] = { - sSpriteAnim_SplitIcon0, - sSpriteAnim_SplitIcon1, - sSpriteAnim_SplitIcon2, + sSpriteAnim_CategoryIcon0, + sSpriteAnim_CategoryIcon1, + sSpriteAnim_CategoryIcon2, }; -static const struct SpriteTemplate sSpriteTemplate_SplitIcons = +static const struct SpriteTemplate sSpriteTemplate_CategoryIcons = { - .tileTag = TAG_SPLIT_ICONS, - .paletteTag = TAG_SPLIT_ICONS, - .oam = &sOamData_SplitIcons, - .anims = sSpriteAnimTable_SplitIcons, + .tileTag = TAG_CATEGORY_ICONS, + .paletteTag = TAG_CATEGORY_ICONS, + .oam = &sOamData_CategoryIcons, + .anims = sSpriteAnimTable_CategoryIcons, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -1152,21 +1153,21 @@ static const struct SpriteTemplate sSpriteTemplate_StatusCondition = static const u16 sMarkings_Pal[] = INCBIN_U16("graphics/summary_screen/markings.gbapal"); // code -static u8 ShowSplitIcon(u32 split) +static u8 ShowCategoryIcon(u32 category) { - if (sMonSummaryScreen->splitIconSpriteId == 0xFF) - sMonSummaryScreen->splitIconSpriteId = CreateSprite(&sSpriteTemplate_SplitIcons, 48, 129, 0); + if (sMonSummaryScreen->categoryIconSpriteId == 0xFF) + sMonSummaryScreen->categoryIconSpriteId = CreateSprite(&sSpriteTemplate_CategoryIcons, 48, 129, 0); - gSprites[sMonSummaryScreen->splitIconSpriteId].invisible = FALSE; - StartSpriteAnim(&gSprites[sMonSummaryScreen->splitIconSpriteId], split); - return sMonSummaryScreen->splitIconSpriteId; + gSprites[sMonSummaryScreen->categoryIconSpriteId].invisible = FALSE; + StartSpriteAnim(&gSprites[sMonSummaryScreen->categoryIconSpriteId], category); + return sMonSummaryScreen->categoryIconSpriteId; } -static void DestroySplitIcon(void) +static void DestroyCategoryIcon(void) { - if (sMonSummaryScreen->splitIconSpriteId != 0xFF) - DestroySprite(&gSprites[sMonSummaryScreen->splitIconSpriteId]); - sMonSummaryScreen->splitIconSpriteId = 0xFF; + if (sMonSummaryScreen->categoryIconSpriteId != 0xFF) + DestroySprite(&gSprites[sMonSummaryScreen->categoryIconSpriteId]); + sMonSummaryScreen->categoryIconSpriteId = 0xFF; } void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)) @@ -1203,7 +1204,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, } sMonSummaryScreen->currPageIndex = sMonSummaryScreen->minPageIndex; - sMonSummaryScreen->splitIconSpriteId = 0xFF; + sMonSummaryScreen->categoryIconSpriteId = 0xFF; SummaryScreen_SetAnimDelayTaskId(TASK_NONE); if (gMonSpritesGfxPtr == NULL) @@ -1450,8 +1451,8 @@ static bool8 DecompressGraphics(void) break; case 12: LoadCompressedPalette(gMoveTypes_Pal, OBJ_PLTT_ID(13), 3 * PLTT_SIZE_4BPP); - LoadCompressedSpriteSheet(&sSpriteSheet_SplitIcons); - LoadSpritePalette(&sSpritePal_SplitIcons); + LoadCompressedSpriteSheet(&sSpriteSheet_CategoryIcons); + LoadSpritePalette(&sSpritePal_CategoryIcons); sMonSummaryScreen->switchCounter = 0; return TRUE; } @@ -2089,7 +2090,7 @@ static void ChangeSelectedMove(s16 *taskData, s8 direction, u8 *moveIndexPtr) { ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); - DestroySplitIcon(); + DestroyCategoryIcon(); ScheduleBgCopyTilemapToVram(0); HandlePowerAccTilemap(0, 3); HandleAppealJamTilemap(0, 3, 0); @@ -2116,7 +2117,7 @@ static void CloseMoveSelectMode(u8 taskId) { ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); - DestroySplitIcon(); + DestroyCategoryIcon(); HandlePowerAccTilemap(0, 3); HandleAppealJamTilemap(0, 3, 0); } @@ -2343,7 +2344,7 @@ static void ShowCantForgetHMsWindow(u8 taskId) { ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM); - gSprites[sMonSummaryScreen->splitIconSpriteId].invisible = TRUE; + gSprites[sMonSummaryScreen->categoryIconSpriteId].invisible = TRUE; ScheduleBgCopyTilemapToVram(0); HandlePowerAccTilemap(0, 3); HandleAppealJamTilemap(0, 3, 0); @@ -3043,7 +3044,7 @@ static void ClearPageWindowTilemaps(u8 page) if (sMonSummaryScreen->newMove != MOVE_NONE || sMonSummaryScreen->firstMoveIndex != MAX_MON_MOVES) { ClearWindowTilemap(PSS_LABEL_WINDOW_MOVES_POWER_ACC); - gSprites[sMonSummaryScreen->splitIconSpriteId].invisible = TRUE; + gSprites[sMonSummaryScreen->categoryIconSpriteId].invisible = TRUE; } } else @@ -3471,23 +3472,37 @@ static void PrintRibbonCount(void) PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT), text, x, 1, 0, 0); } +static void BufferStat(u8 *dst, s8 natureMod, u32 stat, u32 strId, u32 n) +{ + static const u8 sTextNatureDown[] = _("{COLOR}{08}"); + static const u8 sTextNatureUp[] = _("{COLOR}{05}"); + static const u8 sTextNatureNeutral[] = _("{COLOR}{01}"); + u8 *txtPtr; + + if (natureMod == 0 || !SUMMARY_SCREEN_NATURE_COLORS) + txtPtr = StringCopy(dst, sTextNatureNeutral); + else if (natureMod > 0) + txtPtr = StringCopy(dst, sTextNatureUp); + else + txtPtr = StringCopy(dst, sTextNatureDown); + + ConvertIntToDecimalStringN(txtPtr, stat, STR_CONV_MODE_RIGHT_ALIGN, n); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(strId, dst); +} + static void BufferLeftColumnStats(void) { - u8 *currentHPString = Alloc(8); - u8 *maxHPString = Alloc(8); - u8 *attackString = Alloc(8); - u8 *defenseString = Alloc(8); - - ConvertIntToDecimalStringN(currentHPString, sMonSummaryScreen->summary.currentHP, STR_CONV_MODE_RIGHT_ALIGN, 3); - ConvertIntToDecimalStringN(maxHPString, sMonSummaryScreen->summary.maxHP, STR_CONV_MODE_RIGHT_ALIGN, 3); - ConvertIntToDecimalStringN(attackString, sMonSummaryScreen->summary.atk, STR_CONV_MODE_RIGHT_ALIGN, 7); - ConvertIntToDecimalStringN(defenseString, sMonSummaryScreen->summary.def, STR_CONV_MODE_RIGHT_ALIGN, 7); + u8 *currentHPString = Alloc(20); + u8 *maxHPString = Alloc(20); + u8 *attackString = Alloc(20); + u8 *defenseString = Alloc(20); + const s8 *natureMod = gNatureStatTable[sMonSummaryScreen->summary.nature]; DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, currentHPString); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, maxHPString); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, attackString); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, defenseString); + BufferStat(currentHPString, 0, sMonSummaryScreen->summary.currentHP, 0, 3); + BufferStat(maxHPString, 0, sMonSummaryScreen->summary.maxHP, 1, 3); + BufferStat(attackString, natureMod[STAT_ATK - 1], sMonSummaryScreen->summary.atk, 2, 7); + BufferStat(defenseString, natureMod[STAT_DEF - 1], sMonSummaryScreen->summary.def, 3, 7); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsLeftColumnLayout); Free(currentHPString); @@ -3503,14 +3518,12 @@ static void PrintLeftColumnStats(void) static void BufferRightColumnStats(void) { - ConvertIntToDecimalStringN(gStringVar1, sMonSummaryScreen->summary.spatk, STR_CONV_MODE_RIGHT_ALIGN, 3); - ConvertIntToDecimalStringN(gStringVar2, sMonSummaryScreen->summary.spdef, STR_CONV_MODE_RIGHT_ALIGN, 3); - ConvertIntToDecimalStringN(gStringVar3, sMonSummaryScreen->summary.speed, STR_CONV_MODE_RIGHT_ALIGN, 3); + const s8 *natureMod = gNatureStatTable[sMonSummaryScreen->summary.nature]; DynamicPlaceholderTextUtil_Reset(); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar2); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar3); + BufferStat(gStringVar1, natureMod[STAT_SPATK - 1], sMonSummaryScreen->summary.spatk, 0, 3); + BufferStat(gStringVar2, natureMod[STAT_SPDEF - 1], sMonSummaryScreen->summary.spdef, 1, 3); + BufferStat(gStringVar3, natureMod[STAT_SPEED - 1], sMonSummaryScreen->summary.speed, 2, 3); DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, sStatsRightColumnLayout); } @@ -3751,8 +3764,8 @@ static void PrintMoveDetails(u16 move) if (sMonSummaryScreen->currPageIndex == PSS_PAGE_BATTLE_MOVES) { moveEffect = gBattleMoves[move].effect; - if (B_SHOW_SPLIT_ICON == TRUE) - ShowSplitIcon(GetBattleMoveSplit(move)); + if (B_SHOW_CATEGORY_ICON == TRUE) + ShowCategoryIcon(GetBattleMoveCategory(move)); PrintMovePowerAndAccuracy(move); if (moveEffect != EFFECT_PLACEHOLDER) @@ -3935,7 +3948,12 @@ static void SetMoveTypeIcons(void) for (i = 0; i < MAX_MON_MOVES; i++) { if (summary->moves[i] != MOVE_NONE) - SetTypeSpritePosAndPal(gBattleMoves[summary->moves[i]].type, 85, 32 + (i * 16), i + SPRITE_ARR_ID_TYPE); + { + if (summary->moves[i] == MOVE_IVY_CUDGEL && ItemId_GetHoldEffect(summary->item) == HOLD_EFFECT_MASK) + SetTypeSpritePosAndPal(ItemId_GetSecondaryId(summary->item), 85, 32 + (i * 16), i + SPRITE_ARR_ID_TYPE); + else + SetTypeSpritePosAndPal(gBattleMoves[summary->moves[i]].type, 85, 32 + (i * 16), i + SPRITE_ARR_ID_TYPE); + } else SetSpriteInvisibility(i + SPRITE_ARR_ID_TYPE, TRUE); } @@ -3990,7 +4008,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) @@ -4025,9 +4042,8 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state) (*state)++; return 0xFF; case 1: - pal = GetMonSpritePalStructFromOtIdPersonality(summary->species2, summary->OTID, summary->pid); - LoadCompressedSpritePalette(pal); - SetMultiuseSpriteTemplateToPokemon(pal->tag, B_POSITION_OPPONENT_LEFT); + LoadCompressedSpritePaletteWithTag(GetMonSpritePalFromSpeciesAndPersonality(summary->species2, summary->OTID, summary->pid), summary->species2); + SetMultiuseSpriteTemplateToPokemon(summary->species2, B_POSITION_OPPONENT_LEFT); (*state)++; return 0xFF; } diff --git a/src/pokenav_match_call_gfx.c b/src/pokenav_match_call_gfx.c index 4271e2ff23..594b4d83d4 100755 --- a/src/pokenav_match_call_gfx.c +++ b/src/pokenav_match_call_gfx.c @@ -1247,8 +1247,8 @@ static void LoadCheckPageTrainerPic(struct Pokenav_MatchCallGfx *gfx) int trainerPic = GetMatchCallTrainerPic(PokenavList_GetSelectedIndex()); if (trainerPic >= 0) { - DecompressPicFromTable(&gTrainerFrontPicTable[trainerPic], gfx->trainerPicGfx, SPECIES_NONE); - LZ77UnCompWram(gTrainerFrontPicPaletteTable[trainerPic].data, gfx->trainerPicPal); + DecompressPicFromTable(&gTrainerSprites[trainerPic].frontPic, gfx->trainerPicGfx); + LZ77UnCompWram(gTrainerSprites[trainerPic].palette.data, gfx->trainerPicPal); cursor = RequestDma3Copy(gfx->trainerPicGfx, gfx->trainerPicGfxPtr, sizeof(gfx->trainerPicGfx), 1); LoadPalette(gfx->trainerPicPal, gfx->trainerPicPalOffset, sizeof(gfx->trainerPicPal)); gfx->trainerPicSprite->data[0] = 0; diff --git a/src/random.c b/src/random.c index 6a462004b4..db82334aa9 100644 --- a/src/random.c +++ b/src/random.c @@ -4,12 +4,108 @@ #include #endif -EWRAM_DATA static u8 sUnknown = 0; -EWRAM_DATA static u32 sRandCount = 0; - // IWRAM common -u32 gRngValue; -u32 gRng2Value; +rng_value_t gRngValue; +rng_value_t gRng2Value; + +#if HQ_RANDOM == TRUE + +EWRAM_DATA static volatile bool8 sRngLoopUnlocked; + +// Streams allow generators seeded the same to have separate outputs. +#define STREAM1 1 +#define STREAM2 29 + +// A variant of SFC32 that lets you change the stream. +// stream can be any odd number. +static inline u32 _SFC32_Next_Stream(struct Sfc32State *state, const u8 stream) +{ + const u32 result = state->a + state->b + state->ctr; + state->ctr += stream; + state->a = state->b ^ (state->b >> 9); + state->b = state->c * 9; + state->c = result + ((state->c << 21) | (state->c >> 11)); + return result; +} + +static void SFC32_Seed(struct Sfc32State *state, u16 seed, u8 stream) +{ + u32 i; + state->a = state->b = 0; + state->c = seed; + state->ctr = stream; + for(i = 0; i < 16; i++) + { + _SFC32_Next_Stream(state, stream); + } +} + +/*This ASM implementation uses some shortcuts and is generally faster on the GBA. +* It's not necessarily faster if inlined, or on other platforms. */ +u32 NAKED Random32(void) +{ + asm(".thumb\n\ + push {r4, r5, r6}\n\ + mov r6, #11\n\ + ldr r5, =gRngValue\n\ + ldmia r5!, {r1, r2, r3, r4}\n\ + @ e (result) = a + b + d++\n\ + add r1, r1, r2\n\ + add r0, r1, r4\n\ + add r4, r4, #" STR(STREAM1) "\n\ + @ a = b ^ (b >> 9)\n\ + lsr r1, r2, #9\n\ + eor r1, r1, r2\n\ + @ b = c + (c << 3) [c * 9]\n\ + lsl r2, r3, #3\n\ + add r2, r2, r3\n\ + @ c = rol(c, 21) + e\n\ + ror r3, r3, r6\n\ + add r3, r3, r0\n\ + sub r5, r5, #16\n\ + stmia r5!, {r1, r2, r3, r4}\n\ + pop {r4, r5, r6}\n\ + bx lr\n\ + .ltorg" + ); +} + +u32 Random2_32(void) +{ + return _SFC32_Next_Stream(&gRng2Value, STREAM2); +} + +void SeedRng(u16 seed) +{ + struct Sfc32State state; + SFC32_Seed(&state, seed, STREAM1); + + sRngLoopUnlocked = FALSE; + gRngValue = state; + sRngLoopUnlocked = TRUE; +} + +void SeedRng2(u16 seed) +{ + SFC32_Seed(&gRng2Value, seed, STREAM2); +} + +void AdvanceRandom(void) +{ + if (sRngLoopUnlocked == TRUE) + Random32(); +} + +#define LOOP_RANDOM_START \ + struct Sfc32State *const state = &gRngValue; \ + sRngLoopUnlocked = FALSE; + +#define LOOP_RANDOM_END sRngLoopUnlocked = TRUE; + +#define LOOP_RANDOM ((u16)(_SFC32_Next(state) >> 16)) + +#else +EWRAM_DATA static u32 sRandCount = 0; u16 Random(void) { @@ -21,7 +117,6 @@ u16 Random(void) void SeedRng(u16 seed) { gRngValue = seed; - sUnknown = 0; } void SeedRng2(u16 seed) @@ -35,15 +130,24 @@ u16 Random2(void) return gRng2Value >> 16; } +#define LOOP_RANDOM_START +#define LOOP_RANDOM_END + +#define LOOP_RANDOM (Random()) + +#endif + #define SHUFFLE_IMPL \ u32 tmp; \ + LOOP_RANDOM_START; \ --n; \ while (n > 1) \ { \ - int j = (Random() * (n+1)) >> 16; \ + int j = (LOOP_RANDOM * (n+1)) >> 16; \ SWAP(data[n], data[j], tmp); \ --n; \ - } + } \ + LOOP_RANDOM_END void Shuffle8(void *data_, size_t n) { @@ -66,15 +170,19 @@ void Shuffle32(void *data_, size_t n) void ShuffleN(void *data, size_t n, size_t size) { void *tmp = alloca(size); + LOOP_RANDOM_START; --n; + while (n > 1) { - int j = (Random() * (n+1)) >> 16; + int j = (LOOP_RANDOM * (n+1)) >> 16; memcpy(tmp, (u8 *)data + n*size, size); // tmp = data[n]; memcpy((u8 *)data + n*size, (u8 *)data + j*size, size); // data[n] = data[j]; memcpy((u8 *)data + j*size, tmp, size); // data[j] = tmp; --n; } + + LOOP_RANDOM_END; } __attribute__((weak, alias("RandomUniformDefault"))) @@ -96,12 +204,14 @@ u32 RandomUniformDefault(enum RandomTag tag, u32 lo, u32 hi) u32 RandomUniformExceptDefault(enum RandomTag tag, u32 lo, u32 hi, bool32 (*reject)(u32)) { + LOOP_RANDOM_START; while (TRUE) { - u32 n = RandomUniformDefault(tag, lo, hi); + u32 n = lo + (((hi - lo + 1) * LOOP_RANDOM) >> 16); if (!reject(n)) return n; } + LOOP_RANDOM_END; } u32 RandomWeightedArrayDefault(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 4d36ce12b2..1ba62b2837 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -33,8 +33,8 @@ struct PlayerInfo // Save data using TryWriteSpecialSaveSector is allowed to exceed SECTOR_DATA_SIZE (up to the counter field) STATIC_ASSERT(sizeof(struct RecordedBattleSave) <= SECTOR_COUNTER_OFFSET, RecordedBattleSaveFreeSpace); -EWRAM_DATA u32 gRecordedBattleRngSeed = 0; -EWRAM_DATA u32 gBattlePalaceMoveSelectionRngValue = 0; +EWRAM_DATA rng_value_t gRecordedBattleRngSeed = RNG_VALUE_EMPTY; +EWRAM_DATA rng_value_t gBattlePalaceMoveSelectionRngValue = RNG_VALUE_EMPTY; EWRAM_DATA static u8 sBattleRecords[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE] = {0}; EWRAM_DATA static u16 sBattlerRecordSizes[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA static u16 sBattlerPrevRecordSizes[MAX_BATTLERS_COUNT] = {0}; diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 38999e1c79..87f639194c 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -18,9 +18,8 @@ // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); -static bool8 LoadBattlerSpriteGfx(u8 battlerId); -static void CreateBattlerSprite(u8 battlerId); -static void CreateHealthboxSprite(u8 battlerId); +static bool8 LoadBattlerSpriteGfx(u32 battler); +static void CreateHealthboxSprite(u32 battler); static void ClearBattleBgCntBaseBlocks(void); void ReshowBattleScreenDummy(void) @@ -180,7 +179,7 @@ static void ClearBattleBgCntBaseBlocks(void) regBgcnt2->charBaseBlock = 0; } -static bool8 LoadBattlerSpriteGfx(u8 battler) +static bool8 LoadBattlerSpriteGfx(u32 battler) { if (battler < gBattlersCount) { @@ -205,7 +204,7 @@ static bool8 LoadBattlerSpriteGfx(u8 battler) return TRUE; } -static void CreateBattlerSprite(u8 battler) +void CreateBattlerSprite(u32 battler) { if (battler < gBattlersCount) { @@ -236,7 +235,7 @@ static void CreateBattlerSprite(u8 battler) { SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50, - (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, + (8 - gTrainerBacksprites[gSaveBlock2Ptr->playerGender].coordinates.size) * 4 + 80, GetBattlerSpriteSubpriority(0)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; @@ -246,7 +245,7 @@ static void CreateBattlerSprite(u8 battler) { SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_WALLY, GetBattlerPosition(0)); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50, - (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].size) * 4 + 80, + (8 - gTrainerBacksprites[TRAINER_BACK_PIC_WALLY].coordinates.size) * 4 + 80, GetBattlerSpriteSubpriority(0)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; @@ -271,7 +270,7 @@ static void CreateBattlerSprite(u8 battler) } } -static void CreateHealthboxSprite(u8 battler) +static void CreateHealthboxSprite(u32 battler) { if (battler < gBattlersCount) { diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c index 7b8822acc6..919c8c5419 100644 --- a/src/rom_header_gf.c +++ b/src/rom_header_gf.c @@ -100,14 +100,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/rtc.c b/src/rtc.c index 085a05b24c..a90c9aa89b 100644 --- a/src/rtc.c +++ b/src/rtc.c @@ -296,7 +296,7 @@ void RtcCalcLocalTime(void) bool8 IsBetweenHours(s32 hours, s32 begin, s32 end) { if (end < begin) - return hours > begin || hours < end; + return hours >= begin || hours < end; else return hours >= begin && hours < end; } @@ -304,14 +304,13 @@ bool8 IsBetweenHours(s32 hours, s32 begin, s32 end) u8 GetTimeOfDay(void) { RtcCalcLocalTime(); - if (IsBetweenHours(gLocalTime.hours, MORNING_EVO_HOUR_BEGIN, MORNING_EVO_HOUR_END)) + if (IsBetweenHours(gLocalTime.hours, MORNING_HOUR_BEGIN, MORNING_HOUR_END)) return TIME_MORNING; - else if (IsBetweenHours(gLocalTime.hours, DUSK_EVO_HOUR_BEGIN, DUSK_EVO_HOUR_END)) - return TIME_DUSK; - else if (IsBetweenHours(gLocalTime.hours, NIGHT_EVO_HOUR_BEGIN, NIGHT_EVO_HOUR_END)) + 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; - else - return TIME_DAY; + return TIME_DAY; } void RtcInitLocalTimeOffset(s32 hour, s32 minute) diff --git a/src/scrcmd.c b/src/scrcmd.c index 288f70d994..e8496ba35f 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -62,7 +62,7 @@ static EWRAM_DATA u16 sMovingNpcMapNum = 0; static EWRAM_DATA u16 sFieldEffectScriptId = 0; static u8 sBrailleWindowId; -static bool8 gIsScriptedWildDouble; +static bool8 sIsScriptedWildDouble; extern const SpecialFunc gSpecials[]; extern const u8 *gStdScripts[]; @@ -1879,12 +1879,12 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx) if(species2 == SPECIES_NONE) { CreateScriptedWildMon(species, level, item); - gIsScriptedWildDouble = FALSE; + sIsScriptedWildDouble = FALSE; } else { CreateScriptedDoubleWildMon(species, level, item, species2, level2, item2); - gIsScriptedWildDouble = TRUE; + sIsScriptedWildDouble = TRUE; } return FALSE; @@ -1892,7 +1892,7 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx) bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx) { - if (gIsScriptedWildDouble == FALSE) + if (sIsScriptedWildDouble == FALSE) BattleSetup_StartScriptedWildBattle(); else BattleSetup_StartScriptedDoubleWildBattle(); diff --git a/src/script_menu.c b/src/script_menu.c index 01b7f6a588..6444e382e9 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 19b187bddf..ca455d544d 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -67,7 +67,7 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u struct Pokemon mon; u16 targetSpecies; - if (OW_SYNCHRONIZE_NATURE >= GEN_6 && (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_UNDISCOVERED || OW_SYNCHRONIZE_NATURE == GEN_7)) + if (OW_SYNCHRONIZE_NATURE >= GEN_6 && (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_NO_EGGS_DISCOVERED || 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); diff --git a/src/sound.c b/src/sound.c index d1083eda20..c6f01c8ad2 100644 --- a/src/sound.c +++ b/src/sound.c @@ -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 0000000000..b553d125ac --- /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/start_menu.c b/src/start_menu.c index f90fe46d9c..9ef6adaf05 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -182,7 +182,7 @@ static const struct WindowTemplate sWindowTemplate_PyramidPeak = { .baseBlock = 0x8 }; -static const u8 gText_MenuDebug[] = _("DEBUG"); +static const u8 sText_MenuDebug[] = _("DEBUG"); static const struct MenuAction sStartMenuItems[] = { @@ -199,7 +199,7 @@ static const struct MenuAction sStartMenuItems[] = [MENU_ACTION_REST_FRONTIER] = {gText_MenuRest, {.u8_void = StartMenuSaveCallback}}, [MENU_ACTION_RETIRE_FRONTIER] = {gText_MenuRetire, {.u8_void = StartMenuBattlePyramidRetireCallback}}, [MENU_ACTION_PYRAMID_BAG] = {gText_MenuBag, {.u8_void = StartMenuBattlePyramidBagCallback}}, - [MENU_ACTION_DEBUG] = {gText_MenuDebug, {.u8_void = StartMenuDebugCallback}}, + [MENU_ACTION_DEBUG] = {sText_MenuDebug, {.u8_void = StartMenuDebugCallback}}, }; static const struct BgTemplate sBgTemplates_LinkBattleSave[] = diff --git a/src/starter_choose.c b/src/starter_choose.c index 39de696e97..3097f87f73 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 72d6ff3e0a..f23ad3fca5 100644 --- a/src/strings.c +++ b/src/strings.c @@ -377,6 +377,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}"); @@ -881,7 +882,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."); diff --git a/src/time_events.c b/src/time_events.c index cec6a44c34..1c8a12a237 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -25,7 +25,7 @@ static void SetMirageRnd(u32 rnd) // unused void InitMirageRnd(void) { - SetMirageRnd((Random() << 16) | Random()); + SetMirageRnd(Random32()); } void UpdateMirageRnd(u16 days) diff --git a/src/trade.c b/src/trade.c index 4976e00912..5e0564a1ff 100644 --- a/src/trade.c +++ b/src/trade.c @@ -157,7 +157,7 @@ struct InGameTrade { u32 personality; u16 heldItem; u8 mailNum; - u8 otName[11]; + u8 otName[TRAINER_NAME_LENGTH + 1]; u8 otGender; u8 sheen; u16 requestedSpecies; @@ -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_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 71a58a55c1..6ffbc836d7 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(&gTrainerSprites[species].frontPic, dest); else - DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species); + DecompressPicFromTable(&gTrainerBacksprites[species].backPic, 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 @@ -100,12 +93,12 @@ static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 if (paletteTag == TAG_NONE) { sCreatingSpriteTemplate.paletteTag = TAG_NONE; - LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); + LoadCompressedPalette(gTrainerSprites[species].palette.data, OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); } else { sCreatingSpriteTemplate.paletteTag = paletteTag; - LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[species]); + LoadCompressedSpritePalette(&gTrainerSprites[species].palette); } } } @@ -115,7 +108,7 @@ static void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 pale if (!isTrainer) LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); else - LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); + LoadCompressedPalette(gTrainerSprites[species].palette.data, PLTT_ID(paletteSlot), PLTT_SIZE_4BPP); } static void AssignSpriteAnimsTable(bool8 isTrainer) @@ -123,7 +116,7 @@ static void AssignSpriteAnimsTable(bool8 isTrainer) if (!isTrainer) sCreatingSpriteTemplate.anims = gAnims_MonPic; else - sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0]; + sCreatingSpriteTemplate.anims = gTrainerSprites[0].animation; } static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) @@ -188,6 +181,7 @@ u16 CreateMonPicSprite_Affine(u16 species, u32 otId, u32 personality, u8 flags, u8 i; u8 spriteId; u8 type; + species = SanitizeSpeciesId(species); for (i = 0; i < PICS_COUNT; i++) { @@ -227,7 +221,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 718afb19d1..ee10747cdf 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -62,6 +62,8 @@ EWRAM_DATA u8 gApproachingTrainerId = 0; static const u8 sEmotion_ExclamationMarkGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_exclamation.4bpp"); static const u8 sEmotion_QuestionMarkGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_question.4bpp"); static const u8 sEmotion_HeartGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_heart.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) = { @@ -136,6 +138,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) } }; @@ -159,10 +169,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_Icons2, + sSpriteAnim_Icons3, + sSpriteAnim_Icons4 }; static const struct SpriteTemplate sSpriteTemplate_ExclamationQuestionMark = @@ -731,6 +756,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 0000000000..0b58b9bac3 --- /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 e3a284c850..13b92136f8 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 @@ -968,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; } } @@ -977,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/sym_ewram.txt b/sym_ewram.txt index 9fc9604c63..3123b3388a 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,3 +1,4 @@ + .include "gflib/malloc.o" .include "src/decompress.o" .include "src/main.o" .include "gflib/window.o" diff --git a/test/battle/ability/anger_shell.c b/test/battle/ability/anger_shell.c index 6b916e088f..4c78435674 100644 --- a/test/battle/ability/anger_shell.c +++ b/test/battle/ability/anger_shell.c @@ -10,11 +10,11 @@ SINGLE_BATTLE_TEST("Anger Shell activates only if the target had more than 50% o PARAMETRIZE { hp = 100; activates = FALSE; } PARAMETRIZE { hp = 50; activates = FALSE; } PARAMETRIZE { hp = 251; activates = TRUE; } - PARAMETRIZE { hp = 255; activates = TRUE; } + PARAMETRIZE { hp = 254; activates = TRUE; } GIVEN { ASSUME(gBattleMoves[MOVE_TACKLE].power != 0); - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_ANGER_SHELL); MaxHP(maxHp); HP(hp); } + PLAYER(SPECIES_KLAWF) { Ability(ABILITY_ANGER_SHELL); MaxHP(maxHp); HP(hp); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } diff --git a/test/battle/ability/bad_dreams.c b/test/battle/ability/bad_dreams.c index 42ac3f04a6..312b9dc695 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 36ce8990b1..77034f0e46 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/beads_of_ruin.c b/test/battle/ability/beads_of_ruin.c index b406a9ecf3..447a750883 100644 --- a/test/battle/ability/beads_of_ruin.c +++ b/test/battle/ability/beads_of_ruin.c @@ -3,51 +3,29 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_WATER_GUN].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_WATER_GUN].category == BATTLE_CATEGORY_SPECIAL); + ASSUME(gBattleMoves[MOVE_ROLE_PLAY].effect == EFFECT_ROLE_PLAY); } -SINGLE_BATTLE_TEST("Beads of Ruin reduces Sp. Def", s16 damage) +SINGLE_BATTLE_TEST("Beads of Ruin reduces Sp. Def if opposing mon's ability doesn't match") { - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_BEADS_OF_RUIN; } + s16 damage[2]; GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } + PLAYER(SPECIES_CHI_YU) { Ability(ABILITY_BEADS_OF_RUIN); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { + TURN { MOVE(player, MOVE_WATER_GUN); MOVE(opponent, MOVE_ROLE_PLAY); } TURN { MOVE(player, MOVE_WATER_GUN); } } SCENE { - if (ability == ABILITY_BEADS_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_BEADS_OF_RUIN); - MESSAGE("Wobbuffet's Beads of Ruin weakened the Sp. Def of all surrounding Pokémon!"); - } - HP_BAR(opponent, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.33), results[1].damage); - } -} - -SINGLE_BATTLE_TEST("Beads of Ruin does not reduce Sp. Def if opposing mon has the same ability", s16 damage) -{ - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_BEADS_OF_RUIN; } - - GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } - OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_BEADS_OF_RUIN); } - } WHEN { - TURN { MOVE(player, MOVE_WATER_GUN); } - } SCENE { - if (ability == ABILITY_BEADS_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_BEADS_OF_RUIN); - MESSAGE("Wobbuffet's Beads of Ruin weakened the Sp. Def of all surrounding Pokémon!"); - } - HP_BAR(opponent, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_EQ(results[0].damage, results[1].damage); + ABILITY_POPUP(player, ABILITY_BEADS_OF_RUIN); + MESSAGE("Chi-Yu's Beads of Ruin weakened the Sp. Def of all surrounding Pokémon!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, player); + HP_BAR(opponent, captureDamage: &damage[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROLE_PLAY, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, player); + HP_BAR(opponent, captureDamage: &damage[1]); + } THEN { + EXPECT_MUL_EQ(damage[1], Q_4_12(1.33), damage[0]); } } diff --git a/test/battle/ability/beast_boost.c b/test/battle/ability/beast_boost.c index da63bf9c4d..fde1683104 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/contrary.c b/test/battle/ability/contrary.c index 1cffd46116..e0498e83cf 100644 --- a/test/battle/ability/contrary.c +++ b/test/battle/ability/contrary.c @@ -3,7 +3,7 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); } SINGLE_BATTLE_TEST("Contrary raises Attack when Intimidated in a single battle", s16 damage) @@ -83,7 +83,7 @@ SINGLE_BATTLE_TEST("Contrary raises stats after using a move which would normall PARAMETRIZE { ability = ABILITY_TANGLED_FEET; } GIVEN { ASSUME(MoveHasMoveEffect(MOVE_OVERHEAT, MOVE_EFFECT_SP_ATK_TWO_DOWN, FALSE) == TRUE); - ASSUME(gBattleMoves[MOVE_OVERHEAT].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_OVERHEAT].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_SPINDA) { Ability(ability); } } WHEN { diff --git a/test/battle/ability/cotton_down.c b/test/battle/ability/cotton_down.c new file mode 100644 index 0000000000..8e15283926 --- /dev/null +++ b/test/battle/ability/cotton_down.c @@ -0,0 +1,64 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Cotton Down drops speed by one of opposing battler if hit by a damaging move") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ELDEGOSS) { Ability(ABILITY_COTTON_DOWN); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + ABILITY_POPUP(opponent, ABILITY_COTTON_DOWN); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Speed fell!"); + } THEN { + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); + } +} + +SINGLE_BATTLE_TEST("Cotton Down drops speed by one for each multi hit") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ELDEGOSS) { Ability(ABILITY_COTTON_DOWN); } + } WHEN { + TURN { MOVE(player, MOVE_DOUBLE_KICK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_KICK, player); + ABILITY_POPUP(opponent, ABILITY_COTTON_DOWN); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Speed fell!"); + ABILITY_POPUP(opponent, ABILITY_COTTON_DOWN); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Speed fell!"); + } THEN { + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 2); + } +} + +DOUBLE_BATTLE_TEST("Cotton Down drops speed by one of all other battlers on the field") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_ELDEGOSS) { Ability(ABILITY_COTTON_DOWN); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerLeft); + ABILITY_POPUP(opponentLeft, ABILITY_COTTON_DOWN); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Wobbuffet's Speed fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Wynaut's Speed fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Foe Wobbuffet's Speed fell!"); + } THEN { + EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(playerRight->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(opponentRight->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); + } +} diff --git a/test/battle/ability/dauntless_shield.c b/test/battle/ability/dauntless_shield.c new file mode 100644 index 0000000000..eb7b5c15cb --- /dev/null +++ b/test/battle/ability/dauntless_shield.c @@ -0,0 +1,47 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(P_GEN_8_POKEMON == TRUE); + ASSUME(B_PROTEAN_LIBERO == GEN_9); +} + +SINGLE_BATTLE_TEST("Dauntless Shield raises Attack by one stage") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ZAMAZENTA) { Ability(ABILITY_DAUNTLESS_SHIELD); } + } WHEN { + TURN { } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 1); + } +} + +SINGLE_BATTLE_TEST("Dauntless Shield raises Attack by one stage only once per battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ZAMAZENTA) { Ability(ABILITY_DAUNTLESS_SHIELD); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { SWITCH(opponent, 1); } + TURN { SWITCH(opponent, 0); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + } + } THEN { + EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE); + } +} diff --git a/test/battle/ability/defeatist.c b/test/battle/ability/defeatist.c index 820c7da355..8c3c208b64 100644 --- a/test/battle/ability/defeatist.c +++ b/test/battle/ability/defeatist.c @@ -3,8 +3,8 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_ECHOED_VOICE].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_ECHOED_VOICE].category == BATTLE_CATEGORY_SPECIAL); } SINGLE_BATTLE_TEST("Defeatist halves Attack when HP <= 50%", s16 damage) diff --git a/test/battle/ability/defiant.c b/test/battle/ability/defiant.c index e8443ecc5f..3463cad18d 100644 --- a/test/battle/ability/defiant.c +++ b/test/battle/ability/defiant.c @@ -138,3 +138,40 @@ SINGLE_BATTLE_TEST("Defiant activates after Sticky Web lowers Speed") MESSAGE("Mankey's Attack sharply rose!"); } } + + +DOUBLE_BATTLE_TEST("Defiant is activated by Cotton Down for non-ally pokemon") +{ + GIVEN { + PLAYER(SPECIES_MANKEY) { Ability(ABILITY_DEFIANT); } + PLAYER(SPECIES_MANKEY) { Ability(ABILITY_DEFIANT); } + OPPONENT(SPECIES_ELDEGOSS) { Ability(ABILITY_COTTON_DOWN); } + OPPONENT(SPECIES_MANKEY) { Ability(ABILITY_DEFIANT); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerLeft); + ABILITY_POPUP(opponentLeft, ABILITY_COTTON_DOWN); + + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Mankey's Speed fell!"); + 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("Mankey's Speed fell!"); + ABILITY_POPUP(playerRight, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Mankey's Attack sharply rose!"); + + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Foe Mankey's Speed fell!"); + } THEN { + EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(playerRight->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(opponentRight->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(playerLeft->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 2); + EXPECT_EQ(playerRight->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 2); + } +} diff --git a/test/battle/ability/download.c b/test/battle/ability/download.c index 5b59e37f00..6546311a4a 100644 --- a/test/battle/ability/download.c +++ b/test/battle/ability/download.c @@ -3,8 +3,8 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_TRI_ATTACK].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TRI_ATTACK].category == BATTLE_CATEGORY_SPECIAL); } SINGLE_BATTLE_TEST("Download raises Attack if player has lower Def than Sp. Def", s16 damage) diff --git a/test/battle/ability/dragons_maw.c b/test/battle/ability/dragons_maw.c index af633d81d0..e05c47bfd5 100644 --- a/test/battle/ability/dragons_maw.c +++ b/test/battle/ability/dragons_maw.c @@ -17,8 +17,8 @@ SINGLE_BATTLE_TEST("Dragon's Maw increases Dragon-type move damage", s16 damage) ASSUME(gBattleMoves[MOVE_TACKLE].type != TYPE_DRAGON); ASSUME(gBattleMoves[MOVE_DRAGON_CLAW].type == TYPE_DRAGON); ASSUME(gBattleMoves[MOVE_DRAGON_BREATH].type == TYPE_DRAGON); - ASSUME(gBattleMoves[MOVE_DRAGON_CLAW].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_DRAGON_BREATH].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_DRAGON_CLAW].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_DRAGON_BREATH].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_REGIDRAGO) { Ability(ability); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/ability/earth_eater.c b/test/battle/ability/earth_eater.c index a0ba2b54dd..fb0ddf6209 100644 --- a/test/battle/ability/earth_eater.c +++ b/test/battle/ability/earth_eater.c @@ -5,14 +5,14 @@ SINGLE_BATTLE_TEST("Earth Eater heals 25% when hit by ground type moves") { GIVEN { ASSUME(gBattleMoves[MOVE_MUD_SLAP].type == TYPE_GROUND); - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_EARTH_EATER); HP(1); MaxHP(100); } + PLAYER(SPECIES_ORTHWORM) { Ability(ABILITY_EARTH_EATER); HP(1); MaxHP(100); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_MUD_SLAP); } } SCENE { ABILITY_POPUP(player, ABILITY_EARTH_EATER); HP_BAR(player, damage: -25); - MESSAGE("Wobbuffet restored HP using its Earth Eater!"); + MESSAGE("Orthworm restored HP using its Earth Eater!"); } } @@ -20,12 +20,15 @@ SINGLE_BATTLE_TEST("Earth Eater does not activate if protected") { GIVEN { ASSUME(gBattleMoves[MOVE_MUD_SLAP].type == TYPE_GROUND); - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_EARTH_EATER); HP(1); MaxHP(100); } + PLAYER(SPECIES_ORTHWORM) { Ability(ABILITY_EARTH_EATER); HP(1); MaxHP(100); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_PROTECT); MOVE(opponent, MOVE_MUD_SLAP); } } SCENE { - NONE_OF { ABILITY_POPUP(player, ABILITY_EARTH_EATER); HP_BAR(player); MESSAGE("Wobbuffet restored HP using its Earth Eater!"); } + NONE_OF { + ABILITY_POPUP(player, ABILITY_EARTH_EATER); HP_BAR(player); + MESSAGE("Orthworm restored HP using its Earth Eater!"); + } } } @@ -33,14 +36,14 @@ SINGLE_BATTLE_TEST("Earth Eater activates on status moves") { GIVEN { ASSUME(gBattleMoves[MOVE_SAND_ATTACK].type == TYPE_GROUND); - ASSUME(gBattleMoves[MOVE_SAND_ATTACK].split == SPLIT_STATUS); - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_EARTH_EATER); HP(1); MaxHP(100); } + ASSUME(gBattleMoves[MOVE_SAND_ATTACK].category == BATTLE_CATEGORY_STATUS); + PLAYER(SPECIES_ORTHWORM) { Ability(ABILITY_EARTH_EATER); HP(1); MaxHP(100); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_SAND_ATTACK); } } SCENE { ABILITY_POPUP(player, ABILITY_EARTH_EATER); HP_BAR(player, damage: -25); - MESSAGE("Wobbuffet restored HP using its Earth Eater!"); + MESSAGE("Orthworm restored HP using its Earth Eater!"); } } diff --git a/test/battle/ability/electromorphosis.c b/test/battle/ability/electromorphosis.c index 9111fa328c..58c9afbe99 100644 --- a/test/battle/ability/electromorphosis.c +++ b/test/battle/ability/electromorphosis.c @@ -12,42 +12,42 @@ SINGLE_BATTLE_TEST("Electromorphosis sets up Charge when hit by any move") GIVEN { 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(gBattleMoves[MOVE_THUNDERBOLT].power != 0); - ASSUME(gBattleMoves[MOVE_THUNDERBOLT].type == TYPE_ELECTRIC); + ASSUME(gBattleMoves[MOVE_GUST].category == BATTLE_CATEGORY_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].power != 0); + ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].type == TYPE_ELECTRIC); - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_ELECTROMORPHOSIS); Speed(10); } + PLAYER(SPECIES_BELLIBOLT) { Ability(ABILITY_ELECTROMORPHOSIS); Speed(10); } OPPONENT(SPECIES_WOBBUFFET) {Ability(ABILITY_LIMBER); Speed(5) ;} // Limber, so it doesn't get paralyzed. } WHEN { - TURN { MOVE(player, MOVE_THUNDERBOLT), MOVE(opponent, move); } - TURN { MOVE(player, MOVE_THUNDERBOLT), MOVE(opponent, move); } + TURN { MOVE(player, MOVE_THUNDER_SHOCK), MOVE(opponent, move); } + TURN { MOVE(player, MOVE_THUNDER_SHOCK), MOVE(opponent, move); } } SCENE { - ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDER_SHOCK, player); HP_BAR(opponent, captureDamage: &dmgBefore); ANIMATION(ANIM_TYPE_MOVE, move, opponent); HP_BAR(player); ABILITY_POPUP(player, ABILITY_ELECTROMORPHOSIS); if (move == MOVE_TACKLE) { - MESSAGE("Being hit by Tackle charged Wobbuffet with power!"); + MESSAGE("Being hit by Tackle charged Bellibolt with power!"); } else { - MESSAGE("Being hit by Gust charged Wobbuffet with power!"); + MESSAGE("Being hit by Gust charged Bellibolt with power!"); } - ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDER_SHOCK, player); HP_BAR(opponent, captureDamage: &dmgAfter); ANIMATION(ANIM_TYPE_MOVE, move, opponent); HP_BAR(player); ABILITY_POPUP(player, ABILITY_ELECTROMORPHOSIS); if (move == MOVE_TACKLE) { - MESSAGE("Being hit by Tackle charged Wobbuffet with power!"); + MESSAGE("Being hit by Tackle charged Bellibolt with power!"); } else { - MESSAGE("Being hit by Gust charged Wobbuffet with power!"); + MESSAGE("Being hit by Gust charged Bellibolt with power!"); } } THEN { diff --git a/test/battle/ability/fluffy.c b/test/battle/ability/fluffy.c index 6c76aeed55..67e992d8af 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/frisk.c b/test/battle/ability/frisk.c new file mode 100644 index 0000000000..916a0eaa28 --- /dev/null +++ b/test/battle/ability/frisk.c @@ -0,0 +1,82 @@ +#include "global.h" +#include "test/battle.h" + +DOUBLE_BATTLE_TEST("Frisk does not trigger when pokemon hold no items") +{ + GIVEN { + PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); }; + PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); }; + OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); }; + OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); }; + } WHEN { + TURN { ; } + } SCENE { + NONE_OF { + ABILITY_POPUP(playerLeft, ABILITY_FRISK); + ABILITY_POPUP(playerRight, ABILITY_FRISK); + ABILITY_POPUP(opponentLeft, ABILITY_FRISK); + ABILITY_POPUP(opponentRight, ABILITY_FRISK); + } + } +} + +SINGLE_BATTLE_TEST("Frisk triggers in a Single Battle") +{ + GIVEN { + PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); Item(ITEM_POTION); }; + OPPONENT(SPECIES_SENTRET) { Ability(ABILITY_FRISK); Item(ITEM_POTION); }; + } WHEN { + TURN { ; } + } SCENE { + ABILITY_POPUP(player, ABILITY_FRISK); + MESSAGE("Furret frisked Foe Sentret and found its Potion!"); + ABILITY_POPUP(opponent, ABILITY_FRISK); + MESSAGE("Foe Sentret frisked Furret and found its Potion!"); + } +} + +DOUBLE_BATTLE_TEST("Frisk triggers for player in a Double Battle after switching-in after fainting") +{ + bool32 targetLeft; + PARAMETRIZE { targetLeft = TRUE; } + PARAMETRIZE { targetLeft = FALSE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_POUND].power != 0); + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + PLAYER(SPECIES_FURRET) { Ability(ABILITY_FRISK); }; + OPPONENT(SPECIES_WYNAUT) { Item(ITEM_POTION); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_POUND, target: targetLeft ? playerLeft : playerRight); SEND_OUT(targetLeft ? playerLeft : playerRight, 2); } + } SCENE { + MESSAGE("Foe Wynaut used Pound!"); + MESSAGE("Wobbuffet fainted!"); + ABILITY_POPUP(targetLeft ? playerLeft : playerRight, ABILITY_FRISK); + MESSAGE("Furret frisked Foe Wynaut and found its Potion!"); + } +} + +DOUBLE_BATTLE_TEST("Frisk triggers for opponent in a Double Battle after switching-in after fainting") +{ + bool32 targetLeft; + PARAMETRIZE { targetLeft = TRUE; } + PARAMETRIZE { targetLeft = FALSE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_POUND].power != 0); + PLAYER(SPECIES_WYNAUT) { Item(ITEM_POTION); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_FURRET) { Ability(ABILITY_FRISK); }; + } WHEN { + TURN { MOVE(playerLeft, MOVE_POUND, target: targetLeft ? opponentLeft : opponentRight); SEND_OUT(targetLeft ? opponentLeft : opponentRight, 2); } + } SCENE { + MESSAGE("Wynaut used Pound!"); + MESSAGE("Foe Wobbuffet fainted!"); + ABILITY_POPUP(targetLeft ? opponentLeft : opponentRight, ABILITY_FRISK); + MESSAGE("Foe Furret frisked Wynaut and found its Potion!"); + } +} diff --git a/test/battle/ability/hunger_switch.c b/test/battle/ability/hunger_switch.c index 2b39bde589..e4fbda82d1 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/ice_scales.c b/test/battle/ability/ice_scales.c index 2bbe7dab05..5d1db524a2 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; @@ -17,10 +12,10 @@ SINGLE_BATTLE_TEST("Ice Scales halves the damage from special moves", s16 damage PARAMETRIZE { ability = ABILITY_SHIELD_DUST; move = MOVE_TACKLE; } PARAMETRIZE { ability = ABILITY_ICE_SCALES; move = MOVE_TACKLE; } GIVEN { - ASSUME(gBattleMoves[MOVE_PSYCHIC].split == SPLIT_SPECIAL); - ASSUME(gBattleMoves[MOVE_PSYSHOCK].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_PSYCHIC].category == BATTLE_CATEGORY_SPECIAL); + ASSUME(gBattleMoves[MOVE_PSYSHOCK].category == BATTLE_CATEGORY_SPECIAL); ASSUME(gBattleMoves[MOVE_PSYSHOCK].effect == EFFECT_PSYSHOCK); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_FROSMOTH) { Ability(ability); } } WHEN { diff --git a/test/battle/ability/innards_out.c b/test/battle/ability/innards_out.c new file mode 100644 index 0000000000..0ace4163d8 --- /dev/null +++ b/test/battle/ability/innards_out.c @@ -0,0 +1,66 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Innards Out deal dmg on fainting equal to the amount of dmg inflicted on the Innards Out mon") +{ + u16 hp = 0; + PARAMETRIZE { hp = 5; } + PARAMETRIZE { hp = 15; } + PARAMETRIZE { hp = 50; } + PARAMETRIZE { hp = 100; } // This takes out Wobbuffet. + + GIVEN { + PLAYER(SPECIES_PYUKUMUKU) { HP(hp); Ability(ABILITY_INNARDS_OUT); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(70); SpAttack(1000); } + OPPONENT(SPECIES_WOBBUFFET); + ASSUME(gBattleMoves[MOVE_PSYCHIC].power != 0); + } WHEN { + TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); if (hp == 100) { SEND_OUT(opponent, 1); } } + } SCENE { + MESSAGE("Foe Wobbuffet used Psychic!"); + HP_BAR(player, hp); + ABILITY_POPUP(player, ABILITY_INNARDS_OUT); + HP_BAR(opponent, hp); + } +} + +SINGLE_BATTLE_TEST("Innards Out does not trigger after Gastro Acid has been used") +{ + GIVEN { + PLAYER(SPECIES_PYUKUMUKU) { HP(1); Ability(ABILITY_INNARDS_OUT); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + ASSUME(gBattleMoves[MOVE_PSYCHIC].power != 0); + ASSUME(gBattleMoves[MOVE_GASTRO_ACID].effect == EFFECT_GASTRO_ACID); + } WHEN { + TURN { MOVE(opponent, MOVE_GASTRO_ACID); } + TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); } + } SCENE { + MESSAGE("Foe Wobbuffet used Gastro Acid!"); + MESSAGE("Foe Wobbuffet used Psychic!"); + HP_BAR(player); + NONE_OF { + ABILITY_POPUP(player, ABILITY_INNARDS_OUT); + HP_BAR(opponent); + } + } +} + +// According to Showdown Innards Out triggers, but does nothing. +SINGLE_BATTLE_TEST("Innards Out does not damage Magic Guard Pokemon") +{ + GIVEN { + PLAYER(SPECIES_PYUKUMUKU) { HP(1); Ability(ABILITY_INNARDS_OUT); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_CLEFABLE) { Ability(ABILITY_MAGIC_GUARD); } + ASSUME(gBattleMoves[MOVE_PSYCHIC].power != 0); + } WHEN { + TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); } + } SCENE { + MESSAGE("Foe Clefable used Psychic!"); + HP_BAR(player); + ABILITY_POPUP(player, ABILITY_INNARDS_OUT); + NOT HP_BAR(opponent); + } +} diff --git a/test/battle/ability/intimidate.c b/test/battle/ability/intimidate.c index a0a23cc132..c64bdaeebf 100644 --- a/test/battle/ability/intimidate.c +++ b/test/battle/ability/intimidate.c @@ -3,7 +3,7 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); } SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after switch out", s16 damage) diff --git a/test/battle/ability/intrepid_sword.c b/test/battle/ability/intrepid_sword.c new file mode 100644 index 0000000000..88228bbe78 --- /dev/null +++ b/test/battle/ability/intrepid_sword.c @@ -0,0 +1,47 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(P_GEN_8_POKEMON == TRUE); + ASSUME(B_INTREPID_SWORD == GEN_9); +} + +SINGLE_BATTLE_TEST("Intrepid Sword raises Attack by one stage") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); } + } WHEN { + TURN { } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); + } +} + +SINGLE_BATTLE_TEST("Intrepid Sword raises Attack by one stage only once per battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ZACIAN) { Ability(ABILITY_INTREPID_SWORD); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { SWITCH(opponent, 1); } + TURN { SWITCH(opponent, 0); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + } + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); + } +} diff --git a/test/battle/ability/keen_eye.c b/test/battle/ability/keen_eye.c new file mode 100644 index 0000000000..c0a6f34c84 --- /dev/null +++ b/test/battle/ability/keen_eye.c @@ -0,0 +1,199 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TACKLE].accuracy == 100); + ASSUME(gBattleMoves[MOVE_SAND_ATTACK].effect == EFFECT_ACCURACY_DOWN); + ASSUME(B_ILLUMINATE_EFFECT >= GEN_9); +} + +SINGLE_BATTLE_TEST("Keen Eye, Gen9+ Illuminate & Minds Eye prevent accuracy stage reduction from moves") +{ + u16 ability; + u32 species; + + PARAMETRIZE { species = SPECIES_HITMONCHAN; ability = ABILITY_KEEN_EYE; } + PARAMETRIZE { species = SPECIES_STARYU; ability = ABILITY_ILLUMINATE; } + PARAMETRIZE { species = SPECIES_URSALUNA_BLOODMOON; ability = ABILITY_MINDS_EYE; } + + PASSES_RANDOMLY(100, 100, RNG_ACCURACY); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_SAND_ATTACK); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ABILITY_POPUP(opponent, ability); + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + if (species == SPECIES_HITMONCHAN) + MESSAGE("Foe Hitmonchan's Keen Eye prevents accuracy loss!"); + else if (species == SPECIES_STARYU) + MESSAGE("Foe Staryu's Illuminate prevents accuracy loss!"); + else + MESSAGE("Foe Ursaluna's Mind's Eye prevents accuracy loss!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + } +} + +SINGLE_BATTLE_TEST("Keen Eye, Gen9+ Illuminate & Minds Eye ignore target's evasion stat") +{ + u16 ability; + u32 species; + + PARAMETRIZE { species = SPECIES_HITMONCHAN; ability = ABILITY_KEEN_EYE; } + PARAMETRIZE { species = SPECIES_STARYU; ability = ABILITY_ILLUMINATE; } + PARAMETRIZE { species = SPECIES_URSALUNA_BLOODMOON; ability = ABILITY_MINDS_EYE; } + + PASSES_RANDOMLY(100, 100, RNG_ACCURACY); + GIVEN { + ASSUME(gBattleMoves[MOVE_DOUBLE_TEAM].effect == EFFECT_EVASION_UP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_DOUBLE_TEAM); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_TEAM, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + } +} + +SINGLE_BATTLE_TEST("Keen Eye, Gen9+ Illuminate & Minds Eye are ignored by Mold Breaker abilities") +{ + u16 abilityPlayer = ABILITY_NONE, abilityOpponent = ABILITY_NONE; + u16 speciesPlayer = SPECIES_NONE, speciesOpponent = SPECIES_NONE; + + u32 j; + static const u16 moldBreakerAbilities[][2] = { + {SPECIES_PINSIR, ABILITY_MOLD_BREAKER}, + {SPECIES_RESHIRAM, ABILITY_TURBOBLAZE}, + {SPECIES_ZEKROM, ABILITY_TERAVOLT}, + }; + + for (j = 0; j < ARRAY_COUNT(moldBreakerAbilities); j++) { + speciesPlayer = moldBreakerAbilities[j][0]; abilityPlayer = moldBreakerAbilities[j][1]; + PARAMETRIZE { speciesOpponent = SPECIES_HITMONCHAN; abilityOpponent = ABILITY_KEEN_EYE; } + PARAMETRIZE { speciesOpponent = SPECIES_STARYU; abilityOpponent = ABILITY_ILLUMINATE; } + PARAMETRIZE { speciesOpponent = SPECIES_URSALUNA_BLOODMOON; abilityOpponent = ABILITY_MINDS_EYE; } + } + + PASSES_RANDOMLY(gBattleMoves[MOVE_TACKLE].accuracy * 3 / 4, 100, RNG_ACCURACY); + GIVEN { + PLAYER(speciesPlayer) { Ability(abilityPlayer); } + OPPONENT(speciesOpponent) { Ability(abilityOpponent); } + } WHEN { + TURN { MOVE(player, MOVE_SAND_ATTACK); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ABILITY_POPUP(player, abilityPlayer); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SAND_ATTACK, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + } +} + +SINGLE_BATTLE_TEST("Keen Eye, Gen9+ Illuminate & Minds Eye don't prevent Topsy-Turvy") +{ + u16 ability; + u32 species; + + PARAMETRIZE { species = SPECIES_HITMONCHAN; ability = ABILITY_KEEN_EYE; } + PARAMETRIZE { species = SPECIES_STARYU; ability = ABILITY_ILLUMINATE; } + PARAMETRIZE { species = SPECIES_URSALUNA_BLOODMOON; ability = ABILITY_MINDS_EYE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_HONE_CLAWS].effect == EFFECT_ATTACK_ACCURACY_UP); + ASSUME(gBattleMoves[MOVE_TOPSY_TURVY].effect == EFFECT_TOPSY_TURVY); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(opponent, MOVE_HONE_CLAWS); MOVE(player, MOVE_TOPSY_TURVY); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HONE_CLAWS, opponent); + if (species == SPECIES_HITMONCHAN) { + MESSAGE("Foe Hitmonchan's Attack rose!"); + MESSAGE("Foe Hitmonchan's accuracy rose!"); + } else if (species == SPECIES_STARYU) { + MESSAGE("Foe Staryu's Attack rose!"); + MESSAGE("Foe Staryu's accuracy rose!"); + } else { + MESSAGE("Foe Ursaluna's Attack rose!"); + MESSAGE("Foe Ursaluna's accuracy rose!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TOPSY_TURVY, player); + if (species == SPECIES_HITMONCHAN) + MESSAGE("Foe Hitmonchan's stat changes were all reversed!"); + else if (species == SPECIES_STARYU) + MESSAGE("Foe Staryu's stat changes were all reversed!"); + else + MESSAGE("Foe Ursaluna's stat changes were all reversed!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ACC], DEFAULT_STAT_STAGE - 1); + } +} + +SINGLE_BATTLE_TEST("Keen Eye, Gen9+ Illuminate & Minds Eye don't prevent receiving negative Attack stage changes from Baton Pass") +{ + u16 ability; + u32 species; + PARAMETRIZE { species = SPECIES_HITMONCHAN; ability = ABILITY_KEEN_EYE; } + PARAMETRIZE { species = SPECIES_STARYU; ability = ABILITY_ILLUMINATE; } + PARAMETRIZE { species = SPECIES_URSALUNA_BLOODMOON; ability = ABILITY_MINDS_EYE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_BATON_PASS].effect == EFFECT_BATON_PASS); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_SAND_ATTACK); + MOVE(opponent, MOVE_BATON_PASS); + SEND_OUT(opponent, 1); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SAND_ATTACK, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); + if (species == SPECIES_HITMONCHAN) + MESSAGE("2 sent out Hitmonchan!"); + else if (species == SPECIES_STARYU) + MESSAGE("2 sent out Staryu!"); + else + MESSAGE("2 sent out Ursaluna!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ACC], DEFAULT_STAT_STAGE - 1); + } +} + +SINGLE_BATTLE_TEST("Keen Eye & Gen9+ Illuminate don't prevent Spectral Thief from resetting positive accuracy stage changes") +{ + u16 ability; + u32 species; + + PARAMETRIZE { species = SPECIES_HITMONCHAN; ability = ABILITY_KEEN_EYE; } + PARAMETRIZE { species = SPECIES_STARYU; ability = ABILITY_ILLUMINATE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_HONE_CLAWS].effect == EFFECT_ATTACK_ACCURACY_UP); + ASSUME(gBattleMoves[MOVE_SPECTRAL_THIEF].effect == EFFECT_SPECTRAL_THIEF); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(opponent, MOVE_HONE_CLAWS); MOVE(player, MOVE_SPECTRAL_THIEF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HONE_CLAWS, opponent); + if (species == SPECIES_HITMONCHAN) + { + MESSAGE("Foe Hitmonchan's Attack rose!"); + MESSAGE("Foe Hitmonchan's accuracy rose!"); + } + else + { + MESSAGE("Foe Staryu's Attack rose!"); + MESSAGE("Foe Staryu's accuracy rose!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPECTRAL_THIEF, player); + MESSAGE("Wobbuffet stole the target's boosted stats!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ACC], DEFAULT_STAT_STAGE); + } +} diff --git a/test/battle/ability/magician.c b/test/battle/ability/magician.c new file mode 100644 index 0000000000..388c91dccf --- /dev/null +++ b/test/battle/ability/magician.c @@ -0,0 +1,29 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Magician does not get self-damage recoil after stealing Life Orb") +{ + GIVEN { + ASSUME(gItems[ITEM_LIFE_ORB].holdEffect == HOLD_EFFECT_LIFE_ORB); + ASSUME(gBattleMoves[MOVE_TACKLE].power != 0); + PLAYER(SPECIES_DELPHOX) { Ability(ABILITY_MAGICIAN); Item(ITEM_NONE); } + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_LIFE_ORB); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + // 1st turn + MESSAGE("Delphox used Tackle!"); + ABILITY_POPUP(player, ABILITY_MAGICIAN); + MESSAGE("Delphox stole Foe Wobbuffet's Life Orb!"); + NONE_OF { + HP_BAR(player); + MESSAGE("Delphox was hurt by its Life Orb!"); + } + // 2nd turn - Life Orb recoil happens now + MESSAGE("Delphox used Tackle!"); + HP_BAR(player); + MESSAGE("Delphox was hurt by its Life Orb!"); + } +} + diff --git a/test/battle/ability/minds_eye.c b/test/battle/ability/minds_eye.c new file mode 100644 index 0000000000..52434c6670 --- /dev/null +++ b/test/battle/ability/minds_eye.c @@ -0,0 +1,71 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Mind's Eye allows to hit Ghost-type Pokémon with Normal- and Fighting-type moves") +{ + u32 move; + PARAMETRIZE { move = MOVE_TACKLE; } + PARAMETRIZE { move = MOVE_KARATE_CHOP; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_MINDS_EYE); }; + OPPONENT(SPECIES_GASTLY); + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, player); + HP_BAR(opponent); + } +} + +// No current official way to test this, effect based on Smogon's NatDex format. +SINGLE_BATTLE_TEST("Mind's Eye doesn't bypass a Ghost-type's Wonder Guard") +{ + u32 move; + PARAMETRIZE { move = MOVE_TACKLE; } + PARAMETRIZE { move = MOVE_KARATE_CHOP; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_SCRAPPY); }; + OPPONENT(SPECIES_SHEDINJA) { Ability(ABILITY_WONDER_GUARD); }; + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, move, player); + HP_BAR(opponent); + } + ABILITY_POPUP(opponent, ABILITY_WONDER_GUARD); + MESSAGE("Foe Shedinja avoided damage with Wonder Guard!"); + } +} + +//// AI TESTS //// + +AI_SINGLE_BATTLE_TEST("AI doesn't use accuracy-lowering moves if it knows that the foe has Mind's Eye") +{ + u32 abilityAI = ABILITY_NONE, moveAI = MOVE_NONE, j = 0; + + for (j = MOVE_NONE + 1; j < MOVES_COUNT; j++) + { + if (gBattleMoves[j].effect == EFFECT_ACCURACY_DOWN || gBattleMoves[j].effect == EFFECT_ACCURACY_DOWN_2) { + PARAMETRIZE{ moveAI = j; abilityAI = ABILITY_SWIFT_SWIM; } + PARAMETRIZE{ moveAI = j; abilityAI = ABILITY_MOLD_BREAKER; } + } + } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_MINDS_EYE); } + OPPONENT(SPECIES_BASCULEGION) { Moves(MOVE_CELEBRATE, moveAI); Ability(abilityAI); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_TACKLE); + if (abilityAI == ABILITY_MOLD_BREAKER) { SCORE_GT(opponent, moveAI, MOVE_CELEBRATE); } + else { SCORE_EQ(opponent, moveAI, MOVE_CELEBRATE); } + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + if (abilityAI == ABILITY_MOLD_BREAKER) { ANIMATION(ANIM_TYPE_MOVE, moveAI, opponent); } + } +} diff --git a/test/battle/ability/mirror_armor.c b/test/battle/ability/mirror_armor.c index 2b0a59044c..2c4d8d9a27 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 df15bd4511..4aac565066 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/opportunist.c b/test/battle/ability/opportunist.c index 2f0c5c8c84..79c6649f59 100644 --- a/test/battle/ability/opportunist.c +++ b/test/battle/ability/opportunist.c @@ -4,16 +4,16 @@ SINGLE_BATTLE_TEST("Opportunist only copies foe's positive stat changes in a turn", s16 damage) { u32 ability; - PARAMETRIZE { ability = ABILITY_NONE; } + PARAMETRIZE { ability = ABILITY_FRISK; } PARAMETRIZE { ability = ABILITY_OPPORTUNIST; } GIVEN { PLAYER(SPECIES_WOBBUFFET) { Speed(4); } - OPPONENT(SPECIES_WOBBUFFET) { Speed(5); Ability(ability); } + OPPONENT(SPECIES_ESPATHRA) { Speed(5); Ability(ability); } } WHEN { TURN { MOVE(player, MOVE_SHELL_SMASH); } TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_TACKLE); } } SCENE { - if (ability == ABILITY_NONE) { + if (ability == ABILITY_FRISK) { ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SMASH, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); HP_BAR(player, captureDamage: &results[i].damage); @@ -46,7 +46,7 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid GIVEN { PLAYER(SPECIES_MIGHTYENA) { Ability(ABILITY_INTIMIDATE); } - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_OPPORTUNIST); } + PLAYER(SPECIES_ESPATHRA) { Ability(ABILITY_OPPORTUNIST); } OPPONENT(SPECIES_SPINDA) { Ability(abilityLeft); } OPPONENT(SPECIES_SPINDA) { Ability(abilityRight); } } WHEN { @@ -73,14 +73,14 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid if ((abilityLeft == ABILITY_CONTRARY && abilityRight != ABILITY_CONTRARY) || (abilityLeft != ABILITY_CONTRARY && abilityRight == ABILITY_CONTRARY)) { ABILITY_POPUP(playerRight, ABILITY_OPPORTUNIST); - MESSAGE("Wobbuffet copied its opponent's stat changes!"); + MESSAGE("Espathra copied its opponent's stat changes!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); - MESSAGE("Wobbuffet's Attack rose!"); + MESSAGE("Espathra's Attack rose!"); } else if (abilityLeft == ABILITY_CONTRARY && abilityRight == ABILITY_CONTRARY) { ABILITY_POPUP(playerRight, ABILITY_OPPORTUNIST); - MESSAGE("Wobbuffet copied its opponent's stat changes!"); + MESSAGE("Espathra copied its opponent's stat changes!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); - MESSAGE("Wobbuffet's Attack sharply rose!"); + MESSAGE("Espathra's Attack sharply rose!"); } HP_BAR(playerLeft, captureDamage: &results[i].damageLeft); diff --git a/test/battle/ability/parental_bond.c b/test/battle/ability/parental_bond.c index 9d0598304d..f1d34cd30a 100644 --- a/test/battle/ability/parental_bond.c +++ b/test/battle/ability/parental_bond.c @@ -4,7 +4,7 @@ SINGLE_BATTLE_TEST("Parental Bond converts Tackle into a two-strike move") { GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split != SPLIT_STATUS); + ASSUME(gBattleMoves[MOVE_TACKLE].category != BATTLE_CATEGORY_STATUS); ASSUME(gBattleMoves[MOVE_TACKLE].strikeCount < 2); ASSUME(gBattleMoves[MOVE_TACKLE].effect == EFFECT_HIT); PLAYER(SPECIES_KANGASKHAN) { Item(ITEM_KANGASKHANITE); } diff --git a/test/battle/ability/prankster.c b/test/battle/ability/prankster.c index 3f402e0fc6..bcff336789 100644 --- a/test/battle/ability/prankster.c +++ b/test/battle/ability/prankster.c @@ -1,29 +1,222 @@ #include "global.h" #include "test/battle.h" +ASSUMPTIONS +{ + ASSUME(gSpeciesInfo[SPECIES_UMBREON].types[0] == TYPE_DARK); + ASSUME(gBattleMoves[MOVE_CONFUSE_RAY].category == BATTLE_CATEGORY_STATUS); +} + SINGLE_BATTLE_TEST("Prankster-affected moves don't affect Dark-type Pokémon") { GIVEN { - ASSUME(gSpeciesInfo[SPECIES_UMBREON].types[0] == TYPE_DARK); PLAYER(SPECIES_UMBREON); - OPPONENT(SPECIES_MURKROW) { Ability(ABILITY_PRANKSTER); } + OPPONENT(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } } WHEN { TURN { MOVE(opponent, MOVE_CONFUSE_RAY); } } SCENE { - NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, opponent); MESSAGE("It doesn't affect Umbreon…"); } } -TO_DO_BATTLE_TEST("Prankster-affected moves affect Ally Dark-type Pokémon") -TO_DO_BATTLE_TEST("Prankster-affected moves called via Assist don't affect Dark-type Pokémon"); + +SINGLE_BATTLE_TEST("Prankster-affected moves don't affect Dark-type Pokémon after they switch-in") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_UMBREON); + OPPONENT(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } + } WHEN { + TURN { SWITCH(player, 1); MOVE(opponent, MOVE_CONFUSE_RAY); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, opponent); + MESSAGE("It doesn't affect Umbreon…"); + } +} + +DOUBLE_BATTLE_TEST("Prankster-affected moves affect Ally Dark-type Pokémon") +{ + GIVEN { + PLAYER(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } + PLAYER(SPECIES_UMBREON); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_CONFUSE_RAY, target: playerRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, playerLeft); + NOT MESSAGE("It doesn't affect Umbreon…"); + } +} + +SINGLE_BATTLE_TEST("Prankster-affected moves called via Assist don't affect Dark-type Pokémon") +{ + GIVEN { + PLAYER(SPECIES_UMBREON); + OPPONENT(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_CONFUSE_RAY); }; + } WHEN { + TURN { MOVE(opponent, MOVE_ASSIST); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, opponent); + MESSAGE("It doesn't affect Umbreon…"); + } +} + +// Tested on Showdown, even though Bulbapedia says otherwise. +DOUBLE_BATTLE_TEST("Prankster-affected moves called via Instruct do not affect Dark-type Pokémon") +{ + GIVEN { + PLAYER(SPECIES_VOLBEAT) { Speed(20); Ability(ABILITY_PRANKSTER); } + PLAYER(SPECIES_WOBBUFFET) { Speed(10);} + OPPONENT(SPECIES_UMBREON) { Speed(1); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(1); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_CONFUSE_RAY, target: opponentLeft); + MOVE(playerRight, MOVE_INSTRUCT, target: playerLeft); + } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, playerLeft); + MESSAGE("It doesn't affect Foe Umbreon…"); + MESSAGE("Wobbuffet used Instruct!"); + MESSAGE("Volbeat used Confuse Ray!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, playerLeft); + MESSAGE("It doesn't affect Foe Umbreon…"); + } +} + +SINGLE_BATTLE_TEST("Prankster increases the priority of moves by 1") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(10); } + OPPONENT(SPECIES_VOLBEAT) { Speed(5); Ability(ABILITY_PRANKSTER); } + } WHEN { + TURN { MOVE(opponent, MOVE_CONFUSE_RAY); MOVE(player, MOVE_CELEBRATE, WITH_RNG(RNG_CONFUSION, FALSE)); } // RNG_CONFUSION so that Wobb doesn't hit itself. + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); + } +} + +DOUBLE_BATTLE_TEST("Moves called via Prankster-affected After you affect Dark-type Pokémon") +{ + GIVEN { + PLAYER(SPECIES_VOLBEAT) { Speed(1); Ability(ABILITY_PRANKSTER); } + PLAYER(SPECIES_WOBBUFFET) { Speed(1);} + OPPONENT(SPECIES_UMBREON) { Speed(10); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(10); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_AFTER_YOU, target: playerRight); + MOVE(playerRight, MOVE_CONFUSE_RAY, target: opponentLeft); + } + } SCENE { + MESSAGE("Volbeat used After You!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_AFTER_YOU, playerLeft); + MESSAGE("Wobbuffet used Confuse Ray!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, playerRight); + MESSAGE("Foe Umbreon became confused!"); + } +} + +SINGLE_BATTLE_TEST("Prankster is blocked by Quick Guard in Gen5+") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } + } WHEN { + TURN { MOVE(player, MOVE_QUICK_GUARD); MOVE(opponent, MOVE_CONFUSE_RAY); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_GUARD, player); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, opponent); + MESSAGE("Wobbuffet protected itself!"); + } +} + +DOUBLE_BATTLE_TEST("Prankster-affected moves that target all Pokémon are successful regardless of the presence of Dark-type Pokémon") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_CAPTIVATE].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_UMBREON); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_CAPTIVATE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CAPTIVATE, playerLeft); + } +} + +SINGLE_BATTLE_TEST("Prankster-affected moves can still be bounced back by Dark-types using Magic Coat") +{ + GIVEN { + PLAYER(SPECIES_UMBREON); + OPPONENT(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } + } WHEN { + TURN { MOVE(player, MOVE_MAGIC_COAT); MOVE(opponent, MOVE_CONFUSE_RAY); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_COAT, player); + MESSAGE("Foe Volbeat used Confuse Ray!"); + MESSAGE("Foe Volbeat's Confuse Ray was bounced back by MAGIC COAT!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); + MESSAGE("Foe Volbeat became confused!"); + } +} + +SINGLE_BATTLE_TEST("Prankster-affected moves which are reflected by Magic Coat can affect Dark-type Pokémon, unless the Pokémon that bounced the move also has Prankster") +{ + u16 sableyeAbility; + + PARAMETRIZE { sableyeAbility = ABILITY_PRANKSTER; } + PARAMETRIZE { sableyeAbility = ABILITY_KEEN_EYE; } + + GIVEN { + PLAYER(SPECIES_SABLEYE) { Ability(sableyeAbility); } + OPPONENT(SPECIES_MURKROW) { Ability(ABILITY_PRANKSTER); } + } WHEN { + TURN { MOVE(player, MOVE_MAGIC_COAT); MOVE(opponent, MOVE_CONFUSE_RAY); } + } SCENE { + MESSAGE("Sableye used Magic Coat!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_COAT, player); + MESSAGE("Foe Murkrow used Confuse Ray!"); + MESSAGE("Foe Murkrow's Confuse Ray was bounced back by MAGIC COAT!"); + if (sableyeAbility == ABILITY_PRANKSTER) { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); + MESSAGE("It doesn't affect Foe Murkrow…"); + } else { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); + MESSAGE("Foe Murkrow became confused!"); + } + } +} + +SINGLE_BATTLE_TEST("Prankster-affected moves can still be bounced back by a Dark-type with Magic Bounce") +{ + GIVEN { + PLAYER(SPECIES_ABSOL) { Item(ITEM_ABSOLITE); } + OPPONENT(SPECIES_VOLBEAT) { Ability(ABILITY_PRANKSTER); } + } WHEN { + TURN { MOVE(player, MOVE_CELEBRATE, megaEvolve: TRUE); MOVE(opponent, MOVE_CONFUSE_RAY); } + } SCENE { + MESSAGE("Foe Volbeat's Confuse Ray was bounced back by Absol's Magic Bounce!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); + } +} + +SINGLE_BATTLE_TEST("Prankster-affected moves that are bounced back by Magic Bounce can affect Dark-type Pokémon") +{ + GIVEN { + PLAYER(SPECIES_ABSOL) { Item(ITEM_ABSOLITE); } + OPPONENT(SPECIES_MURKROW) { Ability(ABILITY_PRANKSTER); } + } WHEN { + TURN { MOVE(player, MOVE_CELEBRATE, megaEvolve: TRUE); MOVE(opponent, MOVE_CONFUSE_RAY); } + } SCENE { + MESSAGE("Foe Murkrow's Confuse Ray was bounced back by Absol's Magic Bounce!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); + MESSAGE("Foe Murkrow became confused!"); + } +} + TO_DO_BATTLE_TEST("Prankster-affected moves called via Nature Power don't affect Dark-type Pokémon"); -TO_DO_BATTLE_TEST("Prankster-affected moves called via Instruct affect Dark-type Pokémon"); -TO_DO_BATTLE_TEST("Prankster-affected moves called via After you affect Dark-type Pokémon"); -TO_DO_BATTLE_TEST("Prankster-affected moves that are bounced back by Magic Bounce/Coat can affect Dark-type Pokémon"); -TO_DO_BATTLE_TEST("Prankster-affected moves that are bounced back by Magic Coat from a Pokémon with Prankster can't affect Dark-type Pokémon"); -TO_DO_BATTLE_TEST("Prankster-affected moves that target all Pokémon are successful regardless of the presence of Dark-type Pokémon"); -TO_DO_BATTLE_TEST("Prankster-affected move effects don't affect Dark-type Pokémon"); -TO_DO_BATTLE_TEST("Prankster increases the priority of moves by 1"); TO_DO_BATTLE_TEST("Prankster increases the priority of status Z-Moves by 1"); TO_DO_BATTLE_TEST("Prankster increases the priority of Extreme Evoboost by 1"); -TO_DO_BATTLE_TEST("Prankster is blocked by Quick Guard in Gen5+"); diff --git a/test/battle/ability/protean.c b/test/battle/ability/protean.c new file mode 100644 index 0000000000..936c341f89 --- /dev/null +++ b/test/battle/ability/protean.c @@ -0,0 +1,34 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(B_PROTEAN_LIBERO == GEN_9); +} + +SINGLE_BATTLE_TEST("Protean changes the type of the user only once per switch in") +{ + GIVEN { + PLAYER(SPECIES_REGIROCK); + OPPONENT(SPECIES_KECLEON) { Ability(ABILITY_PROTEAN); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_WATER_GUN); } + TURN { MOVE(opponent, MOVE_TACKLE); } + TURN { SWITCH(opponent, 1); } + TURN { SWITCH(opponent, 0); } + TURN { MOVE(opponent, MOVE_WATER_GUN); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_PROTEAN); + MESSAGE("Foe Kecleon transformed into the Water type!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_PROTEAN); + MESSAGE("Foe Kecleon transformed into the Normal type!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ABILITY_POPUP(opponent, ABILITY_PROTEAN); + MESSAGE("Foe Kecleon transformed into the Water type!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); + } +} diff --git a/test/battle/ability/protosynthesis.c b/test/battle/ability/protosynthesis.c index 0d53141c34..976ac36385 100644 --- a/test/battle/ability/protosynthesis.c +++ b/test/battle/ability/protosynthesis.c @@ -3,22 +3,22 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_ROUND].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_ROUND].category == BATTLE_CATEGORY_SPECIAL); } SINGLE_BATTLE_TEST("Protosynthesis boosts the highest stat") { GIVEN { - PLAYER(SPECIES_ABRA) { Ability(ABILITY_PROTOSYNTHESIS); } + PLAYER(SPECIES_WALKING_WAKE) { Ability(ABILITY_PROTOSYNTHESIS); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_SUNNY_DAY); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SUNNY_DAY, player); ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); - MESSAGE("The harsh sunlight activated Abra's Protosynthesis!"); - MESSAGE("Abra's Sp. Atk was heightened!"); + MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!"); + MESSAGE("WalkngWake's Sp. Atk was heightened!"); } } @@ -28,11 +28,11 @@ SINGLE_BATTLE_TEST("Protosynthesis boosts either Attack or Special Attack, not b u32 move; s16 damage[2]; - PARAMETRIZE { species = SPECIES_BELLSPROUT; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_BELLSPROUT; move = MOVE_ROUND; } + PARAMETRIZE { species = SPECIES_ROARING_MOON; move = MOVE_TACKLE; } + PARAMETRIZE { species = SPECIES_ROARING_MOON; move = MOVE_ROUND; } - PARAMETRIZE { species = SPECIES_ABRA; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_ABRA; move = MOVE_ROUND; } + PARAMETRIZE { species = SPECIES_WALKING_WAKE; move = MOVE_TACKLE; } + PARAMETRIZE { species = SPECIES_WALKING_WAKE; move = MOVE_ROUND; } GIVEN { PLAYER(species) { Ability(ABILITY_PROTOSYNTHESIS); } @@ -47,41 +47,55 @@ SINGLE_BATTLE_TEST("Protosynthesis boosts either Attack or Special Attack, not b ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent, captureDamage: &damage[1]); } THEN { - if ((move == MOVE_TACKLE && species == SPECIES_BELLSPROUT) || (move == MOVE_ROUND && species == SPECIES_ABRA)) + if ((move == MOVE_TACKLE && species == SPECIES_ROARING_MOON) || (move == MOVE_ROUND && species == SPECIES_WALKING_WAKE)) EXPECT_MUL_EQ(damage[0], Q_4_12(1.3), damage[1]); else EXPECT_EQ(damage[0], damage[1]); } } -SINGLE_BATTLE_TEST("Protosynthesis either boosts Defense or Special Defense, not both") +SINGLE_BATTLE_TEST("Protosynthesis ability pop up activates only once during the duration of sunny day") { - u16 species; - u32 move; - s16 damage[2]; - - PARAMETRIZE { species = SPECIES_ONIX; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_ONIX; move = MOVE_ROUND; } - - PARAMETRIZE { species = SPECIES_BLASTOISE; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_BLASTOISE; move = MOVE_ROUND; } + u16 turns; GIVEN { - PLAYER(species) { Ability(ABILITY_PROTOSYNTHESIS); } - OPPONENT(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WALKING_WAKE) { Ability(ABILITY_PROTOSYNTHESIS); } + OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); }; } WHEN { - TURN { MOVE(opponent, move); } - TURN { MOVE(player, MOVE_SUNNY_DAY); MOVE(opponent, move); } + for (turns = 0; turns < 5; turns++) + TURN {} + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } } SCENE { - ANIMATION(ANIM_TYPE_MOVE, move, opponent); - HP_BAR(player, captureDamage: &damage[0]); - ANIMATION(ANIM_TYPE_MOVE, MOVE_SUNNY_DAY, player); - ANIMATION(ANIM_TYPE_MOVE, move, opponent); - HP_BAR(player, captureDamage: &damage[1]); - } THEN { - if ((move == MOVE_TACKLE && species == SPECIES_ONIX) || (move == MOVE_ROUND && species == SPECIES_BLASTOISE)) - EXPECT_MUL_EQ(damage[0], Q_4_12(0.7), damage[1]); - else - EXPECT_EQ(damage[0], damage[1]); + ABILITY_POPUP(opponent, ABILITY_DROUGHT); + ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); + MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!"); + MESSAGE("WalkngWake's Sp. Atk was heightened!"); + NONE_OF { + for (turns = 0; turns < 4; turns++) { + ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); + MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!"); + MESSAGE("WalkngWake's Sp. Atk was heightened!"); + } + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUNNY_DAY, opponent); + ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); + MESSAGE("The harsh sunlight activated WalkngWake's Protosynthesis!"); + MESSAGE("WalkngWake's Sp. Atk was heightened!"); + } +} + +SINGLE_BATTLE_TEST("Protosynthesis activates on switch-in") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_ROARING_MOON) { 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 RoarngMoon's Protosynthesis!"); + MESSAGE("RoarngMoon's Attack was heightened!"); } } diff --git a/test/battle/ability/purifying_salt.c b/test/battle/ability/purifying_salt.c index a63da204db..8c2e92bcd5 100644 --- a/test/battle/ability/purifying_salt.c +++ b/test/battle/ability/purifying_salt.c @@ -9,7 +9,7 @@ SINGLE_BATTLE_TEST("Purifying Salt halves damage from Ghost-type moves", s16 dam GIVEN { ASSUME(gBattleMoves[MOVE_SHADOW_BALL].type == TYPE_GHOST); PLAYER(SPECIES_WOBBUFFET); - OPPONENT(SPECIES_WOBBUFFET) { Ability(ability); } + OPPONENT(SPECIES_GARGANACL) { Ability(ability); } } WHEN { TURN { MOVE(player, MOVE_SHADOW_BALL); } } SCENE { @@ -22,13 +22,13 @@ SINGLE_BATTLE_TEST("Purifying Salt halves damage from Ghost-type moves", s16 dam SINGLE_BATTLE_TEST("Purifying Salt makes Rest fail") { GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_PURIFYING_SALT); HP(1); MaxHP(100);} + PLAYER(SPECIES_GARGANACL) { Ability(ABILITY_PURIFYING_SALT); HP(1); MaxHP(100);} OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_REST); } } SCENE { NONE_OF { - MESSAGE("Wobbuffet went to sleep!"); + MESSAGE("Garganacl went to sleep!"); } } } diff --git a/test/battle/ability/quark_drive.c b/test/battle/ability/quark_drive.c index d9c7cf7307..c178195105 100644 --- a/test/battle/ability/quark_drive.c +++ b/test/battle/ability/quark_drive.c @@ -3,22 +3,22 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_ROUND].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_ROUND].category == BATTLE_CATEGORY_SPECIAL); } SINGLE_BATTLE_TEST("Quark Drive boosts the highest stat") { GIVEN { - PLAYER(SPECIES_ABRA) { Ability(ABILITY_QUARK_DRIVE); } + PLAYER(SPECIES_IRON_MOTH) { Ability(ABILITY_QUARK_DRIVE); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, player); ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); - MESSAGE("The Electric Terrain activated Abra's Quark Drive!"); - MESSAGE("Abra's Sp. Atk was heightened!"); + MESSAGE("The Electric Terrain activated Iron Moth's Quark Drive!"); + MESSAGE("Iron Moth's Sp. Atk was heightened!"); } } @@ -28,11 +28,11 @@ SINGLE_BATTLE_TEST("Quark Drive boosts either Attack or Special Attack, not both u32 move; s16 damage[2]; - PARAMETRIZE { species = SPECIES_BELLSPROUT; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_BELLSPROUT; move = MOVE_ROUND; } + PARAMETRIZE { species = SPECIES_IRON_VALIANT; move = MOVE_TACKLE; } + PARAMETRIZE { species = SPECIES_IRON_VALIANT; move = MOVE_ROUND; } - PARAMETRIZE { species = SPECIES_ABRA; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_ABRA; move = MOVE_ROUND; } + PARAMETRIZE { species = SPECIES_IRON_MOTH; move = MOVE_TACKLE; } + PARAMETRIZE { species = SPECIES_IRON_MOTH; move = MOVE_ROUND; } GIVEN { PLAYER(species) { Ability(ABILITY_QUARK_DRIVE); } @@ -47,41 +47,56 @@ SINGLE_BATTLE_TEST("Quark Drive boosts either Attack or Special Attack, not both ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent, captureDamage: &damage[1]); } THEN { - if ((move == MOVE_TACKLE && species == SPECIES_BELLSPROUT) || (move == MOVE_ROUND && species == SPECIES_ABRA)) + if ((move == MOVE_TACKLE && species == SPECIES_IRON_VALIANT) || (move == MOVE_ROUND && species == SPECIES_IRON_MOTH)) EXPECT_MUL_EQ(damage[0], Q_4_12(1.3), damage[1]); else EXPECT_EQ(damage[0], damage[1]); } } -SINGLE_BATTLE_TEST("Quark Drive either boosts Defense or Special Defense, not both") +SINGLE_BATTLE_TEST("Quark Drive ability pop up activates only once during the duration of electric terrain") { - u16 species; - u32 move; - s16 damage[2]; - - PARAMETRIZE { species = SPECIES_ONIX; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_ONIX; move = MOVE_ROUND; } - - PARAMETRIZE { species = SPECIES_BLASTOISE; move = MOVE_TACKLE; } - PARAMETRIZE { species = SPECIES_BLASTOISE; move = MOVE_ROUND; } + u16 turns; GIVEN { - PLAYER(species) { Ability(ABILITY_QUARK_DRIVE); } + PLAYER(SPECIES_IRON_MOTH) { Ability(ABILITY_QUARK_DRIVE); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { - TURN { MOVE(opponent, move); } - TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); MOVE(opponent, move); } + TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); } + for (turns = 0; turns < 4; turns++) + TURN {} + TURN { MOVE(player, MOVE_ELECTRIC_TERRAIN); } } SCENE { - ANIMATION(ANIM_TYPE_MOVE, move, opponent); - HP_BAR(player, captureDamage: &damage[0]); ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, player); - ANIMATION(ANIM_TYPE_MOVE, move, opponent); - HP_BAR(player, captureDamage: &damage[1]); - } THEN { - if ((move == MOVE_TACKLE && species == SPECIES_ONIX) || (move == MOVE_ROUND && species == SPECIES_BLASTOISE)) - EXPECT_MUL_EQ(damage[0], Q_4_12(0.7), damage[1]); - else - EXPECT_EQ(damage[0], damage[1]); + ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); + MESSAGE("The Electric Terrain activated Iron Moth's Quark Drive!"); + MESSAGE("Iron Moth's Sp. Atk was heightened!"); + NONE_OF { + for (turns = 0; turns < 4; turns++) { + ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); + MESSAGE("The Electric Terrain activated Iron Moth's Quark Drive!"); + MESSAGE("Iron Moth's Sp. Atk was heightened!"); + } + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, player); + ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); + MESSAGE("The Electric Terrain activated Iron Moth's Quark Drive!"); + MESSAGE("Iron Moth's Sp. Atk was heightened!"); + } +} + +SINGLE_BATTLE_TEST("Quark Drive activates on switch-in") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_IRON_MOTH) { 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 Iron Moth's Quark Drive!"); + MESSAGE("Iron Moth's Sp. Atk was heightened!"); } } diff --git a/test/battle/ability/quick_draw.c b/test/battle/ability/quick_draw.c index 7dd918e5d3..cdf237475b 100644 --- a/test/battle/ability/quick_draw.c +++ b/test/battle/ability/quick_draw.c @@ -15,3 +15,18 @@ SINGLE_BATTLE_TEST("Quick Draw has a 30% chance of going first") MESSAGE("Foe Wobbuffet used Celebrate!"); } } + +SINGLE_BATTLE_TEST("Quick Draw does not activate 70% of the time") +{ + PASSES_RANDOMLY(7, 10, RNG_QUICK_DRAW); + GIVEN { + PLAYER(SPECIES_SLOWBRO_GALARIAN) { Ability(ABILITY_QUICK_DRAW); Speed(1); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(100); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_TACKLE); } + } SCENE { + NOT ABILITY_POPUP(player, ABILITY_QUICK_DRAW); + MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("Slowbro used Tackle!"); + } +} diff --git a/test/battle/ability/rocky_payload.c b/test/battle/ability/rocky_payload.c index 498b09c9d9..39ca5249e6 100644 --- a/test/battle/ability/rocky_payload.c +++ b/test/battle/ability/rocky_payload.c @@ -17,9 +17,9 @@ SINGLE_BATTLE_TEST("Rocky Payload increases Rock-type move damage", s16 damage) ASSUME(gBattleMoves[MOVE_TACKLE].type != TYPE_ROCK); ASSUME(gBattleMoves[MOVE_ROCK_THROW].type == TYPE_ROCK); ASSUME(gBattleMoves[MOVE_POWER_GEM].type == TYPE_ROCK); - ASSUME(gBattleMoves[MOVE_ROCK_THROW].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_POWER_GEM].split == SPLIT_SPECIAL); - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } + ASSUME(gBattleMoves[MOVE_ROCK_THROW].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_POWER_GEM].category == BATTLE_CATEGORY_SPECIAL); + PLAYER(SPECIES_BOMBIRDIER) { Ability(ability); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, move); } diff --git a/test/battle/ability/schooling.c b/test/battle/ability/schooling.c index 49a70266de..efa38cbb68 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/seed_sower.c b/test/battle/ability/seed_sower.c index 609077cca2..9c56095004 100644 --- a/test/battle/ability/seed_sower.c +++ b/test/battle/ability/seed_sower.c @@ -4,7 +4,7 @@ SINGLE_BATTLE_TEST("Seed Sower sets up Grassy Terrain when hit by an attack") { GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_SEED_SOWER); } + PLAYER(SPECIES_ARBOLIVA) { Ability(ABILITY_SEED_SOWER); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Seed Sower sets up Grassy Terrain when hit by an attack") } } -#define ABILITY_PARAM(n)(abilities[n] = (k == n) ? ABILITY_SEED_SOWER : ABILITY_SHADOW_TAG) +#define ABILITY_PARAM(n)(abilities[n] = (k == n) ? ABILITY_SEED_SOWER : ABILITY_HARVEST) #define MOVE_HIT(target, position) \ { \ HP_BAR(target); \ @@ -52,10 +52,10 @@ DOUBLE_BATTLE_TEST("Multi-target moves hit correct battlers after Seed Sower is GIVEN { ASSUME(gBattleMoves[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); ASSUME(gBattleMoves[MOVE_SURF].target == MOVE_TARGET_FOES_AND_ALLY); - PLAYER(SPECIES_WYNAUT) { Ability(abilities[B_POSITION_PLAYER_LEFT]); } - PLAYER(SPECIES_WOBBUFFET) { Ability(abilities[B_POSITION_PLAYER_RIGHT]); } - OPPONENT(SPECIES_WYNAUT) { Ability(abilities[B_POSITION_OPPONENT_LEFT]); } - OPPONENT(SPECIES_WOBBUFFET) { Ability(abilities[B_POSITION_OPPONENT_RIGHT]); } + PLAYER(SPECIES_ARBOLIVA) { Ability(abilities[B_POSITION_PLAYER_LEFT]); } + PLAYER(SPECIES_ARBOLIVA) { Ability(abilities[B_POSITION_PLAYER_RIGHT]); } + OPPONENT(SPECIES_ARBOLIVA) { Ability(abilities[B_POSITION_OPPONENT_LEFT]); } + OPPONENT(SPECIES_ARBOLIVA) { Ability(abilities[B_POSITION_OPPONENT_RIGHT]); } } WHEN { TURN { MOVE(opponentLeft, (attacker == B_POSITION_OPPONENT_LEFT) ? usedMove : MOVE_CELEBRATE); diff --git a/test/battle/ability/sharpness.c b/test/battle/ability/sharpness.c index 6360c4f8b3..e018cce234 100644 --- a/test/battle/ability/sharpness.c +++ b/test/battle/ability/sharpness.c @@ -1,12 +1,7 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_4_POKEMON == TRUE); // Because no hp, opponentLeft->maxHP); } } + +SINGLE_BATTLE_TEST("Stamina activates for every hit of a multi hit move") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_MUDBRAY) { Ability(ABILITY_STAMINA); } + } WHEN { + TURN { MOVE(player, MOVE_DOUBLE_KICK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_KICK, player); + HP_BAR(opponent); + STAMINA_STAT_RAISE(opponent, "Foe Mudbray's Defense rose!"); + STAMINA_STAT_RAISE(opponent, "Foe Mudbray's Defense rose!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 2); + } +} + +SINGLE_BATTLE_TEST("Stamina is not activated by users own Substitute") +{ + GIVEN { + PLAYER(SPECIES_MUDBRAY) { Ability(ABILITY_STAMINA); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SUBSTITUTE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); + MESSAGE("Mudbray made a SUBSTITUTE!"); + NONE_OF { + ABILITY_POPUP(player, ABILITY_STAMINA); + MESSAGE("Mudbray's Defense rose!"); + } + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE); + } +} diff --git a/test/battle/ability/steelworker.c b/test/battle/ability/steelworker.c index bf7d0ca9c6..af36053664 100644 --- a/test/battle/ability/steelworker.c +++ b/test/battle/ability/steelworker.c @@ -17,8 +17,8 @@ SINGLE_BATTLE_TEST("Steelworker increases Steel-type move damage", s16 damage) ASSUME(gBattleMoves[MOVE_TACKLE].type != TYPE_STEEL); ASSUME(gBattleMoves[MOVE_ANCHOR_SHOT].type == TYPE_STEEL); ASSUME(gBattleMoves[MOVE_FLASH_CANNON].type == TYPE_STEEL); - ASSUME(gBattleMoves[MOVE_ANCHOR_SHOT].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_FLASH_CANNON].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_ANCHOR_SHOT].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_FLASH_CANNON].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_DHELMISE) { Ability(ability); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/ability/sword_of_ruin.c b/test/battle/ability/sword_of_ruin.c index 35ba4f6e0d..0cfc9211f1 100644 --- a/test/battle/ability/sword_of_ruin.c +++ b/test/battle/ability/sword_of_ruin.c @@ -3,51 +3,29 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_ROLE_PLAY].effect == EFFECT_ROLE_PLAY); } -SINGLE_BATTLE_TEST("Sword of Ruin reduces Defense", s16 damage) +SINGLE_BATTLE_TEST("Sword of Ruin reduces Defense if opposing mon's ability doesn't match") { - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_SWORD_OF_RUIN; } + s16 damage[2]; GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } + PLAYER(SPECIES_CHIEN_PAO) { Ability(ABILITY_SWORD_OF_RUIN); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { + TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_ROLE_PLAY); } TURN { MOVE(player, MOVE_TACKLE); } } SCENE { - if (ability == ABILITY_SWORD_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_SWORD_OF_RUIN); - MESSAGE("Wobbuffet's Sword of Ruin weakened the Defense of all surrounding Pokémon!"); - } - HP_BAR(opponent, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.33), results[1].damage); - } -} - -SINGLE_BATTLE_TEST("Sword of Ruin does not reduce Defense if opposing mon has the same ability", s16 damage) -{ - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_SWORD_OF_RUIN; } - - GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } - OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_SWORD_OF_RUIN); } - } WHEN { - TURN { MOVE(player, MOVE_TACKLE); } - } SCENE { - if (ability == ABILITY_SWORD_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_SWORD_OF_RUIN); - MESSAGE("Wobbuffet's Sword of Ruin weakened the Defense of all surrounding Pokémon!"); - } - HP_BAR(opponent, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_EQ(results[0].damage, results[1].damage); + ABILITY_POPUP(player, ABILITY_SWORD_OF_RUIN); + MESSAGE("Chien-Pao's Sword of Ruin weakened the Defense of all surrounding Pokémon!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + HP_BAR(opponent, captureDamage: &damage[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROLE_PLAY, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + HP_BAR(opponent, captureDamage: &damage[1]); + } THEN { + EXPECT_MUL_EQ(damage[1], Q_4_12(1.33), damage[0]); } } diff --git a/test/battle/ability/tablets_of_ruin.c b/test/battle/ability/tablets_of_ruin.c index ca12b68131..72c97cd828 100644 --- a/test/battle/ability/tablets_of_ruin.c +++ b/test/battle/ability/tablets_of_ruin.c @@ -3,51 +3,29 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_ENTRAINMENT].effect == EFFECT_ENTRAINMENT); } -SINGLE_BATTLE_TEST("Tablets of Ruin reduces Attack", s16 damage) +SINGLE_BATTLE_TEST("Tablets of Ruin reduces Attack if opposing mon's ability doesn't match") { - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_TABLETS_OF_RUIN; } + s16 damage[2]; GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } + PLAYER(SPECIES_WO_CHIEN) { Ability(ABILITY_TABLETS_OF_RUIN); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); MOVE(player, MOVE_ENTRAINMENT); } TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { - if (ability == ABILITY_TABLETS_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_TABLETS_OF_RUIN); - MESSAGE("Wobbuffet's Tablets of Ruin weakened the Attack of all surrounding Pokémon!"); - } - HP_BAR(player, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.75), results[1].damage); - } -} - -SINGLE_BATTLE_TEST("Tablets of Ruin does not reduce Attack if an opposing mon has the same ability", s16 damage) -{ - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_TABLETS_OF_RUIN; } - - GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } - OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_TABLETS_OF_RUIN); } - } WHEN { - TURN { MOVE(opponent, MOVE_TACKLE); } - } SCENE { - if (ability == ABILITY_TABLETS_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_TABLETS_OF_RUIN); - MESSAGE("Wobbuffet's Tablets of Ruin weakened the Attack of all surrounding Pokémon!"); - } - HP_BAR(player, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_EQ(results[0].damage, results[1].damage); + ABILITY_POPUP(player, ABILITY_TABLETS_OF_RUIN); + MESSAGE("Wo-Chien's Tablets of Ruin weakened the Attack of all surrounding Pokémon!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &damage[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ENTRAINMENT, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &damage[1]); + } THEN { + EXPECT_MUL_EQ(damage[0], Q_4_12(1.33), damage[1]); } } diff --git a/test/battle/ability/toxic_debris.c b/test/battle/ability/toxic_debris.c index fadde2ceb5..163985e848 100644 --- a/test/battle/ability/toxic_debris.c +++ b/test/battle/ability/toxic_debris.c @@ -9,7 +9,7 @@ SINGLE_BATTLE_TEST("Toxic Debris sets Toxic Spikes on the opposing side if hit b PARAMETRIZE { move = MOVE_SWIFT;} GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TOXIC_DEBRIS); } + PLAYER(SPECIES_GLIMMORA) { Ability(ABILITY_TOXIC_DEBRIS); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, move); } @@ -29,7 +29,7 @@ SINGLE_BATTLE_TEST("Toxic Debris sets Toxic Spikes on the opposing side if hit b SINGLE_BATTLE_TEST("Toxic Debris does not activate if two layers of Toxic Spikes are already up") { GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TOXIC_DEBRIS); } + PLAYER(SPECIES_GLIMMORA) { Ability(ABILITY_TOXIC_DEBRIS); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } @@ -53,7 +53,7 @@ SINGLE_BATTLE_TEST("Toxic Debris does not activate if two layers of Toxic Spikes SINGLE_BATTLE_TEST("If a Substitute is hit, Toxic Debris does not set Toxic Spikes") { GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TOXIC_DEBRIS); } + PLAYER(SPECIES_GLIMMORA) { Ability(ABILITY_TOXIC_DEBRIS); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_SUBSTITUTE); } @@ -71,7 +71,7 @@ SINGLE_BATTLE_TEST("If a Substitute is hit, Toxic Debris does not set Toxic Spik SINGLE_BATTLE_TEST("Each hit of a Multi Hit move activates Toxic Debris") { GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TOXIC_DEBRIS); } + PLAYER(SPECIES_GLIMMORA) { Ability(ABILITY_TOXIC_DEBRIS); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_FURY_SWIPES); } @@ -88,13 +88,13 @@ SINGLE_BATTLE_TEST("Each hit of a Multi Hit move activates Toxic Debris") SINGLE_BATTLE_TEST("Toxic Debris activates if user faints after physical hit") { GIVEN { - PLAYER(SPECIES_WOBBUFFET) { HP(1); Ability(ABILITY_TOXIC_DEBRIS); } + PLAYER(SPECIES_GLIMMORA) { HP(1); Ability(ABILITY_TOXIC_DEBRIS); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); - MESSAGE("Wobbuffet fainted!"); + MESSAGE("Glimmora fainted!"); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); } @@ -103,7 +103,7 @@ SINGLE_BATTLE_TEST("Toxic Debris activates if user faints after physical hit") SINGLE_BATTLE_TEST("Air Balloon is popped after Toxic Debris activates") { GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TOXIC_DEBRIS); Item(ITEM_AIR_BALLOON); } + PLAYER(SPECIES_GLIMMORA) { Ability(ABILITY_TOXIC_DEBRIS); Item(ITEM_AIR_BALLOON); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } @@ -111,6 +111,6 @@ SINGLE_BATTLE_TEST("Air Balloon is popped after Toxic Debris activates") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); - MESSAGE("Wobbuffet's Air Balloon popped!"); + MESSAGE("Glimmora's Air Balloon popped!"); } } diff --git a/test/battle/ability/trace.c b/test/battle/ability/trace.c new file mode 100644 index 0000000000..bb72f38860 --- /dev/null +++ b/test/battle/ability/trace.c @@ -0,0 +1,81 @@ +#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 { + 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/transistor.c b/test/battle/ability/transistor.c index ab2509309a..9f204bfe1e 100644 --- a/test/battle/ability/transistor.c +++ b/test/battle/ability/transistor.c @@ -17,8 +17,8 @@ SINGLE_BATTLE_TEST("Transistor increases Electric-type move damage", s16 damage) ASSUME(gBattleMoves[MOVE_TACKLE].type != TYPE_ELECTRIC); ASSUME(gBattleMoves[MOVE_WILD_CHARGE].type == TYPE_ELECTRIC); ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].type == TYPE_ELECTRIC); - ASSUME(gBattleMoves[MOVE_WILD_CHARGE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_WILD_CHARGE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_THUNDER_SHOCK].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_REGIELEKI) { Ability(ability); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/ability/vessel_of_ruin.c b/test/battle/ability/vessel_of_ruin.c index 4f8408795a..446ba505bc 100644 --- a/test/battle/ability/vessel_of_ruin.c +++ b/test/battle/ability/vessel_of_ruin.c @@ -3,51 +3,29 @@ ASSUMPTIONS { - ASSUME(gBattleMoves[MOVE_WATER_GUN].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_WATER_GUN].category == BATTLE_CATEGORY_SPECIAL); + ASSUME(gBattleMoves[MOVE_ENTRAINMENT].effect == EFFECT_ENTRAINMENT); } -SINGLE_BATTLE_TEST("Vessel of Ruin reduces Sp. Atk", s16 damage) +SINGLE_BATTLE_TEST("Vessel of Ruin reduces Sp. Atk if opposing mon's ability doesn't match") { - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_VESSEL_OF_RUIN; } + s16 damage[2]; GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } + PLAYER(SPECIES_TING_LU) { Ability(ABILITY_VESSEL_OF_RUIN); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { + TURN { MOVE(opponent, MOVE_WATER_GUN); MOVE(player, MOVE_ENTRAINMENT); } TURN { MOVE(opponent, MOVE_WATER_GUN); } } SCENE { - if (ability == ABILITY_VESSEL_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_VESSEL_OF_RUIN); - MESSAGE("Wobbuffet's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); - } - HP_BAR(player, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.75), results[1].damage); - } -} - -SINGLE_BATTLE_TEST("Vessel of Ruin does not reduce Sp. Atk if opposing mon has the same ability", s16 damage) -{ - u32 ability; - - PARAMETRIZE { ability = ABILITY_SHADOW_TAG; } - PARAMETRIZE { ability = ABILITY_VESSEL_OF_RUIN; } - - GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ability); } - OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_VESSEL_OF_RUIN); } - } WHEN { - TURN { MOVE(opponent, MOVE_WATER_GUN); } - } SCENE { - if (ability == ABILITY_VESSEL_OF_RUIN) { - ABILITY_POPUP(player, ABILITY_VESSEL_OF_RUIN); - MESSAGE("Wobbuffet's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); - } - HP_BAR(player, captureDamage: &results[i].damage); - } FINALLY { - EXPECT_EQ(results[0].damage, results[1].damage); + ABILITY_POPUP(player, ABILITY_VESSEL_OF_RUIN); + MESSAGE("Ting-Lu's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); + HP_BAR(player, captureDamage: &damage[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ENTRAINMENT, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); + HP_BAR(player, captureDamage: &damage[1]); + } THEN { + EXPECT_MUL_EQ(damage[0], Q_4_12(1.33), damage[1]); } } diff --git a/test/battle/ability/volt_absorb.c b/test/battle/ability/volt_absorb.c index 2f69a287ba..265346f2d7 100644 --- a/test/battle/ability/volt_absorb.c +++ b/test/battle/ability/volt_absorb.c @@ -33,7 +33,7 @@ SINGLE_BATTLE_TEST("Volt Absorb activates on status moves") { GIVEN { ASSUME(gBattleMoves[MOVE_THUNDER_WAVE].type == TYPE_ELECTRIC); - ASSUME(gBattleMoves[MOVE_THUNDER_WAVE].split == SPLIT_STATUS); + ASSUME(gBattleMoves[MOVE_THUNDER_WAVE].category == BATTLE_CATEGORY_STATUS); PLAYER(SPECIES_JOLTEON) { Ability(ABILITY_VOLT_ABSORB); HP(1); MaxHP(100); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/ability/water_absorb.c b/test/battle/ability/water_absorb.c index cda3196034..2a811657e3 100644 --- a/test/battle/ability/water_absorb.c +++ b/test/battle/ability/water_absorb.c @@ -33,7 +33,7 @@ SINGLE_BATTLE_TEST("Water Absorb activates on status moves") { GIVEN { ASSUME(gBattleMoves[MOVE_SOAK].type == TYPE_WATER); - ASSUME(gBattleMoves[MOVE_SOAK].split == SPLIT_STATUS); + ASSUME(gBattleMoves[MOVE_SOAK].category == BATTLE_CATEGORY_STATUS); PLAYER(SPECIES_POLIWAG) { Ability(ABILITY_WATER_ABSORB); HP(1); MaxHP(100); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/ability/weak_armor.c b/test/battle/ability/weak_armor.c index 84cad5c222..207448049f 100644 --- a/test/battle/ability/weak_armor.c +++ b/test/battle/ability/weak_armor.c @@ -5,8 +5,8 @@ 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(gBattleMoves[MOVE_GUST].category == BATTLE_CATEGORY_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); ASSUME(B_WEAK_ARMOR_SPEED >= GEN_7); } diff --git a/test/battle/ability/wind_power.c b/test/battle/ability/wind_power.c index b68bff3b50..ab332f1c68 100644 --- a/test/battle/ability/wind_power.c +++ b/test/battle/ability/wind_power.c @@ -24,7 +24,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for player when hit by a wind move PARAMETRIZE {move = MOVE_AIR_CUTTER; } GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_WIND_POWER); Speed(10); } + PLAYER(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(10); } OPPONENT(SPECIES_WOBBUFFET) {Ability(ABILITY_LIMBER); Speed(5) ;} // Limber, so it doesn't get paralyzed. } WHEN { TURN { MOVE(player, MOVE_THUNDERBOLT), MOVE(opponent, move); } @@ -37,7 +37,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for player when hit by a wind move HP_BAR(player); if (move == MOVE_AIR_CUTTER) { ABILITY_POPUP(player, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Wobbuffet with power!"); + MESSAGE("Being hit by Air Cutter charged Wattrel with power!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, player); @@ -47,7 +47,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for player when hit by a wind move HP_BAR(player); if (move == MOVE_AIR_CUTTER) { ABILITY_POPUP(player, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Wobbuffet with power!"); + MESSAGE("Being hit by Air Cutter charged Wattrel with power!"); } } THEN { @@ -70,7 +70,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for opponent when hit by a wind mo GIVEN { PLAYER(SPECIES_WOBBUFFET) {Ability(ABILITY_LIMBER); Speed(5) ;} // Limber, so it doesn't get paralyzed. - OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_WIND_POWER); Speed(10); } + OPPONENT(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(10); } } WHEN { TURN { MOVE(opponent, MOVE_THUNDERBOLT), MOVE(player, move); } TURN { MOVE(opponent, MOVE_THUNDERBOLT), MOVE(player, move); } @@ -82,7 +82,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for opponent when hit by a wind mo HP_BAR(opponent); if (move == MOVE_AIR_CUTTER) { ABILITY_POPUP(opponent, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Foe Wobbuffet with power!"); + MESSAGE("Being hit by Air Cutter charged Foe Wattrel with power!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, opponent); @@ -92,7 +92,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for opponent when hit by a wind mo HP_BAR(opponent); if (move == MOVE_AIR_CUTTER) { ABILITY_POPUP(opponent, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Foe Wobbuffet with power!"); + MESSAGE("Being hit by Air Cutter charged Foe Wattrel with power!"); } } THEN { @@ -114,8 +114,8 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab PARAMETRIZE {abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_WIND_POWER; } GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(abilityLeft); Speed(10); } - PLAYER(SPECIES_WOBBUFFET) { Ability(abilityRight); Speed(5); } + PLAYER(SPECIES_WATTREL) { Ability(abilityLeft); Speed(10); } + PLAYER(SPECIES_WATTREL) { Ability(abilityRight); Speed(5); } OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_LIMBER); Speed(20); } OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_LIMBER); Speed(15); } } WHEN { @@ -126,12 +126,12 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab HP_BAR(playerLeft); if (abilityLeft == ABILITY_WIND_POWER) { ABILITY_POPUP(playerLeft, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Wobbuffet with power!"); + MESSAGE("Being hit by Air Cutter charged Wattrel with power!"); } HP_BAR(playerRight); if (abilityRight == ABILITY_WIND_POWER) { ABILITY_POPUP(playerRight, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Wobbuffet with power!"); + MESSAGE("Being hit by Air Cutter charged Wattrel with power!"); } NONE_OF { HP_BAR(opponentLeft); @@ -155,8 +155,8 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab PARAMETRIZE {abilityLeft = ABILITY_WIND_POWER, abilityRight = ABILITY_WIND_POWER; } GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(abilityLeft); Speed(10); } - PLAYER(SPECIES_WOBBUFFET) { Ability(abilityRight); Speed(5); } + PLAYER(SPECIES_WATTREL) { Ability(abilityLeft); Speed(10); } + PLAYER(SPECIES_WATTREL) { Ability(abilityRight); Speed(5); } OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_LIMBER); Speed(20); } OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_LIMBER); Speed(15); } } WHEN { @@ -167,12 +167,12 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab HP_BAR(playerLeft); if (abilityLeft == ABILITY_WIND_POWER) { ABILITY_POPUP(playerLeft, ABILITY_WIND_POWER); - MESSAGE("Being hit by PetalBlizzrd charged Wobbuffet with power!"); + MESSAGE("Being hit by PetalBlizzrd charged Wattrel with power!"); } HP_BAR(playerRight); if (abilityRight == ABILITY_WIND_POWER) { ABILITY_POPUP(playerRight, ABILITY_WIND_POWER); - MESSAGE("Being hit by PetalBlizzrd charged Wobbuffet with power!"); + MESSAGE("Being hit by PetalBlizzrd charged Wattrel with power!"); } HP_BAR(opponentRight); NOT HP_BAR(opponentLeft); @@ -194,10 +194,10 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly when Tailwind is used") GIVEN { ASSUME(gBattleMoves[MOVE_TAILWIND].effect == EFFECT_TAILWIND); - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_WIND_POWER); Speed(10); } - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_WIND_POWER); Speed(5); } - OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_WIND_POWER); Speed(20); } - OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_WIND_POWER); Speed(15); } + PLAYER(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(10); } + PLAYER(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(5); } + OPPONENT(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(20); } + OPPONENT(SPECIES_WATTREL) { Ability(ABILITY_WIND_POWER); Speed(15); } } WHEN { TURN { MOVE((opponentSide == TRUE) ? opponentLeft : playerLeft, MOVE_TAILWIND);} } SCENE { @@ -205,19 +205,19 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly when Tailwind is used") ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, opponentLeft); ABILITY_POPUP(opponentLeft, ABILITY_WIND_POWER); - MESSAGE("Being hit by Tailwind charged Foe Wobbuffet with power!"); + MESSAGE("Being hit by Tailwind charged Foe Wattrel with power!"); ABILITY_POPUP(opponentRight, ABILITY_WIND_POWER); - MESSAGE("Being hit by Tailwind charged Foe Wobbuffet with power!"); + MESSAGE("Being hit by Tailwind charged Foe Wattrel with power!"); } else { ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, playerLeft); ABILITY_POPUP(playerLeft, ABILITY_WIND_POWER); - MESSAGE("Being hit by Tailwind charged Wobbuffet with power!"); + MESSAGE("Being hit by Tailwind charged Wattrel with power!"); ABILITY_POPUP(playerRight, ABILITY_WIND_POWER); - MESSAGE("Being hit by Tailwind charged Wobbuffet with power!"); + MESSAGE("Being hit by Tailwind charged Wattrel with power!"); } } } diff --git a/test/battle/ability/zen_mode.c b/test/battle/ability/zen_mode.c index 3d1e25ffa7..2734f7a9ec 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 index 4b9184ceca..72309f6fb9 100644 --- a/test/battle/ability/zero_to_hero.c +++ b/test/battle/ability/zero_to_hero.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_9_POKEMON == TRUE); -} - SINGLE_BATTLE_TEST("Zero to Hero transforms Palafin when it switches out") { GIVEN { @@ -123,6 +118,46 @@ SINGLE_BATTLE_TEST("Role Play, Skill Swap, and Entrainment fail if either Pokém } } +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") { diff --git a/test/battle/ai.c b/test/battle/ai.c index ce3efb725b..ce52ba53dd 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); } @@ -247,7 +246,7 @@ 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) { HP(277); }; PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_KANGASKHAN) { Moves(MOVE_STRENGTH, MOVE_HORN_ATTACK, MOVE_SWORDS_DANCE); } } WHEN { @@ -345,34 +344,6 @@ AI_SINGLE_BATTLE_TEST("AI won't use ground type attacks against flying type Poke } } -AI_SINGLE_BATTLE_TEST("AI will not switch in a Pokemon which is slower and gets 1HKOed after fainting") -{ - bool32 alakazamFaster; - u32 speedAlakazm; - - KNOWN_FAILING; - - PARAMETRIZE{ speedAlakazm = 200; alakazamFaster = FALSE; } - PARAMETRIZE{ speedAlakazm = 400; alakazamFaster = TRUE; } - - GIVEN { - AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); - 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, alakazamFaster ? 1 : 2); } - } SCENE { - MESSAGE("Foe Kadabra fainted!"); - if (alakazamFaster) { - MESSAGE("{PKMN} TRAINER LEAF sent out Alakazam!"); - } else { - MESSAGE("{PKMN} TRAINER LEAF sent out Blastoise!"); - } - } -} - AI_DOUBLE_BATTLE_TEST("AI won't use a Weather changing move if partner already chose such move") { u32 j, k; @@ -434,7 +405,7 @@ AI_DOUBLE_BATTLE_TEST("AI will not use a status move if partner already chose He for (j = MOVE_NONE + 1; j < MOVES_COUNT; j++) { - if (gBattleMoves[j].split == SPLIT_STATUS) { + if (gBattleMoves[j].category == BATTLE_CATEGORY_STATUS) { PARAMETRIZE{ statusMove = j; } } } @@ -540,6 +511,32 @@ AI_SINGLE_BATTLE_TEST("AI switches if Perish Song is about to kill") } } +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 alakazamFaster; + u32 speedAlakazm; + + PARAMETRIZE{ speedAlakazm = 200; alakazamFaster = FALSE; } + PARAMETRIZE{ speedAlakazm = 400; alakazamFaster = TRUE; } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_MON_CHOICES); + 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, alakazamFaster ? 1 : 2); } + } SCENE { + MESSAGE("Foe Kadabra fainted!"); + if (alakazamFaster) { + MESSAGE("{PKMN} TRAINER LEAF sent out Alakazam!"); + } else { + MESSAGE("{PKMN} TRAINER LEAF sent out Blastoise!"); + } + } +} + AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: AI considers hazard damage when choosing which Pokemon to switch in") { u32 aiIsSmart = 0; @@ -609,3 +606,42 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: Post-KO switches prioritize of 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 index 144f0a91d0..64d68d5727 100644 --- a/test/battle/ai_check_viability.c +++ b/test/battle/ai_check_viability.c @@ -166,3 +166,27 @@ AI_SINGLE_BATTLE_TEST("AI can choose Counter or Mirror Coat if the predicted mov 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/crit_chance.c b/test/battle/crit_chance.c index 678153a6c6..7763058e4b 100644 --- a/test/battle/crit_chance.c +++ b/test/battle/crit_chance.c @@ -148,11 +148,11 @@ SINGLE_BATTLE_TEST("Focus Energy increases the user's critical hit ratio by two } } -SINGLE_BATTLE_TEST("Flag highCritRatio increases the critical hit ratio by one stage") +SINGLE_BATTLE_TEST("High crit rate increases the critical hit ratio by one stage") { PASSES_RANDOMLY(1, 8, RNG_CRITICAL_HIT); GIVEN { - ASSUME(gBattleMoves[MOVE_SLASH].highCritRatio == TRUE); + ASSUME(gBattleMoves[MOVE_SLASH].criticalHitStage == 1); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -192,10 +192,10 @@ SINGLE_BATTLE_TEST("Scope Lens increases the critical hit ratio by one stage") } } -SINGLE_BATTLE_TEST("Flag highCritRatio, Super Luck and Scope Lens cause the move to result in a critical hit") +SINGLE_BATTLE_TEST("High crit rate, Super Luck and Scope Lens cause the move to result in a critical hit") { GIVEN { - ASSUME(gBattleMoves[MOVE_SLASH].highCritRatio == TRUE); + ASSUME(gBattleMoves[MOVE_SLASH].criticalHitStage == 1); ASSUME(gItems[ITEM_SCOPE_LENS].holdEffect == HOLD_EFFECT_SCOPE_LENS); PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_SUPER_LUCK); Item(ITEM_SCOPE_LENS); }; OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/damage_formula.c b/test/battle/damage_formula.c index a4b0a03f58..3aeeeb9f83 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,11 +68,11 @@ 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{ + THEN { EXPECT_EQ(expectedDamage, dmg); } } diff --git a/test/battle/form_change/battle_switch.c b/test/battle/form_change/battle_switch.c index dd6c68466e..ba564a02a1 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 b61ff069d4..f240b5ca07 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 82f361917e..849d8e5883 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/status.c b/test/battle/form_change/status.c new file mode 100644 index 0000000000..a8f286846a --- /dev/null +++ b/test/battle/form_change/status.c @@ -0,0 +1,15 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Shaymin-Sky reverts to Shaymin-Land when frozen or frostbitten") +{ + ASSUME(gBattleMoves[MOVE_POWDER_SNOW].effect == ((B_USE_FROSTBITE == TRUE) ? EFFECT_FROSTBITE_HIT : EFFECT_FREEZE_HIT)); + GIVEN { + PLAYER(SPECIES_SHAYMIN_SKY); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_POWDER_SNOW); } + } THEN { + EXPECT_EQ(player->species, SPECIES_SHAYMIN_LAND); + } +} diff --git a/test/battle/form_change/ultra_burst.c b/test/battle/form_change/ultra_burst.c index 0b4b07d891..e0566c9414 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 1ed8a89e4a..46fec5c029 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 0602d651d7..c07c7c7c17 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 8419eff3c3..b8b396b695 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/critical_hit_up.c b/test/battle/hold_effect/critical_hit_up.c index c0cc2e864f..b714bdb30d 100644 --- a/test/battle/hold_effect/critical_hit_up.c +++ b/test/battle/hold_effect/critical_hit_up.c @@ -51,7 +51,7 @@ SINGLE_BATTLE_TEST("Lansat Berry raises the holder's critical-hit-ratio by two s { PASSES_RANDOMLY(1, 2, RNG_CRITICAL_HIT); GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].highCritRatio == FALSE); + ASSUME(gBattleMoves[MOVE_TACKLE].criticalHitStage == 0); ASSUME(B_CRIT_CHANCE >= GEN_6); PLAYER(SPECIES_WOBBUFFET) { MaxHP(160); HP(80); Item(ITEM_LANSAT_BERRY); } OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/hold_effect/custap_berry.c b/test/battle/hold_effect/custap_berry.c index 8b6c7832d4..039e55fb81 100644 --- a/test/battle/hold_effect/custap_berry.c +++ b/test/battle/hold_effect/custap_berry.c @@ -35,3 +35,17 @@ SINGLE_BATTLE_TEST("Custap Berry allows the holder to move first in its priority ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } } + +SINGLE_BATTLE_TEST("Custap Berry activates even if the opposing mon switches out") +{ + GIVEN { + PLAYER(SPECIES_REGIROCK) { HP(1); Item(ITEM_CUSTAP_BERRY); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { SWITCH(opponent, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Regirock can act faster, thanks to Custap Berry!"); + } +} diff --git a/test/battle/hold_effect/defense_up.c b/test/battle/hold_effect/defense_up.c index 774cd3b981..485472512a 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 45dfc539b8..a94978b3ee 100644 --- a/test/battle/hold_effect/eject_button.c +++ b/test/battle/hold_effect/eject_button.c @@ -187,3 +187,24 @@ SINGLE_BATTLE_TEST("Eject Button is activated before Emergency Exit") MESSAGE("Foe Golisopod is switched out with the Eject Button!"); } } + +SINGLE_BATTLE_TEST("Eject Button is not triggered after High Jump Kick crash damage") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_EJECT_BUTTON); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { + MOVE(player, MOVE_PROTECT); + MOVE(opponent, MOVE_HIGH_JUMP_KICK); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, player); + MESSAGE("Foe Wobbuffet kept going and crashed!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); + MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + } + } +} diff --git a/test/battle/hold_effect/jaboca_berry.c b/test/battle/hold_effect/jaboca_berry.c index d009ae03a6..19c9f7ce73 100644 --- a/test/battle/hold_effect/jaboca_berry.c +++ b/test/battle/hold_effect/jaboca_berry.c @@ -4,7 +4,7 @@ ASSUMPTIONS { ASSUME(gItems[ITEM_JABOCA_BERRY].holdEffect == HOLD_EFFECT_JABOCA_BERRY); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); } SINGLE_BATTLE_TEST("Jaboca Berry causes the attacker to lose 1/8 of its max HP if a physical move was used") @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Jaboca Berry causes the attacker to lose 1/8 of its max HP i PARAMETRIZE { move = MOVE_TACKLE; } GIVEN { - ASSUME(gBattleMoves[MOVE_SWIFT].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_SWIFT].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_JABOCA_BERRY); } } WHEN { @@ -44,7 +44,7 @@ SINGLE_BATTLE_TEST("Jaboca Berry tirggers before Bug Bite can steal it") { KNOWN_FAILING; GIVEN { - ASSUME(gBattleMoves[MOVE_BUG_BITE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_BUG_BITE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WYNAUT); OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_JABOCA_BERRY); } } WHEN { diff --git a/test/battle/hold_effect/kee_berry.c b/test/battle/hold_effect/kee_berry.c index 6e5319416f..820cb60467 100644 --- a/test/battle/hold_effect/kee_berry.c +++ b/test/battle/hold_effect/kee_berry.c @@ -4,7 +4,7 @@ ASSUMPTIONS { ASSUME(gItems[ITEM_KEE_BERRY].holdEffect == HOLD_EFFECT_KEE_BERRY); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); } SINGLE_BATTLE_TEST("Kee Berry raises the holder's Defense by one stage when hit by a physical move") @@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Kee Berry raises the holder's Defense by one stage when hit PARAMETRIZE { move = MOVE_TACKLE; } GIVEN { - ASSUME(gBattleMoves[MOVE_SWIFT].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_SWIFT].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_KEE_BERRY); } } WHEN { @@ -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 { @@ -59,7 +58,7 @@ SINGLE_BATTLE_TEST("Kee Berry raises the holder's Defense by two stages with Rip SINGLE_BATTLE_TEST("Kee Berry is not triggered by a special move") { GIVEN { - ASSUME(gBattleMoves[MOVE_SWIFT].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_SWIFT].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_KEE_BERRY); } } WHEN { diff --git a/test/battle/hold_effect/maranga_berry.c b/test/battle/hold_effect/maranga_berry.c index 0a3edffbf5..779d602d6a 100644 --- a/test/battle/hold_effect/maranga_berry.c +++ b/test/battle/hold_effect/maranga_berry.c @@ -12,8 +12,8 @@ SINGLE_BATTLE_TEST("Maranga Berry raises the holder's Sp. Def by one stage when PARAMETRIZE { move = MOVE_TACKLE; } PARAMETRIZE { move = MOVE_SWIFT; } GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_SWIFT].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_SWIFT].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_MARANGA_BERRY); } } WHEN { @@ -40,8 +40,7 @@ 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); + ASSUME(gBattleMoves[MOVE_SWIFT].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_APPLIN) { Item(ITEM_MARANGA_BERRY); Ability(ABILITY_RIPEN); } } WHEN { diff --git a/test/battle/hold_effect/metronome.c b/test/battle/hold_effect/metronome.c index 63a0bb3eae..5b089703e9 100644 --- a/test/battle/hold_effect/metronome.c +++ b/test/battle/hold_effect/metronome.c @@ -67,7 +67,6 @@ SINGLE_BATTLE_TEST("Metronome Item's boost is reset if the attacker uses a diffe SINGLE_BATTLE_TEST("Metronome Item's boost is reset if the move fails") { s16 damage[2]; - KNOWN_FAILING; //https://github.com/rh-hideout/pokeemerald-expansion/issues/3251 GIVEN { PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_METRONOME); } OPPONENT(SPECIES_WOBBUFFET); @@ -110,7 +109,6 @@ SINGLE_BATTLE_TEST("Metronome Item counts charging turn of moves for its attacki { u32 item; - KNOWN_FAILING; // https://github.com/rh-hideout/pokeemerald-expansion/issues/3250 PARAMETRIZE {item = ITEM_NONE; } PARAMETRIZE {item = ITEM_METRONOME; } GIVEN { diff --git a/test/battle/hold_effect/quick_claw.c b/test/battle/hold_effect/quick_claw.c new file mode 100644 index 0000000000..ded242b65c --- /dev/null +++ b/test/battle/hold_effect/quick_claw.c @@ -0,0 +1,21 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gItems[ITEM_QUICK_CLAW].holdEffect == HOLD_EFFECT_QUICK_CLAW); +} + +SINGLE_BATTLE_TEST("Quick Claw activates 10% of the time") +{ + PASSES_RANDOMLY(2, 10, RNG_QUICK_CLAW); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(1); Item(ITEM_QUICK_CLAW); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(100); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + MESSAGE("Wobbuffet used Tackle!"); + MESSAGE("Foe Wobbuffet used Celebrate!"); + } +} diff --git a/test/battle/hold_effect/red_card.c b/test/battle/hold_effect/red_card.c index 50354a5c1d..0f80dd176c 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/rowap_berry.c b/test/battle/hold_effect/rowap_berry.c index d019a0f77b..5e4d603f5d 100644 --- a/test/battle/hold_effect/rowap_berry.c +++ b/test/battle/hold_effect/rowap_berry.c @@ -15,8 +15,8 @@ SINGLE_BATTLE_TEST("Rowap Berry causes the attacker to lose 1/8 of its max HP if PARAMETRIZE { move = MOVE_TACKLE; } GIVEN { - ASSUME(gBattleMoves[MOVE_SWIFT].split == SPLIT_SPECIAL); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_SWIFT].category == BATTLE_CATEGORY_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_ROWAP_BERRY); } } WHEN { @@ -43,7 +43,7 @@ SINGLE_BATTLE_TEST("Rowap Berry causes the attacker to lose 1/8 of its max HP if SINGLE_BATTLE_TEST("Rowap Berry is not triggered by a physical move") { GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_ROWAP_BERRY); } } WHEN { diff --git a/test/battle/hold_effect/special_attack_up.c b/test/battle/hold_effect/special_attack_up.c index 9815ab1212..6ff5b4f07d 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 2ba3c02a57..db08c1404e 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 558d4262e8..1e5d4d7e40 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 index a34bb6a347..8ac60d59e8 100644 --- a/test/battle/hold_effect/white_herb.c +++ b/test/battle/hold_effect/white_herb.c @@ -68,3 +68,178 @@ DOUBLE_BATTLE_TEST("White Herb restores stats after Attack was lowered by Intimi 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 { + 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/item_effect/cure_status.c b/test/battle/item_effect/cure_status.c index c8b16dfdb1..02ba76bcc7 100644 --- a/test/battle/item_effect/cure_status.c +++ b/test/battle/item_effect/cure_status.c @@ -76,7 +76,7 @@ SINGLE_BATTLE_TEST("Burn Heal heals a battler from being burned") } } -SINGLE_BATTLE_TEST("Ice Heal heals a battler from being paralyzed") +SINGLE_BATTLE_TEST("Ice Heal heals a battler from being frozen") { GIVEN { ASSUME(gItems[ITEM_ICE_HEAL].battleUsage == EFFECT_ITEM_CURE_STATUS); diff --git a/test/battle/move.c b/test/battle/move.c index bd3ed7dc11..f30f08b826 100644 --- a/test/battle/move.c +++ b/test/battle/move.c @@ -99,7 +99,7 @@ SINGLE_BATTLE_TEST("Critical hits occur at a 1/24 rate") SINGLE_BATTLE_TEST("Slash's critical hits occur at a 1/8 rate") { ASSUME(B_CRIT_CHANCE >= GEN_7); - ASSUME(gBattleMoves[MOVE_SLASH].highCritRatio); + ASSUME(gBattleMoves[MOVE_SLASH].criticalHitStage == 1); PASSES_RANDOMLY(1, 8, RNG_CRITICAL_HIT); GIVEN { PLAYER(SPECIES_WOBBUFFET); @@ -136,7 +136,7 @@ SINGLE_BATTLE_TEST("Critical hits do not ignore positive stat stages", s16 damag PARAMETRIZE { move = MOVE_HOWL; } PARAMETRIZE { move = MOVE_TAIL_WHIP; } GIVEN { - ASSUME(gBattleMoves[MOVE_SCRATCH].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_SCRATCH].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -157,7 +157,7 @@ SINGLE_BATTLE_TEST("Critical hits ignore negative stat stages", s16 damage) PARAMETRIZE { move = MOVE_HARDEN; } PARAMETRIZE { move = MOVE_GROWL; } GIVEN { - ASSUME(gBattleMoves[MOVE_SCRATCH].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_SCRATCH].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/ally_switch.c b/test/battle/move_effect/ally_switch.c new file mode 100644 index 0000000000..3271fd0cbe --- /dev/null +++ b/test/battle/move_effect/ally_switch.c @@ -0,0 +1,209 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_ALLY_SWITCH].effect == EFFECT_ALLY_SWITCH); +} + +SINGLE_BATTLE_TEST("Ally Switch fails in a single battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_ALLY_SWITCH); } + } SCENE { + MESSAGE("Wobbuffet used Ally Switch!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, player); + MESSAGE("But it failed!"); + } +} + +DOUBLE_BATTLE_TEST("Ally Switch fails if there is no partner") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_TACKLE, target:playerRight); } + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); } + } SCENE { + MESSAGE("Wobbuffet fainted!"); + MESSAGE("Wobbuffet used Ally Switch!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); + MESSAGE("But it failed!"); + } +} + +DOUBLE_BATTLE_TEST("Ally Switch changes the position of battlers") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SCREECH].effect == EFFECT_DEFENSE_DOWN_2); + ASSUME(gBattleMoves[MOVE_SCREECH].target == MOVE_TARGET_SELECTED); + PLAYER(SPECIES_WOBBUFFET) { Speed(5); } // Wobb is playerLeft, but it'll be Wynaut after Ally Switch + PLAYER(SPECIES_WYNAUT) { Speed(4); } + OPPONENT(SPECIES_KADABRA) { Speed(3); } + OPPONENT(SPECIES_ABRA) { Speed(2); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); MOVE(opponentLeft, MOVE_SCREECH, target:playerLeft); MOVE(opponentRight, MOVE_SCREECH, target:playerLeft); } + } SCENE { + MESSAGE("Wobbuffet used Ally Switch!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); + MESSAGE("Wobbuffet and Wynaut switched places!"); + + MESSAGE("Foe Kadabra used Screech!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Wynaut's Defense harshly fell!"); + + MESSAGE("Foe Abra used Screech!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Wynaut's Defense harshly fell!"); + } THEN { + EXPECT_EQ(playerLeft->speed, 4); + EXPECT_EQ(playerLeft->species, SPECIES_WYNAUT); + EXPECT_EQ(playerRight->speed, 5); + EXPECT_EQ(playerRight->species, SPECIES_WOBBUFFET); + } +} + +DOUBLE_BATTLE_TEST("Ally Switch does not redirect the target of Snipe Shot") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SNIPE_SHOT].effect == EFFECT_SNIPE_SHOT); + PLAYER(SPECIES_WOBBUFFET); // Wobb is playerLeft, but it'll be Wynaut after Ally Switch + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_KADABRA); + OPPONENT(SPECIES_ABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); MOVE(opponentLeft, MOVE_SNIPE_SHOT, target:playerLeft); } // Kadabra targets Wobb and Snipe Shot ignores Ally Switch position change. + } SCENE { + MESSAGE("Wobbuffet used Ally Switch!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); + MESSAGE("Wobbuffet and Wynaut switched places!"); + + MESSAGE("Foe Kadabra used Snipe Shot!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SNIPE_SHOT, opponentLeft); + HP_BAR(playerRight); + } +} + +DOUBLE_BATTLE_TEST("Ally Switch does not redirect moves done by pokemon with Stalwart and Propeller Tail") +{ + u16 ability; + PARAMETRIZE { ability = ABILITY_STALWART; } + PARAMETRIZE { ability = ABILITY_PROPELLER_TAIL; } + PARAMETRIZE { ability = ABILITY_TELEPATHY; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); // Wobb is playerLeft, but it'll be Wynaut after Ally Switch + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_KADABRA) { Ability(ability); } + OPPONENT(SPECIES_ABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); MOVE(opponentLeft, MOVE_TACKLE, target:playerRight); } // Kadabra targets playerRight Wynaut. + } SCENE { + MESSAGE("Wobbuffet used Ally Switch!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); + MESSAGE("Wobbuffet and Wynaut switched places!"); + + MESSAGE("Foe Kadabra used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + HP_BAR((ability == ABILITY_STALWART || ability == ABILITY_PROPELLER_TAIL) ? playerLeft : playerRight); + } +} + +DOUBLE_BATTLE_TEST("Ally Switch has no effect on parnter's chosen move") +{ + u16 chosenMove; + struct BattlePokemon *chosenTarget = NULL; + + PARAMETRIZE { chosenMove = MOVE_TACKLE; chosenTarget = opponentLeft; } + PARAMETRIZE { chosenMove = MOVE_TACKLE; chosenTarget = opponentRight; } + PARAMETRIZE { chosenMove = MOVE_POUND; chosenTarget = opponentLeft; } + PARAMETRIZE { chosenMove = MOVE_POUND; chosenTarget = opponentRight; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT) { Moves(MOVE_TACKLE, MOVE_POUND, MOVE_CELEBRATE, MOVE_SCRATCH); } + OPPONENT(SPECIES_KADABRA); + OPPONENT(SPECIES_ABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); MOVE(playerRight, chosenMove, target:chosenTarget); } + } SCENE { + MESSAGE("Wobbuffet used Ally Switch!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); + MESSAGE("Wobbuffet and Wynaut switched places!"); + + ANIMATION(ANIM_TYPE_MOVE, chosenMove, playerLeft); + HP_BAR(chosenTarget); + } +} + +DOUBLE_BATTLE_TEST("Ally Switch - move fails if the target was ally which changed position") +{ + u32 move = MOVE_NONE; + + PARAMETRIZE { move = MOVE_COACHING; } + PARAMETRIZE { move = MOVE_AROMATIC_MIST; } + PARAMETRIZE { move = MOVE_HOLD_HANDS; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_KADABRA); + OPPONENT(SPECIES_ABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); MOVE(playerRight, move, target:playerLeft); } + } SCENE { + MESSAGE("Wobbuffet used Ally Switch!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); + MESSAGE("Wobbuffet and Wynaut switched places!"); + + NOT ANIMATION(ANIM_TYPE_MOVE, move, playerLeft); + MESSAGE("But it failed!"); + } +} + +// Verified on Showdown, even though Bulbapedia says otherwise. +DOUBLE_BATTLE_TEST("Acupressure works after ally used Ally Switch") +{ + struct BattlePokemon *battlerTarget = NULL; + + PARAMETRIZE { battlerTarget = playerLeft; } + PARAMETRIZE { battlerTarget = playerRight; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_KADABRA); + OPPONENT(SPECIES_ABRA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); MOVE(playerRight, MOVE_ACUPRESSURE, target:battlerTarget); } + } SCENE { + MESSAGE("Wobbuffet used Ally Switch!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); + MESSAGE("Wobbuffet and Wynaut switched places!"); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_ACUPRESSURE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, battlerTarget); + NOT MESSAGE("But it failed!"); + } +} + +DOUBLE_BATTLE_TEST("Ally Switch increases the Protect-like moves counter") +{ + GIVEN { + ASSUME(B_ALLY_SWITCH_FAIL_CHANCE >= GEN_9); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); } + } THEN { + EXPECT(gDisableStructs[B_POSITION_PLAYER_RIGHT].protectUses == 1); + } +} diff --git a/test/battle/move_effect/attack_down.c b/test/battle/move_effect/attack_down.c index 2149624c84..7f32b9f47b 100644 --- a/test/battle/move_effect/attack_down.c +++ b/test/battle/move_effect/attack_down.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Growl lowers Attack", s16 damage) PARAMETRIZE { lowerAttack = FALSE; } PARAMETRIZE { lowerAttack = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/attack_up.c b/test/battle/move_effect/attack_up.c index 7cd8f953c7..967c850c12 100644 --- a/test/battle/move_effect/attack_up.c +++ b/test/battle/move_effect/attack_up.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Meditate raises Attack", s16 damage) PARAMETRIZE { raiseAttack = FALSE; } PARAMETRIZE { raiseAttack = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/attack_up_user_ally.c b/test/battle/move_effect/attack_up_user_ally.c index 6691b49ed8..4317040bc2 100644 --- a/test/battle/move_effect/attack_up_user_ally.c +++ b/test/battle/move_effect/attack_up_user_ally.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Howl raises user's Attack", s16 damage) PARAMETRIZE { raiseAttack = FALSE; } PARAMETRIZE { raiseAttack = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -37,7 +37,7 @@ DOUBLE_BATTLE_TEST("Howl raises user's and partner's Attack", s16 damageLeft, s1 PARAMETRIZE { raiseAttack = FALSE; } PARAMETRIZE { raiseAttack = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET) { Speed(15); } PLAYER(SPECIES_WYNAUT) { Speed(10); } OPPONENT(SPECIES_WOBBUFFET) { Speed(13); } @@ -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].category == BATTLE_CATEGORY_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 0000000000..8bc05c0eea --- /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/burn_hit.c b/test/battle/move_effect/burn_hit.c index c31b578745..7530018228 100644 --- a/test/battle/move_effect/burn_hit.c +++ b/test/battle/move_effect/burn_hit.c @@ -101,3 +101,32 @@ DOUBLE_BATTLE_TEST("Matcha Gatcha can burn both targets") STATUS_ICON(opponentRight, burn: TRUE); } } + +#if B_STATUS_TYPE_IMMUNITY > GEN_1 +SINGLE_BATTLE_TEST("Scald should burn a Water-type Pokémon") +#else +SINGLE_BATTLE_TEST("Scald shouldn't burn a Water-type Pokémon") +#endif +{ + GIVEN { + ASSUME(gSpeciesInfo[SPECIES_SQUIRTLE].types[0] == TYPE_WATER); + ASSUME(MoveHasMoveEffect(MOVE_SCALD, MOVE_EFFECT_BURN, FALSE) == TRUE); + ASSUME(gBattleMoves[MOVE_SCALD].type == TYPE_WATER); + PLAYER(SPECIES_SQUIRTLE); + OPPONENT(SPECIES_SQUIRTLE); + } WHEN { + TURN { MOVE(player, MOVE_SCALD); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALD, player); + HP_BAR(opponent); + #if B_STATUS_TYPE_IMMUNITY > GEN_1 + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent); + STATUS_ICON(opponent, burn: TRUE); + #else + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent); + STATUS_ICON(opponent, burn: TRUE); + } + #endif + } +} diff --git a/test/battle/move_effect/chilly_reception.c b/test/battle/move_effect/chilly_reception.c new file mode 100644 index 0000000000..6f731f4b6f --- /dev/null +++ b/test/battle/move_effect/chilly_reception.c @@ -0,0 +1,90 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_CHILLY_RECEPTION].effect == EFFECT_CHILLY_RECEPTION); +} + +SINGLE_BATTLE_TEST("Chilly Reception sets up snow and switches the user out") +{ + GIVEN { + PLAYER(SPECIES_SLOWKING_GALARIAN); + PLAYER(SPECIES_SLOWPOKE_GALARIAN); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_CHILLY_RECEPTION); SEND_OUT(player, 1); } + } SCENE { + MESSAGE("Slowking is preparing to tell a chillingly bad joke!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player); + MESSAGE("It started to snow!"); + MESSAGE("Slowking went back to 1"); + MESSAGE("Go! Slowpoke!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SNOW_CONTINUES); + } +} + +SINGLE_BATTLE_TEST("Chilly Reception switches the user out, even if the weather does not change") +{ + GIVEN { + PLAYER(SPECIES_SLOWKING_GALARIAN); + PLAYER(SPECIES_SLOWPOKE_GALARIAN); + OPPONENT(SPECIES_KYOGRE) { Item(ITEM_BLUE_ORB); } + } WHEN { + TURN { MOVE(player, MOVE_CHILLY_RECEPTION); SEND_OUT(player, 1); } + } SCENE { + MESSAGE("Slowking is preparing to tell a chillingly bad joke!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player); + MESSAGE("There is no relief from this heavy rain!"); + MESSAGE("Slowking went back to 1"); + MESSAGE("Go! Slowpoke!"); + MESSAGE("Rain continues to fall."); + } +} + +SINGLE_BATTLE_TEST("Chilly Reception does not switch the user out if no replacements") +{ + GIVEN { + PLAYER(SPECIES_SLOWKING_GALARIAN); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_CHILLY_RECEPTION); } + } SCENE { + MESSAGE("Slowking is preparing to tell a chillingly bad joke!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player); + MESSAGE("It started to snow!"); + NOT MESSAGE("Slowking went back to 1"); + } +} + +SINGLE_BATTLE_TEST("Chilly Reception does not switch the user out if replacements fainted") +{ + GIVEN { + PLAYER(SPECIES_SLOWKING_GALARIAN); + PLAYER(SPECIES_SLOWPOKE_GALARIAN) { HP(0); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_CHILLY_RECEPTION); } + } SCENE { + MESSAGE("Slowking is preparing to tell a chillingly bad joke!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player); + MESSAGE("It started to snow!"); + NOT MESSAGE("Slowking went back to 1"); + } +} + +SINGLE_BATTLE_TEST("Chilly Reception changes the weather, even if the user cannot switch out") +{ + GIVEN { + PLAYER(SPECIES_SLOWKING_GALARIAN); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_CHILLY_RECEPTION); } + } SCENE { + MESSAGE("Slowking is preparing to tell a chillingly bad joke!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CHILLY_RECEPTION, player); + MESSAGE("It started to snow!"); + NOT MESSAGE("Slowking went back to 1"); + } +} + diff --git a/test/battle/move_effect/defense_down.c b/test/battle/move_effect/defense_down.c index 8a8c69ec3c..dfc9628f55 100644 --- a/test/battle/move_effect/defense_down.c +++ b/test/battle/move_effect/defense_down.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Tail Whip lowers Defense", s16 damage) PARAMETRIZE { lowerDefense = FALSE; } PARAMETRIZE { lowerDefense = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/defense_up.c b/test/battle/move_effect/defense_up.c index b4c7cb4dbb..6b18ecc934 100644 --- a/test/battle/move_effect/defense_up.c +++ b/test/battle/move_effect/defense_up.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Harden raises Defense", s16 damage) PARAMETRIZE { raiseDefense = FALSE; } PARAMETRIZE { raiseDefense = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/defog.c b/test/battle/move_effect/defog.c index 1cd78fb505..635fe822c4 100644 --- a/test/battle/move_effect/defog.c +++ b/test/battle/move_effect/defog.c @@ -15,8 +15,8 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_STICKY_WEB].effect == EFFECT_STICKY_WEB); ASSUME(gBattleMoves[MOVE_TOXIC].effect == EFFECT_TOXIC); ASSUME(gBattleMoves[MOVE_SCREECH].effect == EFFECT_DEFENSE_DOWN_2); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_GUST].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_GUST].category == BATTLE_CATEGORY_SPECIAL); } SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1") diff --git a/test/battle/move_effect/dire_claw.c b/test/battle/move_effect/dire_claw.c index 17fe784560..5369248dc0 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/doodle.c b/test/battle/move_effect/doodle.c new file mode 100644 index 0000000000..8a7144b430 --- /dev/null +++ b/test/battle/move_effect/doodle.c @@ -0,0 +1,83 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_DOODLE].effect == EFFECT_DOODLE); +} + +DOUBLE_BATTLE_TEST("Doodle gives the target's ability to user and ally") +{ + GIVEN { + PLAYER(SPECIES_WYNAUT); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); + MESSAGE("Wynaut copied Foe Torchic's Blaze!"); + MESSAGE("Wynaut copied Foe Torchic's Blaze!"); + } THEN { + EXPECT(playerLeft->ability == ABILITY_BLAZE); + EXPECT(playerRight->ability == ABILITY_BLAZE); + } +} + +DOUBLE_BATTLE_TEST("Doodle can't copy a banned ability") +{ + GIVEN { + PLAYER(SPECIES_WYNAUT); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); + NONE_OF { + MESSAGE("Wynaut copied Foe Great Tusk's Protosynthesis!"); + MESSAGE("Wynaut copied Foe Great Tusk's Protosynthesis!"); + } + } THEN { + EXPECT(playerLeft->ability != ABILITY_PROTOSYNTHESIS); + EXPECT(playerRight->ability != ABILITY_PROTOSYNTHESIS); + } +} + +DOUBLE_BATTLE_TEST("Doodle fails if user has a banned Ability") +{ + GIVEN { + PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); } + PLAYER(SPECIES_WYNAUT) { Ability(ABILITY_SHADOW_TAG); } + OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); + MESSAGE("But it failed!"); + } THEN { + EXPECT(playerLeft->ability == ABILITY_PROTOSYNTHESIS); + EXPECT(playerRight->ability == ABILITY_SHADOW_TAG); + } +} + +DOUBLE_BATTLE_TEST("Doodle fails if partner has a banned Ability") +{ + GIVEN { + PLAYER(SPECIES_WYNAUT) { Ability(ABILITY_SHADOW_TAG); } + PLAYER(SPECIES_GREAT_TUSK) { Ability(ABILITY_PROTOSYNTHESIS); } + OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); + MESSAGE("But it failed!"); + } THEN { + EXPECT(playerLeft->ability == ABILITY_SHADOW_TAG); + EXPECT(playerRight->ability == ABILITY_PROTOSYNTHESIS); + } +} diff --git a/test/battle/move_effect/embargo.c b/test/battle/move_effect/embargo.c index 131ef03813..c6514aa673 100644 --- a/test/battle/move_effect/embargo.c +++ b/test/battle/move_effect/embargo.c @@ -205,7 +205,6 @@ SINGLE_BATTLE_TEST("Embargo doesn't stop an item flung at an affected target fro 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); }; @@ -336,9 +335,6 @@ SINGLE_BATTLE_TEST("Embargo can be reflected by Magic Coat") 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); @@ -346,6 +342,7 @@ SINGLE_BATTLE_TEST("Embargo doesn't prevent Mega Evolution") } WHEN { TURN { MOVE(player, MOVE_EMBARGO); } TURN { MOVE(opponent, MOVE_BATON_PASS); SEND_OUT(opponent, 1); } + TURN { MOVE(opponent, MOVE_CELEBRATE, megaEvolve: TRUE); } } SCENE { // Turn 1 MESSAGE("Wobbuffet used Embargo!"); @@ -354,6 +351,7 @@ SINGLE_BATTLE_TEST("Embargo doesn't prevent Mega Evolution") MESSAGE("Foe Wobbuffet used Baton Pass!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); MESSAGE("2 sent out Charizard!"); + // Turn 3 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!"); @@ -362,9 +360,6 @@ SINGLE_BATTLE_TEST("Embargo doesn't prevent Mega Evolution") 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); @@ -384,7 +379,6 @@ SINGLE_BATTLE_TEST("Embargo doesn't prevent Primal Reversion") 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!"); diff --git a/test/battle/move_effect/fling.c b/test/battle/move_effect/fling.c index 9a989d17b3..a753e63fed 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); @@ -273,7 +272,7 @@ SINGLE_BATTLE_TEST("Fling - thrown berry's effect activates for the target even PARAMETRIZE { item = ITEM_SALAC_BERRY; effect = HOLD_EFFECT_SPEED_UP; statId = STAT_SPEED; } GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Item(item); } + PLAYER(SPECIES_WOBBUFFET) { Item(item); Attack(1); } OPPONENT(SPECIES_WOBBUFFET) { Status1(status1); HP(399); MaxHP(400); MovesWithPP({MOVE_CELEBRATE, 35}); } } WHEN { TURN { MOVE(player, MOVE_FLING); } @@ -346,3 +345,24 @@ SINGLE_BATTLE_TEST("Fling - thrown berry's effect activates for the target even } } +SINGLE_BATTLE_TEST("Fling deals damage based on items fling power") +{ + s16 damage[2]; + + GIVEN { + ASSUME(gBattleMoves[MOVE_CRUNCH].power == 80); + ASSUME(gItems[ITEM_VENUSAURITE].flingPower == 80); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_VENUSAURITE); } + OPPONENT(SPECIES_REGIROCK); + } WHEN { + TURN { MOVE(player, MOVE_CRUNCH); } + TURN { MOVE(player, MOVE_FLING); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CRUNCH, player); + HP_BAR(opponent, captureDamage: &damage[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLING, player); + HP_BAR(opponent, captureDamage: &damage[1]); + } THEN { + EXPECT_EQ(damage[0], damage[1]); + } +} diff --git a/test/battle/move_effect/freeze_hit.c b/test/battle/move_effect/freeze_hit.c index fddf5d186a..67bdf9f53d 100644 --- a/test/battle/move_effect/freeze_hit.c +++ b/test/battle/move_effect/freeze_hit.c @@ -66,3 +66,32 @@ SINGLE_BATTLE_TEST("Blizzard bypasses accuracy checks in Hail and Snow") NOT MESSAGE("Wobbuffet's attack missed!"); } } + +#if B_STATUS_TYPE_IMMUNITY > GEN_1 +SINGLE_BATTLE_TEST("Freezing Glare should freeze Psychic-types") +#else +SINGLE_BATTLE_TEST("Freezing Glare shouldn't freeze Psychic-types") +#endif +{ + GIVEN { + ASSUME(gSpeciesInfo[SPECIES_ARTICUNO_GALARIAN].types[0] == TYPE_PSYCHIC); + ASSUME(gBattleMoves[MOVE_FREEZING_GLARE].effect == EFFECT_FREEZE_HIT); + ASSUME(gBattleMoves[MOVE_FREEZING_GLARE].type == TYPE_PSYCHIC); + PLAYER(SPECIES_ARTICUNO_GALARIAN); + OPPONENT(SPECIES_ARTICUNO_GALARIAN); + } WHEN { + TURN { MOVE(player, MOVE_FREEZING_GLARE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FREEZING_GLARE, player); + HP_BAR(opponent); + #if B_STATUS_TYPE_IMMUNITY > GEN_1 + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent); + STATUS_ICON(opponent, freeze: TRUE); + #else + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent); + STATUS_ICON(opponent, freeze: TRUE); + } + #endif + } +} diff --git a/test/battle/move_effect/haze.c b/test/battle/move_effect/haze.c index f1e4456aac..f386110ef1 100644 --- a/test/battle/move_effect/haze.c +++ b/test/battle/move_effect/haze.c @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Haze resets stat changes", s16 damage) PARAMETRIZE { haze = TRUE; } GIVEN { ASSUME(gBattleMoves[MOVE_MEDITATE].effect == EFFECT_ATTACK_UP); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/heal_pulse.c b/test/battle/move_effect/heal_pulse.c new file mode 100644 index 0000000000..6ba678d2c5 --- /dev/null +++ b/test/battle/move_effect/heal_pulse.c @@ -0,0 +1,101 @@ +#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 { + 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 f2d5130957..b9d1bc99e7 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); } @@ -96,3 +94,21 @@ SINGLE_BATTLE_TEST("U-turn switches the user out if Wimp Out fails to activate") MESSAGE("Your foe's weak! Get 'em, Wynaut!"); } } + +SINGLE_BATTLE_TEST("U-turn switches the user out after Ice Face activates") +{ + GIVEN { + ASSUME(P_GEN_8_POKEMON == TRUE); + PLAYER(SPECIES_BEEDRILL); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_EISCUE) { Ability(ABILITY_ICE_FACE); } + } WHEN { + TURN { MOVE(player, MOVE_U_TURN); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); + HP_BAR(opponent); + ABILITY_POPUP(opponent, ABILITY_ICE_FACE); + MESSAGE("Foe Eiscue transformed!"); + MESSAGE("Go! Wynaut!"); + } +} diff --git a/test/battle/move_effect/ion_deluge.c b/test/battle/move_effect/ion_deluge.c new file mode 100644 index 0000000000..20181fb75c --- /dev/null +++ b/test/battle/move_effect/ion_deluge.c @@ -0,0 +1,65 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_ION_DELUGE].effect == EFFECT_ION_DELUGE); +} + +// For some reason SINGLE_BATTLE_TEST didn't catch these two issues. +WILD_BATTLE_TEST("Ion Deluge works the same way as always when used by a mon with Volt Absorb") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); HP(1); } + } WHEN { + TURN { MOVE(opponent, MOVE_ION_DELUGE); } + } SCENE { + MESSAGE("Wild Lanturn used Ion Deluge!"); + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_VOLT_ABSORB); + HP_BAR(opponent); + MESSAGE("Wild Lanturn restored HP using its Volt Absorb!"); + } + MESSAGE("A deluge of ions showers the battlefield!"); + } +} + +WILD_BATTLE_TEST("Ion Deluge works the same way as always when used by a mon with Lightning Rod / Motor Drive") +{ + u16 ability; + PARAMETRIZE { ability = ABILITY_LIGHTNING_ROD; } + PARAMETRIZE { ability = ABILITY_MOTOR_DRIVE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ZEBSTRIKA) { Ability(ability); } + } WHEN { + TURN { MOVE(opponent, MOVE_ION_DELUGE); } + } SCENE { + MESSAGE("Wild Zebstrika used Ion Deluge!"); + NONE_OF { + ABILITY_POPUP(opponent, ability); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Wild Zebstrika's Sp.Atk rose!"); + MESSAGE("Wild Zebstrika's Speed rose!"); + } + MESSAGE("A deluge of ions showers the battlefield!"); + } +} + +SINGLE_BATTLE_TEST("Ion Deluge makes Normal type moves Electric type") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].type == TYPE_NORMAL); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_GOLBAT); + } WHEN { + TURN { MOVE(opponent, MOVE_ION_DELUGE); MOVE(player, MOVE_TACKLE); } + } SCENE { + MESSAGE("Foe Golbat used Ion Deluge!"); + MESSAGE("A deluge of ions showers the battlefield!"); + MESSAGE("Wobbuffet used Tackle!"); + MESSAGE("It's super effective!"); // Because Tackle is now electric type. + } +} diff --git a/test/battle/move_effect/ivy_cudgel.c b/test/battle/move_effect/ivy_cudgel.c index ef0611c84f..819047f34a 100644 --- a/test/battle/move_effect/ivy_cudgel.c +++ b/test/battle/move_effect/ivy_cudgel.c @@ -1,7 +1,13 @@ #include "global.h" #include "test/battle.h" -SINGLE_BATTLE_TEST("Ivy Gudgel changes the move type depending on the mask the user holds") +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_IVY_CUDGEL].effect == EFFECT_CHANGE_TYPE_ON_ITEM); + ASSUME(gBattleMoves[MOVE_IVY_CUDGEL].argument == HOLD_EFFECT_MASK); +} + +SINGLE_BATTLE_TEST("Ivy Cudgel changes the move type depending on the mask the user holds") { u16 species; u16 item; diff --git a/test/battle/move_effect/paralyze_hit.c b/test/battle/move_effect/paralyze_hit.c index 36a8afecd5..ce50abf34b 100644 --- a/test/battle/move_effect/paralyze_hit.c +++ b/test/battle/move_effect/paralyze_hit.c @@ -39,3 +39,32 @@ SINGLE_BATTLE_TEST("Thunder Shock cannot paralyze an Electric-type") } } } + +#if B_STATUS_TYPE_IMMUNITY > GEN_1 +SINGLE_BATTLE_TEST("Body Slam should paralyze Normal-types") +#else +SINGLE_BATTLE_TEST("Body Slam shouldn't paralyze Normal-types") +#endif +{ + GIVEN { + ASSUME(gSpeciesInfo[SPECIES_TAUROS].types[0] == TYPE_NORMAL); + ASSUME(gBattleMoves[MOVE_BODY_SLAM].effect == EFFECT_PARALYZE_HIT); + ASSUME(gBattleMoves[MOVE_BODY_SLAM].type == TYPE_NORMAL); + PLAYER(SPECIES_TAUROS); + OPPONENT(SPECIES_TAUROS); + } WHEN { + TURN { MOVE(player, MOVE_BODY_SLAM); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_BODY_SLAM, player); + HP_BAR(opponent); + #if B_STATUS_TYPE_IMMUNITY > GEN_1 + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent); + STATUS_ICON(opponent, paralysis: TRUE); + #else + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent); + STATUS_ICON(opponent, paralysis: TRUE); + } + #endif + } +} diff --git a/test/battle/move_effect/pledge.c b/test/battle/move_effect/pledge.c new file mode 100644 index 0000000000..a7843be619 --- /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/protect.c b/test/battle/move_effect/protect.c index dd9f57b356..502eab46e0 100644 --- a/test/battle/move_effect/protect.c +++ b/test/battle/move_effect/protect.c @@ -12,10 +12,10 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_QUICK_GUARD].effect == EFFECT_PROTECT); ASSUME(gBattleMoves[MOVE_CRAFTY_SHIELD].effect == EFFECT_PROTECT); ASSUME(gBattleMoves[MOVE_BANEFUL_BUNKER].effect == EFFECT_PROTECT); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); ASSUME(gBattleMoves[MOVE_TACKLE].makesContact); - ASSUME(gBattleMoves[MOVE_LEER].split == SPLIT_STATUS); - ASSUME(gBattleMoves[MOVE_WATER_GUN].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_LEER].category == BATTLE_CATEGORY_STATUS); + ASSUME(gBattleMoves[MOVE_WATER_GUN].category == BATTLE_CATEGORY_SPECIAL); ASSUME(!(gBattleMoves[MOVE_WATER_GUN].makesContact)); } @@ -124,13 +124,13 @@ SINGLE_BATTLE_TEST("Spiky Shield does 1/8 dmg of max hp of attackers making cont u16 usedMove = MOVE_NONE; u16 hp = 400, maxHp = 400; - PARAMETRIZE { usedMove = MOVE_TACKLE; hp = 1;} - PARAMETRIZE { usedMove = MOVE_TACKLE;} - PARAMETRIZE { usedMove = MOVE_LEER;} - PARAMETRIZE { usedMove = MOVE_WATER_GUN;} + PARAMETRIZE { usedMove = MOVE_TACKLE; hp = 1; } + PARAMETRIZE { usedMove = MOVE_TACKLE; } + PARAMETRIZE { usedMove = MOVE_LEER; } + PARAMETRIZE { usedMove = MOVE_WATER_GUN; } GIVEN { - PLAYER(SPECIES_WOBBUFFET) {HP(hp); MaxHP(maxHp); } + PLAYER(SPECIES_WOBBUFFET) { HP(hp); MaxHP(maxHp); } PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -206,10 +206,10 @@ SINGLE_BATTLE_TEST("Recoil damage is not applied if target was protected") GIVEN { - ASSUME(gBattleMoves[MOVE_VOLT_TACKLE].effect == EFFECT_RECOIL_33_STATUS); - ASSUME(gBattleMoves[MOVE_HEAD_SMASH].effect == EFFECT_RECOIL_50); - ASSUME(gBattleMoves[MOVE_TAKE_DOWN].effect == EFFECT_RECOIL_25); - ASSUME(gBattleMoves[MOVE_DOUBLE_EDGE].effect == EFFECT_RECOIL_33); + ASSUME(gBattleMoves[MOVE_VOLT_TACKLE].effect == EFFECT_RECOIL); + ASSUME(gBattleMoves[MOVE_HEAD_SMASH].effect == EFFECT_RECOIL); + ASSUME(gBattleMoves[MOVE_TAKE_DOWN].effect == EFFECT_RECOIL); + ASSUME(gBattleMoves[MOVE_DOUBLE_EDGE].effect == EFFECT_RECOIL); PLAYER(SPECIES_RAPIDASH); OPPONENT(SPECIES_BEAUTIFLY); } WHEN { @@ -295,7 +295,7 @@ DOUBLE_BATTLE_TEST("Wide Guard protects self and ally from multi-target moves") OPPONENT(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { - TURN { MOVE(opponentLeft, MOVE_WIDE_GUARD); MOVE(playerLeft, move, target:opponentLeft); } + TURN { MOVE(opponentLeft, MOVE_WIDE_GUARD); MOVE(playerLeft, move, target: opponentLeft); } TURN {} } SCENE { MESSAGE("Foe Wobbuffet used Wide Guard!"); @@ -320,6 +320,34 @@ DOUBLE_BATTLE_TEST("Wide Guard protects self and ally from multi-target moves") } } +DOUBLE_BATTLE_TEST("Wide Guard can not fail on consecutive turns") +{ + u8 turns; + + PASSES_RANDOMLY(2, 2); + GIVEN { + ASSUME(gBattleMoves[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_WIDE_GUARD); MOVE(playerLeft, MOVE_HYPER_VOICE, target: opponentLeft); } + TURN { MOVE(opponentLeft, MOVE_WIDE_GUARD); MOVE(playerLeft, MOVE_HYPER_VOICE, target: opponentLeft); } + TURN {} + } SCENE { + for (turns = 0; turns < 2; turns++) { + MESSAGE("Foe Wobbuffet used Wide Guard!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WIDE_GUARD, opponentLeft); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + MESSAGE("Foe Wobbuffet protected itself!"); + NOT HP_BAR(opponentLeft); + MESSAGE("Foe Wobbuffet protected itself!"); + NOT HP_BAR(opponentRight); + } + } +} + DOUBLE_BATTLE_TEST("Quick Guard protects self and ally from priority moves") { u16 move = MOVE_NONE; @@ -355,6 +383,31 @@ DOUBLE_BATTLE_TEST("Quick Guard protects self and ally from priority moves") } } +DOUBLE_BATTLE_TEST("Quick Guard can not fail on consecutive turns") +{ + u8 turns; + + PASSES_RANDOMLY(2, 2); + GIVEN { + ASSUME(gBattleMoves[MOVE_QUICK_ATTACK].priority == 1); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_QUICK_GUARD); MOVE(playerLeft, MOVE_QUICK_ATTACK, target: opponentRight); } + TURN { MOVE(opponentLeft, MOVE_QUICK_GUARD); MOVE(playerLeft, MOVE_QUICK_ATTACK, target: opponentRight); } + } SCENE { + for (turns = 0; turns < 2; turns++) { + MESSAGE("Foe Wobbuffet used Quick Guard!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_GUARD, opponentLeft); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, playerLeft); + MESSAGE("Foe Wobbuffet protected itself!"); + NOT HP_BAR(opponentRight); + } + } +} + DOUBLE_BATTLE_TEST("Crafty Shield protects self and ally from status moves") { u16 move = MOVE_NONE; @@ -368,7 +421,7 @@ DOUBLE_BATTLE_TEST("Crafty Shield protects self and ally from status moves") GIVEN { ASSUME(gBattleMoves[MOVE_LEER].target == MOVE_TARGET_BOTH); ASSUME(gBattleMoves[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); - ASSUME(gBattleMoves[MOVE_HYPER_VOICE].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_HYPER_VOICE].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/move_effect/rage_fist.c b/test/battle/move_effect/rage_fist.c new file mode 100644 index 0000000000..7a09461a4f --- /dev/null +++ b/test/battle/move_effect/rage_fist.c @@ -0,0 +1,294 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_RAGE_FIST].effect == EFFECT_RAGE_FIST); + ASSUME(gBattleMoves[MOVE_RAGE_FIST].power == 50); +} + +SINGLE_BATTLE_TEST("Rage Fist base power is increased by 50 if the user takes damage") +{ + u8 turns; + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_REGIROCK); + } WHEN { + for (turns = 0; turns < 2; turns++) { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_TACKLE); } + } + } SCENE { + for (turns = 0; turns < 2; turns++) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[turns]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player); + } + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(2.0), timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is increased by each multi hit") +{ + u8 turns; + s16 timesGotHit[2]; + + GIVEN { + ASSUME(gBattleMoves[MOVE_BULLET_SEED].effect == EFFECT_MULTI_HIT); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_REGIROCK); + } WHEN { + for (turns = 0; turns < 2; turns++) { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_BULLET_SEED); } + } + } SCENE { + for (turns = 0; turns < 2; turns++) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[turns]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent); + HP_BAR(player); + } + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(6.0), timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is not increased by a confusion hit") +{ + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_REGIROCK); + } WHEN { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_CONFUSE_RAY); } + TURN {} + TURN { MOVE(player, MOVE_RAGE_FIST, WITH_RNG(RNG_CONFUSION, FALSE)); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, player); + MESSAGE("Wobbuffet became confused!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, player); + MESSAGE("It hurt itself in its confusion!"); + HP_BAR(player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[1]); + } THEN { + EXPECT_EQ(timesGotHit[0], timesGotHit[1]); + } +} + +DOUBLE_BATTLE_TEST("Rage Fist maximum base power is 350") +{ + u16 turns; + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_REGIROCK); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + for (turns = 1; turns <= 3; turns++) { + TURN { + if (turns == 1) + MOVE(playerLeft, MOVE_RAGE_FIST, target: opponentLeft); + + MOVE(playerRight, MOVE_TACKLE, target: playerLeft); + MOVE(opponentLeft, MOVE_TACKLE, target: playerLeft); + MOVE(opponentRight, MOVE_TACKLE, target: playerLeft); + } + } + TURN { MOVE(playerLeft, MOVE_RAGE_FIST, target: opponentLeft); } + } SCENE { + for (turns = 1; turns <= 3; turns++) { + if (turns == 1) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, playerLeft); + HP_BAR(opponentLeft, captureDamage: ×GotHit[0]); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerRight); + HP_BAR(playerLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + HP_BAR(playerLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); + HP_BAR(playerLeft); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, playerLeft); + HP_BAR(opponentLeft, captureDamage: ×GotHit[1]); + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(7.0), timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is not increased if a substitute was hit") +{ + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_REGIROCK); + } WHEN { + TURN { MOVE(player, MOVE_RAGE_FIST); } + TURN { MOVE(player, MOVE_SUBSTITUTE); MOVE(opponent, MOVE_CRUNCH); } + TURN { MOVE(player, MOVE_RAGE_FIST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CRUNCH, opponent); + MESSAGE("The SUBSTITUTE took damage for Wobbuffet!"); + MESSAGE("Wobbuffet's SUBSTITUTE faded!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[1]); + } THEN { + EXPECT_EQ(timesGotHit[0], timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is not lost if user switches out") +{ + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_REGIROCK); + } WHEN { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_TACKLE); } + TURN { SWITCH(player, 1); MOVE(opponent, MOVE_TACKLE); } + TURN { SWITCH(player, 0); } + TURN { MOVE(player, MOVE_RAGE_FIST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[0]); + MESSAGE("Wobbuffet, that's enough! Come back!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + MESSAGE("Wynaut, that's enough! Come back!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[1]); + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(2.0), timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is increased by 50 even if a damaging move does no damage - False Swipe") +{ + u8 turns; + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_REGIROCK); + } WHEN { + for (turns = 0; turns < 2; turns++) { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_FALSE_SWIPE); } + } + } SCENE { + for (turns = 0; turns < 2; turns++) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[turns]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FALSE_SWIPE, opponent); + HP_BAR(player); + } + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(2.0), timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is increased by 50 even if a damaging move does no damage - Endure") +{ + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(2); } + OPPONENT(SPECIES_REGIROCK); + } WHEN { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_FALSE_SWIPE); } + TURN { MOVE(player, MOVE_ENDURE); MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_RAGE_FIST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FALSE_SWIPE, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ENDURE, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[1]); + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(3.0), timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is not increased if move had no affect") +{ + u8 turns; + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_GASTLY); + OPPONENT(SPECIES_REGIROCK); + } WHEN { + for (turns = 0; turns < 2; turns++) { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_TACKLE); } + } + } SCENE { + for (turns = 0; turns < 2; turns++) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[turns]); + MESSAGE("Foe Regirock used Tackle!"); + MESSAGE("It doesn't affect Gastly…"); + } + } THEN { + EXPECT_EQ(timesGotHit[0], timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist base power is increased if Disguise breaks") +{ + s16 timesGotHit[2]; + + GIVEN { + PLAYER(SPECIES_MIMIKYU_DISGUISED) { Ability(ABILITY_DISGUISE); } + OPPONENT(SPECIES_REGIROCK); + } WHEN { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_ROCK_THROW); } + TURN { MOVE(player, MOVE_RAGE_FIST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_THROW, opponent); + ABILITY_POPUP(player, ABILITY_DISGUISE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[1]); + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(2.0), timesGotHit[1]); + } +} + +SINGLE_BATTLE_TEST("Rage Fist number of hits is copied by Transform") +{ + s16 timesGotHit[2]; + + // KNOWN_FAILING; // After Transform , wrong move is used by transformed mon + GIVEN { + PLAYER(SPECIES_REGIROCK); + OPPONENT(SPECIES_REGIROCK) { Moves(MOVE_RAGE_FIST, MOVE_CELEBRATE); } + } WHEN { + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_CELEBRATE); } + TURN { MOVE(player, MOVE_TRANSFORM); MOVE(opponent, MOVE_CELEBRATE); } + TURN { MOVE(player, MOVE_RAGE_FIST); MOVE(opponent, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[0]); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TRANSFORM, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); + HP_BAR(opponent, captureDamage: ×GotHit[1]); + } THEN { + EXPECT_MUL_EQ(timesGotHit[0], Q_4_12(2.0), timesGotHit[1]); + } +} diff --git a/test/battle/move_effect/recoil.c b/test/battle/move_effect/recoil.c new file mode 100644 index 0000000000..5d42451021 --- /dev/null +++ b/test/battle/move_effect/recoil.c @@ -0,0 +1,89 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Take Down deals 25% of recoil damage to the user") +{ + s16 directDamage; + s16 recoilDamage; + + GIVEN { + ASSUME(gBattleMoves[MOVE_TAKE_DOWN].effect == EFFECT_RECOIL); + ASSUME(gBattleMoves[MOVE_TAKE_DOWN].recoil == 25); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_TAKE_DOWN); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TAKE_DOWN, player); + HP_BAR(opponent, captureDamage: &directDamage); + HP_BAR(player, captureDamage: &recoilDamage); + } THEN { + EXPECT_MUL_EQ(directDamage, UQ_4_12(0.25), recoilDamage); + } +} + +SINGLE_BATTLE_TEST("Double Edge deals 33% of recoil damage to the user") +{ + s16 directDamage; + s16 recoilDamage; + + GIVEN { + ASSUME(gBattleMoves[MOVE_DOUBLE_EDGE].effect == EFFECT_RECOIL); + ASSUME(gBattleMoves[MOVE_DOUBLE_EDGE].recoil == 33); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_DOUBLE_EDGE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_EDGE, player); + HP_BAR(opponent, captureDamage: &directDamage); + HP_BAR(player, captureDamage: &recoilDamage); + } THEN { + EXPECT_MUL_EQ(directDamage, UQ_4_12(0.33), recoilDamage); + } +} + +SINGLE_BATTLE_TEST("Head Smash deals 50% of recoil damage to the user") +{ + s16 directDamage; + s16 recoilDamage; + + GIVEN { + ASSUME(gBattleMoves[MOVE_HEAD_SMASH].effect == EFFECT_RECOIL); + ASSUME(gBattleMoves[MOVE_HEAD_SMASH].recoil == 50); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_HEAD_SMASH); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAD_SMASH, player); + HP_BAR(opponent, captureDamage: &directDamage); + HP_BAR(player, captureDamage: &recoilDamage); + } THEN { + EXPECT_MUL_EQ(directDamage, UQ_4_12(0.50), recoilDamage); + } +} + +SINGLE_BATTLE_TEST("Flare Blitz deals 33% of recoil damage to the user and can burn target") +{ + s16 directDamage; + s16 recoilDamage; + + GIVEN { + ASSUME(gBattleMoves[MOVE_FLARE_BLITZ].effect == EFFECT_RECOIL); + ASSUME(gBattleMoves[MOVE_FLARE_BLITZ].recoil == 33); + ASSUME(gBattleMoves[MOVE_FLARE_BLITZ].argument == STATUS1_BURN); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_FLARE_BLITZ); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLARE_BLITZ, player); + HP_BAR(opponent, captureDamage: &directDamage); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent); + STATUS_ICON(opponent, burn: TRUE); + HP_BAR(player, captureDamage: &recoilDamage); + } THEN { + EXPECT_MUL_EQ(directDamage, UQ_4_12(0.33), recoilDamage); + } +} diff --git a/test/battle/move_effect/relic_song.c b/test/battle/move_effect/relic_song.c index 1548dc95d1..52dcfac239 100644 --- a/test/battle/move_effect/relic_song.c +++ b/test/battle/move_effect/relic_song.c @@ -44,7 +44,6 @@ SINGLE_BATTLE_TEST("Relic Song is prevented by Soundproof") SINGLE_BATTLE_TEST("Relic Song will become a Water-type move when used by a Pokémon with the Ability Liquid Voice") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_VULPIX); OPPONENT(SPECIES_POPPLIO) { Ability(ABILITY_LIQUID_VOICE); } } WHEN { @@ -161,3 +160,22 @@ SINGLE_BATTLE_TEST("Relic Song loses the form-changing effect with Sheer Force") 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/roost.c b/test/battle/move_effect/roost.c index f138cc2cfa..3a46350ed3 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); } @@ -416,7 +415,6 @@ SINGLE_BATTLE_TEST("Roost does not suppress the ungrounded effect of Magnet Rise SINGLE_BATTLE_TEST("Roost does not suppress the ungrounded effect of Telekinesis") { - KNOWN_FAILING; // Telekinesis currently says the pokemon was identified GIVEN { PLAYER(SPECIES_WOBBUFFET) { HP(1); } OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/move_effect/shell_trap.c b/test/battle/move_effect/shell_trap.c index 7fb80210eb..9d582c78be 100644 --- a/test/battle/move_effect/shell_trap.c +++ b/test/battle/move_effect/shell_trap.c @@ -4,9 +4,9 @@ ASSUMPTIONS { ASSUME(gBattleMoves[MOVE_SHELL_TRAP].effect == EFFECT_SHELL_TRAP); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_WATER_GUN].split == SPLIT_SPECIAL); - ASSUME(gBattleMoves[MOVE_LEER].split == SPLIT_STATUS); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_WATER_GUN].category == BATTLE_CATEGORY_SPECIAL); + ASSUME(gBattleMoves[MOVE_LEER].category == BATTLE_CATEGORY_STATUS); } SINGLE_BATTLE_TEST("Shell Trap activates only if hit by a physical move") diff --git a/test/battle/move_effect/special_attack_down.c b/test/battle/move_effect/special_attack_down.c index 6e7a84f0a4..72f554de1d 100644 --- a/test/battle/move_effect/special_attack_down.c +++ b/test/battle/move_effect/special_attack_down.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Confide lowers Special Attack", s16 damage) PARAMETRIZE { lowerSpecialAttack = FALSE; } PARAMETRIZE { lowerSpecialAttack = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_GUST].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_GUST].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/special_attack_up_3.c b/test/battle/move_effect/special_attack_up_3.c index 340c59360b..404469139d 100644 --- a/test/battle/move_effect/special_attack_up_3.c +++ b/test/battle/move_effect/special_attack_up_3.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Tail Glow drastically raises Special Attack", s16 damage) PARAMETRIZE { raiseSpecialAttack = FALSE; } PARAMETRIZE { raiseSpecialAttack = TRUE; } GIVEN { - ASSUME(gBattleMoves[MOVE_GUST].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_GUST].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/move_effect/sticky_web.c b/test/battle/move_effect/sticky_web.c index e12cc80905..cdf577b5ad 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/stockpile.c b/test/battle/move_effect/stockpile.c index e5f108a16d..f793d14309 100644 --- a/test/battle/move_effect/stockpile.c +++ b/test/battle/move_effect/stockpile.c @@ -148,8 +148,8 @@ SINGLE_BATTLE_TEST("Stockpile temporarily raises Def and Sp. Def", s16 dmgPyhsic PARAMETRIZE { move = MOVE_CELEBRATE; } GIVEN { ASSUME(B_STOCKPILE_RAISES_DEFS >= GEN_4); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_GUST].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_GUST].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET) { Speed(2); } OPPONENT(SPECIES_WOBBUFFET) { Speed(1); } } WHEN { @@ -184,8 +184,8 @@ DOUBLE_BATTLE_TEST("Stockpile's Def and Sp. Def boost is lost after using Spit U PARAMETRIZE { count = 3; move = MOVE_SPIT_UP; } GIVEN { ASSUME(B_STOCKPILE_RAISES_DEFS >= GEN_4); - ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); - ASSUME(gBattleMoves[MOVE_GUST].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].category == BATTLE_CATEGORY_PHYSICAL); + ASSUME(gBattleMoves[MOVE_GUST].category == BATTLE_CATEGORY_SPECIAL); PLAYER(SPECIES_WOBBUFFET) { Speed(4); HP(399); MaxHP(400); } PLAYER(SPECIES_WOBBUFFET) { Speed(3); } OPPONENT(SPECIES_WOBBUFFET) { Speed(2); } diff --git a/test/battle/move_effect/teatime.c b/test/battle/move_effect/teatime.c index 399cafb919..2d7c7426e8 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/techno_blast.c b/test/battle/move_effect/techno_blast.c new file mode 100644 index 0000000000..2a5b4f4396 --- /dev/null +++ b/test/battle/move_effect/techno_blast.c @@ -0,0 +1,31 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TECHNO_BLAST].effect == EFFECT_CHANGE_TYPE_ON_ITEM); + ASSUME(gBattleMoves[MOVE_TECHNO_BLAST].argument == HOLD_EFFECT_DRIVE); +} + + +SINGLE_BATTLE_TEST("Techno Blast changes the move type depending on the mask the user holds") +{ + u16 species; + u16 item; + + PARAMETRIZE { species = SPECIES_CHARIZARD; item = ITEM_DOUSE_DRIVE; } + PARAMETRIZE { species = SPECIES_BLASTOISE; item = ITEM_SHOCK_DRIVE; } + PARAMETRIZE { species = SPECIES_VENUSAUR; item = ITEM_BURN_DRIVE; } + PARAMETRIZE { species = SPECIES_DRATINI; item = ITEM_CHILL_DRIVE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(item); } + OPPONENT(species); + } WHEN { + TURN { MOVE(player, MOVE_TECHNO_BLAST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TECHNO_BLAST, player); + HP_BAR(opponent); + MESSAGE("It's super effective!"); + } +} diff --git a/test/battle/move_effect/telekinesis.c b/test/battle/move_effect/telekinesis.c new file mode 100644 index 0000000000..7dbce2d1fd --- /dev/null +++ b/test/battle/move_effect/telekinesis.c @@ -0,0 +1,70 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TELEKINESIS].effect == EFFECT_TELEKINESIS); +} + +SINGLE_BATTLE_TEST("Telekinesis makes the target unable to avoid any attacks made against it") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_MINIMIZE].effect == EFFECT_MINIMIZE); // Raises evs by 2 + ASSUME(gBattleMoves[MOVE_SCREECH].accuracy < 100); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_TELEKINESIS); MOVE(opponent, MOVE_MINIMIZE); } + TURN { MOVE(player, MOVE_SCREECH, hit:FALSE); } + } SCENE { + MESSAGE("Wobbuffet used Telekinesis!"); + MESSAGE("Foe Wynaut was hurled into the air!"); + MESSAGE("Foe Wynaut used Minimize!"); + MESSAGE("Wobbuffet used Screech!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SCREECH, player); + NOT MESSAGE("Wobbuffet's attack missed!"); + } +} + +SINGLE_BATTLE_TEST("Telekinesis ends after 3 turns") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_TELEKINESIS); } + TURN { } + TURN { } + } SCENE { + MESSAGE("Wobbuffet used Telekinesis!"); + MESSAGE("Foe Wynaut was hurled into the air!"); + MESSAGE("Wobbuffet used Celebrate!"); + MESSAGE("Wobbuffet used Celebrate!"); + MESSAGE("Foe Wynaut was freed from the telekinesis!"); + } +} + +SINGLE_BATTLE_TEST("Telekinesis makes the target immune to Ground-type attacks") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_BULLDOZE].type == TYPE_GROUND); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_BULLDOZE); } + TURN { MOVE(player, MOVE_TELEKINESIS); } + TURN { MOVE(player, MOVE_BULLDOZE); } + } SCENE { + MESSAGE("Wobbuffet used Bulldoze!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLDOZE, player); + HP_BAR(opponent); + MESSAGE("Wobbuffet used Telekinesis!"); + MESSAGE("Foe Wynaut was hurled into the air!"); + MESSAGE("Wobbuffet used Bulldoze!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLDOZE, player); + HP_BAR(opponent); + } + MESSAGE("It doesn't affect Foe Wynaut…"); + } +} diff --git a/test/battle/move_effect/tri_attack.c b/test/battle/move_effect/tri_attack.c index 08a8418d98..6f321d4a5c 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/move_effect/triple_arrows.c b/test/battle/move_effect/triple_arrows.c index 1a634659c9..42b48aa034 100644 --- a/test/battle/move_effect/triple_arrows.c +++ b/test/battle/move_effect/triple_arrows.c @@ -47,7 +47,7 @@ SINGLE_BATTLE_TEST("Triple Arrows makes the foe flinch 30% of the time") SINGLE_BATTLE_TEST("Triple Arrows lands a critical hit") { ASSUME(B_CRIT_CHANCE >= GEN_7); - ASSUME(gBattleMoves[MOVE_TRIPLE_ARROWS].highCritRatio == TRUE); + ASSUME(gBattleMoves[MOVE_TRIPLE_ARROWS].criticalHitStage == 1); PASSES_RANDOMLY(1, 8, RNG_CRITICAL_HIT); GIVEN { PLAYER(SPECIES_WOBBUFFET); diff --git a/test/battle/move_flags/strike_count.c b/test/battle/move_flags/strike_count.c index d134e58c80..d397d805c6 100644 --- a/test/battle/move_flags/strike_count.c +++ b/test/battle/move_flags/strike_count.c @@ -50,6 +50,7 @@ SINGLE_BATTLE_TEST("Surging Strikes hits 3 times with each hit being a critical GIVEN { ASSUME(gBattleMoves[MOVE_SURGING_STRIKES].strikeCount == 3); + ASSUME(gBattleMoves[MOVE_SURGING_STRIKES].alwaysCriticalHit == TRUE); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/terrain/electric.c b/test/battle/terrain/electric.c index cebb0cb750..b71707603f 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 893a305287..e135426427 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 dd6489af6b..dab66efe0b 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 45c2886e32..cf7a5640c2 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); } diff --git a/test/dynamax.c b/test/dynamax.c index a4b67f34dc..69887d6d2f 100644 --- a/test/dynamax.c +++ b/test/dynamax.c @@ -213,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 { @@ -870,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); @@ -891,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); @@ -923,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); } @@ -967,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); @@ -1005,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); @@ -1103,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); @@ -1163,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); @@ -1275,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); @@ -1299,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); } @@ -1320,7 +1310,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Finale heals allies by 1/6 of their health") 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); } @@ -1341,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); @@ -1400,7 +1388,6 @@ 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); @@ -1423,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/random.c b/test/random.c index 845f24f102..0232ff1547 100644 --- a/test/random.c +++ b/test/random.c @@ -17,7 +17,7 @@ error = 0; \ for (i = 0; i < ARRAY_COUNT(indexSum); i++) \ error += abs(3584 - indexSum[i]); \ - EXPECT_LT(error, (int)(28672 * 0.025)); + EXPECT_LT(error, (int)(28672 * 0.03)); TEST("Shuffle randomizes the array [Shuffle8]") { @@ -196,6 +196,13 @@ TEST("RandomElement generates a uniform distribution") TEST("RandomUniform mul-based faster than mod-based (compile-time)") { + #if HQ_RANDOM == TRUE + const u32 expectedMulSum = 6; + const u32 expectedModSum = 4; + #else + const u32 expectedMulSum = 3; + const u32 expectedModSum = 4; + #endif struct Benchmark mulBenchmark, modBenchmark; u32 mulSum = 0, modSum = 0; @@ -221,12 +228,19 @@ TEST("RandomUniform mul-based faster than mod-based (compile-time)") // These numbers are different because multiplication and modulus // have subtly different biases (so subtle that it's irrelevant for // our purposes). - EXPECT_EQ(mulSum, 3); - EXPECT_EQ(modSum, 4); + EXPECT_EQ(mulSum, expectedMulSum); + EXPECT_EQ(modSum, expectedModSum); } TEST("RandomUniform mul-based faster than mod-based (run-time)") { + #if HQ_RANDOM == TRUE + const u32 expectedMulSum = 289; + const u32 expectedModSum = 205; + #else + const u32 expectedMulSum = 232; + const u32 expectedModSum = 249; + #endif u32 i; struct Benchmark mulBenchmark, modBenchmark; u32 mulSum = 0, modSum = 0; @@ -246,6 +260,30 @@ TEST("RandomUniform mul-based faster than mod-based (run-time)") EXPECT_FASTER(mulBenchmark, modBenchmark); // Reference mulSum/modSum to prevent optimization. - EXPECT_EQ(mulSum, 232); - EXPECT_EQ(modSum, 249); + EXPECT_EQ(mulSum, expectedMulSum); + EXPECT_EQ(modSum, expectedModSum); } + +#if HQ_RANDOM == TRUE +TEST("Thumb and C SFC32 implementations produce the same results") +{ + u32 thumbSum; + u32 cSum; + int i; + rng_value_t localState; + + thumbSum = 0; + cSum = 0; + + SeedRng(0); + localState = gRngValue; + + for(i = 0; i < 32; i++) + { + thumbSum += Random32(); + cSum += _SFC32_Next(&localState); + } + + EXPECT_EQ(thumbSum, cSum); +} +#endif \ No newline at end of file diff --git a/test/species.c b/test/species.c new file mode 100644 index 0000000000..9ea20638c8 --- /dev/null +++ b/test/species.c @@ -0,0 +1,78 @@ +#include "global.h" +#include "test/test.h" +#include "constants/form_change_types.h" + +TEST("Form species ID tables are shared between all forms") +{ + u32 i; + u32 species = SPECIES_NONE; + for (i = 0; i < NUM_SPECIES; i++) + { + if (gSpeciesInfo[i].formSpeciesIdTable) PARAMETRIZE { species = i; } + } + + const u16 *formSpeciesIdTable = gSpeciesInfo[species].formSpeciesIdTable; + for (i = 0; formSpeciesIdTable[i] != FORM_SPECIES_END; i++) + { + u32 formSpeciesId = formSpeciesIdTable[i]; + EXPECT_EQ(gSpeciesInfo[formSpeciesId].formSpeciesIdTable, formSpeciesIdTable); + } +} + +TEST("Form change tables contain only forms in the form species ID table") +{ + u32 i, j; + u32 species = SPECIES_NONE; + for (i = 0; i < NUM_SPECIES; i++) + { + if (gSpeciesInfo[i].formChangeTable) PARAMETRIZE { species = i; } + } + + const struct FormChange *formChangeTable = gSpeciesInfo[species].formChangeTable; + const u16 *formSpeciesIdTable = gSpeciesInfo[species].formSpeciesIdTable; + EXPECT(formSpeciesIdTable); + + for (i = 0; formChangeTable[i].method != FORM_CHANGE_TERMINATOR; i++) + { + for (j = 0; formSpeciesIdTable[j] != FORM_SPECIES_END; j++) + { + if (formChangeTable[i].targetSpecies == formSpeciesIdTable[j]) + { + break; + } + } + EXPECT(formSpeciesIdTable[j] != FORM_SPECIES_END); + } +} + +TEST("Form change targets have the appropriate species flags") +{ + u32 i; + u32 species = SPECIES_NONE; + for (i = 0; i < NUM_SPECIES; i++) + { + if (gSpeciesInfo[i].formChangeTable) PARAMETRIZE { species = i; } + } + + const struct FormChange *formChangeTable = gSpeciesInfo[species].formChangeTable; + for (i = 0; formChangeTable[i].method != FORM_CHANGE_TERMINATOR; i++) + { + const struct SpeciesInfo *targetSpeciesInfo = &gSpeciesInfo[formChangeTable[i].targetSpecies]; + switch (formChangeTable[i].method) + { + case FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM: + case FORM_CHANGE_BATTLE_MEGA_EVOLUTION_MOVE: + EXPECT(targetSpeciesInfo->isMegaEvolution); + break; + case FORM_CHANGE_BATTLE_PRIMAL_REVERSION: + EXPECT(targetSpeciesInfo->isPrimalReversion); + break; + case FORM_CHANGE_BATTLE_ULTRA_BURST: + EXPECT(targetSpeciesInfo->isUltraBurst); + break; + case FORM_CHANGE_BATTLE_GIGANTAMAX: + EXPECT(targetSpeciesInfo->isGigantamax); + break; + } + } +} diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 4823e3f17b..1528a3ccf9 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -4,6 +4,7 @@ #include "battle_anim.h" #include "battle_controllers.h" #include "characters.h" +#include "event_data.h" #include "fieldmap.h" #include "item_menu.h" #include "main.h" @@ -27,11 +28,25 @@ #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 -#define RNG_SEED_DEFAULT 0x00000000 +#if HQ_RANDOM == TRUE +#define RNG_SEED_DEFAULT {0, 0, 0, 0} +static inline bool32 RngSeedNotDefault(const rng_value_t *seed) +{ + return (seed->a | seed->b | seed->c | seed->ctr) != 0; +} +#else +#define RNG_SEED_DEFAULT 0x00000000 +static inline bool32 RngSeedNotDefault(const rng_value_t *seed) +{ + return *seed != RNG_SEED_DEFAULT; +} +#endif #undef Q_4_12 #define Q_4_12(n) (s32)((n) * 4096) @@ -254,11 +269,12 @@ static void BattleTest_Run(void *data) s32 i; u32 requiredPlayerPartySize; u32 requiredOpponentPartySize; + const rng_value_t defaultSeed = RNG_SEED_DEFAULT; const struct BattleTest *test = data; memset(&DATA, 0, sizeof(DATA)); - DATA.recordedBattle.rngSeed = RNG_SEED_DEFAULT; + DATA.recordedBattle.rngSeed = defaultSeed; DATA.recordedBattle.textSpeed = OPTIONS_TEXT_SPEED_FAST; // Set battle flags and opponent ids. switch (test->type) @@ -865,6 +881,12 @@ void TestRunner_Battle_CheckSwitch(u32 battlerId, u32 partyIndex) DATA.aiActionsPlayed[battlerId]++; } +void TestRunner_Battle_InvalidNoHPMon(u32 battlerId, u32 partyIndex) +{ + Test_ExitWithResult(TEST_RESULT_INVALID, "%s: INVALID: %s trying to send out a mon(id: %d) with 0 HP.", + gTestRunnerState.test->filename, BattlerIdentifier(battlerId), gBattlerPartyIndexes[battlerId]); +} + static bool32 CheckComparision(s32 val1, s32 val2, u32 cmp) { switch (cmp) @@ -1337,6 +1359,7 @@ static void CB2_BattleTest_NextParameter(void) if (++STATE->runParameter >= STATE->parameters) { SetMainCallback2(CB2_TestRunner); + ClearFlagAfterTest(); } else { @@ -1345,8 +1368,23 @@ static void CB2_BattleTest_NextParameter(void) } } +static inline rng_value_t MakeRngValue(const u16 seed) +{ + #if HQ_RANDOM == TRUE + int i; + rng_value_t result = {0, 0, seed, 1}; + for (i = 0; i < 16; i++) + { + _SFC32_Next(&result); + } + return result; + #else + return ISO_RANDOMIZE1(seed); + #endif +} static void CB2_BattleTest_NextTrial(void) { + ClearFlagAfterTest(); TearDownBattle(); SetMainCallback2(CB2_BattleTest_NextParameter); @@ -1368,7 +1406,7 @@ static void CB2_BattleTest_NextTrial(void) { PrintTestName(); gTestRunnerState.result = TEST_RESULT_PASS; - DATA.recordedBattle.rngSeed = ISO_RANDOMIZE1(STATE->runTrial); + DATA.recordedBattle.rngSeed = MakeRngValue(STATE->runTrial); DATA.queuedEvent = 0; DATA.lastActionTurn = 0; SetVariablesForRecordedBattle(&DATA.recordedBattle); @@ -1388,6 +1426,7 @@ static void BattleTest_TearDown(void *data) { // Free resources that aren't cleaned up when the battle was // aborted unexpectedly. + ClearFlagAfterTest(); if (STATE->tearDownBattle) TearDownBattle(); } @@ -1440,16 +1479,17 @@ void Randomly(u32 sourceLine, u32 passes, u32 trials, struct RandomlyContext ctx } else { - INVALID_IF(DATA.recordedBattle.rngSeed != RNG_SEED_DEFAULT, "RNG seed already set"); + const rng_value_t defaultSeed = RNG_SEED_DEFAULT; + INVALID_IF(RngSeedNotDefault(&DATA.recordedBattle.rngSeed), "RNG seed already set"); STATE->trials = 50; STATE->trialRatio = Q_4_12(1) / STATE->trials; - DATA.recordedBattle.rngSeed = 0; + DATA.recordedBattle.rngSeed = defaultSeed; } } -void RNGSeed_(u32 sourceLine, u32 seed) +void RNGSeed_(u32 sourceLine, rng_value_t seed) { - INVALID_IF(DATA.recordedBattle.rngSeed != RNG_SEED_DEFAULT, "RNG seed already set"); + INVALID_IF(RngSeedNotDefault(&DATA.recordedBattle.rngSeed), "RNG seed already set"); DATA.recordedBattle.rngSeed = seed; } @@ -1476,12 +1516,29 @@ const struct TestRunner gBattleTestRunner = .handleExitWithResult = BattleTest_HandleExitWithResult, }; +void SetFlagForTest(u32 sourceLine, u16 flagId) +{ + INVALID_IF(DATA.flagId != 0, "FLAG can only be set once per test"); + DATA.flagId = flagId; + FlagSet(flagId); +} + +void ClearFlagAfterTest(void) +{ + if (DATA.flagId != 0) + { + FlagClear(DATA.flagId); + DATA.flagId = 0; + } +} + void OpenPokemon(u32 sourceLine, u32 side, u32 species) { s32 i, data; 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 +1549,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];