diff --git a/README.md b/README.md index ce0b6b4c7..7b49d1992 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,27 @@ ## What is the pokeemerald Expansion? -The pokeemerald Expansion is a collection of feature branches that can be integrated into existing [pokeemerald](https://github.com/pret/pokeemerald) projects. +The Pokeemerald Expansion is a collection of feature branches that can be integrated into existing [pokeemerald](https://github.com/pret/pokeemerald) projects. -## What feature branches are included? +## What features are included? +- Upgraded battle engine. + - Fairy Type. + - Physical/Special/Status Category Split. + - New moves and abilities up to SwSh. + - Options to change behaviors and data by generation. + - Mega Evolution and Primal Reversion + - Z-Moves +- Pokémon Species from newer Generations (with the option to disable them if needed). + - Updates Hoenn's Regional Dex to match ORAS'. + - Updates National Dex incorporating all the new species. + - Option to change base stats by generation. + - New evolution methods. + - Hidden Abilities data (How to make them available is up to the user). +- Items from newer Generations and updated item effects for battle and field use. -- **[Battle Engine Upgrade](../tree/battle_engine):** Upgrades the battle engine in pokeemerald to newer Generation games' standards. It also adds newer moves and abilities. -- **[Pokémon Expansion](../tree/pokemon_expansion):** Adds Pokémon from newer Generations and makes them available in the National Dex. It also updates base stats and other Pokémon info. -- **[Item Expansion](../tree/item_expansion):** Adds items from newer Generations and also updates item effects for field use. -- **[master](../tree/master):** Combines the above branches into one single branch for the sake of convenience. Note that this branch is only updated once in a while, so you must merge manually if you want the latest features. +Certain mechanics, moves, abilities and species sprites are missing. For more information, see [the project's milestones](https://github.com/rh-hideout/pokeemerald-expansion/milestones). + +### [Documentation on features can be found here](https://github.com/rh-hideout/pokeemerald-expansion/wiki) ## Who maintains the project? @@ -17,9 +30,11 @@ 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. +### 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 :) + ## Can I contribute even if I'm not a member of ROM Hacking Hideout? -Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers. Please note that PRs to master are not accepted, as master is only intended to be a merged branch. +Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers. Don't feel discouraged if we take a bit to review your PR, we'll get to it. ## What is ROM Hacking Hideout? diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index dcafffe50..9ca1c9665 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1,3 +1,4 @@ +#include "config.h" #include "constants/battle.h" #include "constants/battle_anim.h" #include "constants/rgb.h" @@ -779,6 +780,31 @@ gBattleAnims_Moves:: .4byte Move_GLACIAL_LANCE .4byte Move_ASTRAL_BARRAGE .4byte Move_EERIE_SPELL +@@@@LA MOVES + .4byte Move_DIRE_CLAW + .4byte Move_PSYSHIELD_BASH + .4byte Move_POWER_SHIFT + .4byte Move_STONE_AXE + .4byte Move_SPRINGTIDE_STORM + .4byte Move_MYSTICAL_POWER + .4byte Move_RAGING_FURY + .4byte Move_WAVE_CRASH + .4byte Move_CHLOROBLAST + .4byte Move_MOUNTAIN_GALE + .4byte Move_VICTORY_DANCE + .4byte Move_HEADLONG_RUSH + .4byte Move_BARB_BARRAGE + .4byte Move_ESPER_WING + .4byte Move_BITTER_MALICE + .4byte Move_SHELTER + .4byte Move_TRIPLE_ARROWS + .4byte Move_INFERNAL_PARADE + .4byte Move_CEASELESS_EDGE + .4byte Move_BLEAKWIND_STORM + .4byte Move_WILDBOLT_STORM + .4byte Move_SANDSEAR_STORM + .4byte Move_LUNAR_BLESSING + .4byte Move_TAKE_HEART @@@@ Z MOVES .4byte Move_BREAKNECK_BLITZ .4byte Move_ALL_OUT_PUMMELING @@ -868,7 +894,8 @@ gBattleAnims_General:: .4byte General_AquaRingHeal @ B_ANIM_AQUA_RING_HEAL .4byte General_BeakBlastSetUp @ B_ANIM_BEAK_BLAST_SETUP .4byte General_ShellTrapSetUp @ B_ANIM_SHELL_TRAP_SETUP - .4byte General_ZMoveActivate @ B_ANIM_ZMOVE_ACTIVATE + .4byte General_ZMoveActivate @ B_ANIM_ZMOVE_ACTIVATE + .4byte General_AffectionHangedOn @ B_ANIM_AFFECTION_HANGED_ON .align 2 gBattleAnims_Special:: @@ -14269,55 +14296,51 @@ Move_POLTERGEIST:: end Move_CORROSIVE_GAS:: - end @to do: - Move_COACHING:: - end @to do: - Move_FLIP_TURN:: - end @to do: - Move_TRIPLE_AXEL:: - end @to do: - Move_DUAL_WINGBEAT:: - end @to do: - Move_SCORCHING_SANDS:: - end @to do: + end @to do Move_JUNGLE_HEALING:: goto Move_AROMATHERAPY Move_WICKED_BLOW:: - end @to do: - Move_SURGING_STRIKES:: - end @to do: - Move_THUNDER_CAGE:: - end @to do: - Move_DRAGON_ENERGY:: - end @to do: - Move_FREEZING_GLARE:: - end @to do: - Move_FIERY_WRATH:: - end @to do: - Move_THUNDEROUS_KICK:: - end @to do: - Move_GLACIAL_LANCE:: - end @to do: - Move_ASTRAL_BARRAGE:: - end @to do: - Move_EERIE_SPELL:: - end @to do: +Move_DIRE_CLAW:: +Move_PSYSHIELD_BASH:: +Move_POWER_SHIFT:: +Move_STONE_AXE:: +Move_SPRINGTIDE_STORM:: +Move_MYSTICAL_POWER:: +Move_RAGING_FURY:: +Move_WAVE_CRASH:: +Move_CHLOROBLAST:: +Move_MOUNTAIN_GALE:: +Move_VICTORY_DANCE:: +Move_HEADLONG_RUSH:: +Move_BARB_BARRAGE:: +Move_ESPER_WING:: +Move_BITTER_MALICE:: +Move_SHELTER:: +Move_TRIPLE_ARROWS:: +Move_INFERNAL_PARADE:: +Move_CEASELESS_EDGE:: +Move_BLEAKWIND_STORM:: +Move_WILDBOLT_STORM:: +Move_SANDSEAR_STORM:: +Move_LUNAR_BLESSING:: +Move_TAKE_HEART:: + end @to do @@@@@@@@@@@@@@@@@@@@@@@ GEN 1-3 @@@@@@@@@@@@@@@@@@@@@@@ Move_NONE: @@ -14697,14 +14720,14 @@ Move_DOUBLE_EDGE: createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 0 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 1 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 @@ -16341,7 +16364,7 @@ Move_HORN_ATTACK: Move_FURY_ATTACK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, 0, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, ANIM_ATTACKER, 2 choosetwoturnanim FuryAttackRight, FuryAttackLeft FuryAttackContinue: createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 @@ -16490,7 +16513,7 @@ Move_LOW_KICK: createsprite gSlidingKickSpriteTemplate, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0 delay 4 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, ANIM_TARGET, 2 playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 @@ -16735,7 +16758,7 @@ SkullBashSetUpHeadDown: createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0 playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 2 waitforvisualfinish createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 24, 0, 0, 10, 1 waitforvisualfinish @@ -17854,7 +17877,7 @@ Move_MIST_BALL: createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 1, 1, RGB(23, 16, 31), 16, RGB_WHITE, 16 delay 0 playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_LoadMistTiles, 5 + createvisualtask AnimTask_MistBallFog, 5 createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 3, 0, 16, RGB_WHITE delay 8 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 70, 0 @@ -22454,14 +22477,14 @@ Move_ARM_THRUST: loadspritegfx ANIM_TAG_IMPACT splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 0 delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3 delay 4 playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3 waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 1 playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET choosetwoturnanim ArmThrustRight, ArmThrustLeft ArmThrustContinue: @@ -23548,26 +23571,25 @@ Move_SECRET_POWER: jumpargeq 0, BATTLE_TERRAIN_PUDDLE, Move_MUD_SHOT jumpargeq 0, BATTLE_TERRAIN_MARSH, Move_MUD_SHOT jumpargeq 0, BATTLE_TERRAIN_SWAMP, Move_MUD_SHOT -.if B_SECRET_POWER_ANIMATION >= GEN_7 - jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_ICE_SHARD -.else - jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE -.endif jumpargeq 0, BATTLE_TERRAIN_ICE, Move_ICE_SHARD jumpargeq 0, BATTLE_TERRAIN_VOLCANO, Move_INCINERATE jumpargeq 0, BATTLE_TERRAIN_DISTORTION_WORLD, Move_POUND jumpargeq 0, BATTLE_TERRAIN_SPACE, Move_SWIFT jumpargeq 0, BATTLE_TERRAIN_ULTRA_SPACE, Move_PSYWAVE .if B_SECRET_POWER_ANIMATION >= GEN_7 + jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_ICE_SHARD jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_SPIT_UP goto Move_SPIT_UP -.elseif B_SECRET_POWER_ANIMATION == GEN_6 +.elseif B_SECRET_POWER_ANIMATION >= GEN_6 + jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_BODY_SLAM goto Move_BODY_SLAM -.elseif B_SECRET_POWER_ANIMATION == GEN_5 || B_SECRET_POWER_ANIMATION == GEN_4 +.elseif B_SECRET_POWER_ANIMATION >= GEN_4 + jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_BODY_SLAM goto Move_MUD_SLAP .else + jumpargeq 0, BATTLE_TERRAIN_SNOW, Move_AVALANCHE jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_STRENGTH goto Move_SLAM .endif @@ -24884,6 +24906,27 @@ PrimalReversionParticles: delay 3 return +General_AffectionHangedOn:: + loadspritegfx ANIM_TAG_RED_HEART + loopsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER, 12, 3 + createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER + delay 15 + launchtask AnimTask_AffectionHangedOn 0x5 0x0 + jumpargeq 0x0, FRIENDSHIP_100_TO_149, General_AffectionHangedOn_3Hearts + jumpargeq 0x0, FRIENDSHIP_150_TO_199, General_AffectionHangedOn_4Hearts + jumpargeq 0x0, FRIENDSHIP_200_TO_254, General_AffectionHangedOn_5Hearts + createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -384, -31 +General_AffectionHangedOn_5Hearts: + createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -128, -22 +General_AffectionHangedOn_4Hearts: + createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, 416, -38 +General_AffectionHangedOn_3Hearts: + createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, 160, -32 + createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -256, -40 + createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, 128, -16 + waitforvisualfinish + end + SnatchMoveTrySwapFromSubstitute: createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 jumprettrue SnatchMoveSwapSubstituteForMon diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 152443151..122a46212 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1,3 +1,4 @@ +#include "config.h" #include "constants/global.h" #include "constants/battle.h" #include "constants/pokemon.h" @@ -415,6 +416,41 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectExtremeEvoboost @ EFFECT_EXTREME_EVOBOOST .4byte BattleScript_EffectTerrainHit @ EFFECT_DAMAGE_SET_TERRAIN +BattleScript_AffectionBasedEndurance:: + playanimation BS_TARGET, B_ANIM_AFFECTION_HANGED_ON + printstring STRINGID_TARGETTOUGHEDITOUT + waitmessage B_WAIT_TIME_LONG + return + +BattleScript_AffectionBasedStatusHeal:: + jumpifstatus BS_ATTACKER, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AffectionBasedStatus_HealPoisonString + jumpifstatus BS_ATTACKER, STATUS1_SLEEP, BattleScript_AffectionBasedStatus_HealSleepString + jumpifstatus BS_ATTACKER, STATUS1_PARALYSIS, BattleScript_AffectionBasedStatus_HealParalysisString + jumpifstatus BS_ATTACKER, STATUS1_BURN, BattleScript_AffectionBasedStatus_HealBurnString + jumpifstatus BS_ATTACKER, STATUS1_FREEZE, BattleScript_AffectionBasedStatus_HealFreezeString + end2 +BattleScript_AffectionBasedStatus_HealPoisonString: + printstring STRINGID_ATTACKEREXPELLEDTHEPOISON + goto BattleScript_AffectionBasedStatusHeal_Continue +BattleScript_AffectionBasedStatus_HealSleepString: + printstring STRINGID_ATTACKERSHOOKITSELFAWAKE + goto BattleScript_AffectionBasedStatusHeal_Continue +BattleScript_AffectionBasedStatus_HealParalysisString: + printstring STRINGID_ATTACKERBROKETHROUGHPARALYSIS + goto BattleScript_AffectionBasedStatusHeal_Continue +BattleScript_AffectionBasedStatus_HealBurnString: + printstring STRINGID_ATTACKERHEALEDITSBURN + goto BattleScript_AffectionBasedStatusHeal_Continue +BattleScript_AffectionBasedStatus_HealFreezeString: + printstring STRINGID_ATTACKERMELTEDTHEICE +BattleScript_AffectionBasedStatusHeal_Continue: + waitmessage B_WAIT_TIME_LONG + clearstatus BS_ATTACKER + waitstate + updatestatusicon BS_ATTACKER + waitstate + end2 + BattleScript_EffectSteelBeam:: attackcanceler attackstring @@ -1981,12 +2017,11 @@ BattleScript_EffectHitSwitchTarget: resultmessage waitmessage B_WAIT_TIME_LONG tryfaintmon BS_TARGET - moveendcase MOVEEND_MAGICIAN @ possibly others? + moveendall jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted tryhitswitchtarget BattleScript_EffectHitSwitchTargetMoveEnd BattleScript_EffectHitSwitchTargetMoveEnd: - moveendall end BattleScript_EffectClearSmog: @@ -7257,6 +7292,10 @@ BattleScript_SelectingNotAllowedStuffCheeks:: printselectionstring STRINGID_STUFFCHEEKSCANTSELECT endselectionscript +BattleScript_SelectingNotAllowedStuffCheeksInPalace:: + printstring STRINGID_STUFFCHEEKSCANTSELECT + goto BattleScript_SelectingUnusableMoveInPalace + BattleScript_SelectingNotAllowedBelch:: printselectionstring STRINGID_BELCHCANTSELECT endselectionscript @@ -7417,6 +7456,7 @@ BattleScript_MagicCoatBounce:: printfromtable gMagicCoatBounceStringIds waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP + bicword gHitMarker, HITMARKER_NO_ATTACKSTRING setmagiccoattarget BS_ATTACKER return @@ -9245,14 +9285,34 @@ BattleScript_SelectingNotAllowedMoveChoiceItem:: printselectionstring STRINGID_ITEMALLOWSONLYYMOVE endselectionscript +BattleScript_SelectingNotAllowedMoveChoiceItemInPalace:: + printstring STRINGID_ITEMALLOWSONLYYMOVE + goto BattleScript_SelectingUnusableMoveInPalace + BattleScript_SelectingNotAllowedMoveGorillaTactics:: printselectionstring STRINGID_ABILITYALLOWSONLYMOVE endselectionscript +BattleScript_SelectingNotAllowedMoveGorillaTacticsInPalace:: + printstring STRINGID_ABILITYALLOWSONLYMOVE + goto BattleScript_SelectingUnusableMoveInPalace + BattleScript_SelectingNotAllowedMoveAssaultVest:: printselectionstring STRINGID_ASSAULTVESTDOESNTALLOW endselectionscript +BattleScript_SelectingNotAllowedMoveAssaultVestInPalace:: + printstring STRINGID_ASSAULTVESTDOESNTALLOW + goto BattleScript_SelectingUnusableMoveInPalace + +BattleScript_SelectingNotAllowedPlaceholder:: + printselectionstring STRINGID_NOTDONEYET + endselectionscript + +BattleScript_SelectingNotAllowedPlaceholderInPalace:: + printstring STRINGID_NOTDONEYET + goto BattleScript_SelectingUnusableMoveInPalace + BattleScript_HangedOnMsg:: playanimation BS_TARGET, B_ANIM_HANGED_ON printstring STRINGID_PKMNHUNGONWITHX diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index ef4feb25f..ecd3103ae 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -435,11 +435,15 @@ AI_CGM_BetterWhenAudienceExcited: AI_CGM_BetterWhenAudienceExcited_1stUp: @ BUG: Should be if_appeal_num_eq 0 @ 1st up on 1st appeal excitement will always be 0 - if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_Not1stAppeal +.ifdef BUGFIX + if_appeal_num_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal +.else + if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal +.endif if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax end -AI_CGM_BetterWhenAudienceExcited_Not1stAppeal: +AI_CGM_BetterWhenAudienceExcited_1stAppeal: if_random_less_than 125, AI_CGM_End score -15 end @@ -542,7 +546,11 @@ AI_CGM_TargetMonWithJudgesAttention: end AI_CGM_TargetMonWithJudgesAttention_CheckMon1: if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 +.ifdef BUGFIX + if_not_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 +.else if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 +.endif if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +2 if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 @@ -551,7 +559,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1: AI_CGM_TargetMonWithJudgesAttention_CheckMon2: if_user_order_eq MON_2, AI_CGM_End if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 +.ifdef BUGFIX + if_not_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 +.else if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 +.endif if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +2 if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 @@ -560,7 +572,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2: AI_CGM_TargetMonWithJudgesAttention_CheckMon3: if_user_order_eq MON_3, AI_CGM_End if_cannot_participate MON_3, AI_CGM_End +.ifdef BUGFIX + if_not_used_combo_starter MON_3, AI_CGM_End +.else if_used_combo_starter MON_3, AI_CGM_End +.endif if_random_less_than 125, AI_CGM_End score +2 if_not_completed_combo MON_3, AI_CGM_End diff --git a/data/maps/AbandonedShip_HiddenFloorRooms/map.json b/data/maps/AbandonedShip_HiddenFloorRooms/map.json index 8b6e05f12..0c6962688 100644 --- a/data/maps/AbandonedShip_HiddenFloorRooms/map.json +++ b/data/maps/AbandonedShip_HiddenFloorRooms/map.json @@ -51,7 +51,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "AbandonedShip_HiddenFloorRooms_EventScript_ItemTM18", - "flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM_18" + "flag": "FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM18" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/AbandonedShip_Room_B1F/map.json b/data/maps/AbandonedShip_Room_B1F/map.json index f5d14ac59..537f0ec64 100644 --- a/data/maps/AbandonedShip_Room_B1F/map.json +++ b/data/maps/AbandonedShip_Room_B1F/map.json @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "AbandonedShip_Room_B1F_EventScript_ItemTM13", - "flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM_13" + "flag": "FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM13" } ], "warp_events": [ diff --git a/data/maps/BattleFrontier_Lounge7/scripts.inc b/data/maps/BattleFrontier_Lounge7/scripts.inc index c52df3caf..9528dd11d 100644 --- a/data/maps/BattleFrontier_Lounge7/scripts.inc +++ b/data/maps/BattleFrontier_Lounge7/scripts.inc @@ -67,51 +67,61 @@ BattleFrontier_Lounge7_EventScript_ChooseNewLeftTutorMove:: BattleFrontier_Lounge7_EventScript_Softboiled:: setvar VAR_0x8008, 16 + setvar VAR_0x8005, MOVE_SOFT_BOILED goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_SeismicToss:: setvar VAR_0x8008, 24 + setvar VAR_0x8005, MOVE_SEISMIC_TOSS goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_DreamEater:: setvar VAR_0x8008, 24 + setvar VAR_0x8005, MOVE_DREAM_EATER goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_MegaPunch:: setvar VAR_0x8008, 24 + setvar VAR_0x8005, MOVE_MEGA_PUNCH goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_MegaKick:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_MEGA_KICK goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_BodySlam:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_BODY_SLAM goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_RockSlide:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_ROCK_SLIDE goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_Counter:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_COUNTER goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_ThunderWave:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_THUNDER_WAVE goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_SwordsDance:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_SWORDS_DANCE goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end @@ -135,7 +145,6 @@ BattleFrontier_Lounge7_EventScript_ChooseRightTutorMove:: waitmessage special ShowBattlePointsWindow setvar VAR_TEMP_E, 1 - setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_2 setvar VAR_0x8006, 0 special ShowScrollableMultichoice waitstate @@ -159,7 +168,6 @@ BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove:: message BattleFrontier_Lounge7_Text_TeachWhichMove waitmessage setvar VAR_TEMP_E, 1 - setvar VAR_0x8004, SCROLL_MULTI_BF_MOVE_TUTOR_2 setvar VAR_0x8006, 1 special ShowScrollableMultichoice waitstate @@ -181,51 +189,61 @@ BattleFrontier_Lounge7_EventScript_ChooseNewRightTutorMove:: BattleFrontier_Lounge7_EventScript_DefenseCurl:: setvar VAR_0x8008, 16 + setvar VAR_0x8005, MOVE_DEFENSE_CURL goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_Snore:: setvar VAR_0x8008, 24 + setvar VAR_0x8005, MOVE_SNORE goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_MudSlap:: setvar VAR_0x8008, 24 + setvar VAR_0x8005, MOVE_MUD_SLAP goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_Swift:: setvar VAR_0x8008, 24 + setvar VAR_0x8005, MOVE_SWIFT goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_IcyWind:: setvar VAR_0x8008, 24 + setvar VAR_0x8005, MOVE_ICY_WIND goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_Endure:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_ENDURE goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_PsychUp:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_PSYCH_UP goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_IcePunch:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_ICE_PUNCH goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_ThunderPunch:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_THUNDER_PUNCH goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end BattleFrontier_Lounge7_EventScript_FirePunch:: setvar VAR_0x8008, 48 + setvar VAR_0x8005, MOVE_FIRE_PUNCH goto BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection end @@ -246,11 +264,8 @@ BattleFrontier_Lounge7_EventScript_CancelChooseMon:: @ VAR_TEMP_D is the move selection @ VAR_TEMP_E is which move tutor was spoken to BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: - copyvar VAR_0x8004, VAR_TEMP_D - copyvar VAR_0x8005, VAR_TEMP_E special BufferBattleFrontierTutorMoveName buffernumberstring STR_VAR_2, VAR_0x8008 - copyvar VAR_0x8004, VAR_TEMP_C msgbox BattleFrontier_Lounge7_Text_MoveWillBeXBattlePoints, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, BattleFrontier_Lounge7_EventScript_ChooseNewMove specialvar VAR_TEMP_1, GetFrontierBattlePoints @@ -261,7 +276,6 @@ BattleFrontier_Lounge7_EventScript_ConfirmMoveSelection:: BattleFrontier_Lounge7_EventScript_TeachTutorMove:: msgbox BattleFrontier_Lounge7_Text_TeachMoveToWhichMon, MSGBOX_DEFAULT - special GetBattleFrontierTutorMoveIndex fadescreen FADE_TO_BLACK special CloseBattlePointsWindow special CloseBattleFrontierTutorWindow diff --git a/data/maps/MeteorFalls_1F_1R/map.json b/data/maps/MeteorFalls_1F_1R/map.json index f177410e2..145289ce7 100644 --- a/data/maps/MeteorFalls_1F_1R/map.json +++ b/data/maps/MeteorFalls_1F_1R/map.json @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "MeteorFalls_1F_1R_EventScript_ItemTM23", - "flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM_23" + "flag": "FLAG_ITEM_METEOR_FALLS_1F_1R_TM23" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/MeteorFalls_B1F_2R/map.json b/data/maps/MeteorFalls_B1F_2R/map.json index 57276d86d..7fc43762f 100644 --- a/data/maps/MeteorFalls_B1F_2R/map.json +++ b/data/maps/MeteorFalls_B1F_2R/map.json @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "MeteorFalls_B1F_2R_EventScript_ItemTM02", - "flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM_02" + "flag": "FLAG_ITEM_METEOR_FALLS_B1F_2R_TM02" } ], "warp_events": [ diff --git a/data/maps/MtPyre_6F/map.json b/data/maps/MtPyre_6F/map.json index dc2e7f9b0..88c091f3e 100644 --- a/data/maps/MtPyre_6F/map.json +++ b/data/maps/MtPyre_6F/map.json @@ -38,7 +38,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "MtPyre_6F_EventScript_ItemTM30", - "flag": "FLAG_ITEM_MT_PYRE_6F_TM_30" + "flag": "FLAG_ITEM_MT_PYRE_6F_TM30" }, { "graphics_id": "OBJ_EVENT_GFX_PSYCHIC_M", diff --git a/data/maps/MtPyre_Exterior/map.json b/data/maps/MtPyre_Exterior/map.json index 58c865305..2df79262c 100644 --- a/data/maps/MtPyre_Exterior/map.json +++ b/data/maps/MtPyre_Exterior/map.json @@ -38,7 +38,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "MtPyre_Exterior_EventScript_ItemTM48", - "flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM_48" + "flag": "FLAG_ITEM_MT_PYRE_EXTERIOR_TM48" } ], "warp_events": [ diff --git a/data/maps/OldaleTown/map.json b/data/maps/OldaleTown/map.json index ee6101ff6..cc4bd008c 100644 --- a/data/maps/OldaleTown/map.json +++ b/data/maps/OldaleTown/map.json @@ -158,7 +158,7 @@ "y": 9, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "OldaleTown_EventScript_CitySign" + "script": "OldaleTown_EventScript_TownSign" }, { "type": "sign", diff --git a/data/maps/OldaleTown/scripts.inc b/data/maps/OldaleTown/scripts.inc index 3f43386cb..b2c25a6df 100644 --- a/data/maps/OldaleTown/scripts.inc +++ b/data/maps/OldaleTown/scripts.inc @@ -29,8 +29,8 @@ OldaleTown_EventScript_MoveMartEmployee:: setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN return -OldaleTown_EventScript_CitySign:: - msgbox OldaleTown_Text_CitySign, MSGBOX_SIGN +OldaleTown_EventScript_TownSign:: + msgbox OldaleTown_Text_TownSign, MSGBOX_SIGN end OldaleTown_EventScript_Girl:: @@ -395,7 +395,7 @@ OldaleTown_Text_BrendanLetsGoBack: .string "LAB now.\l" .string "{PLAYER}, you should hustle back, too.$" -OldaleTown_Text_CitySign: +OldaleTown_Text_TownSign: .string "OLDALE TOWN\n" .string "“Where things start off scarce.”$" diff --git a/data/maps/PacifidlogTown_House2/scripts.inc b/data/maps/PacifidlogTown_House2/scripts.inc index 3dedcec30..175b477e7 100644 --- a/data/maps/PacifidlogTown_House2/scripts.inc +++ b/data/maps/PacifidlogTown_House2/scripts.inc @@ -11,9 +11,9 @@ PacifidlogTown_House2_EventScript_FanClubYoungerBrother:: call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_FirstMonAssessment setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER specialvar VAR_RESULT, GetLeadMonFriendshipScore - goto_if_ge VAR_RESULT, 4, PacifidlogTown_House2_EventScript_GiveReturn + goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, PacifidlogTown_House2_EventScript_GiveReturn specialvar VAR_RESULT, GetLeadMonFriendshipScore - goto_if_ge VAR_RESULT, 2, PacifidlogTown_House2_EventScript_PutInEffort + goto_if_ge VAR_RESULT, FRIENDSHIP_50_TO_99, PacifidlogTown_House2_EventScript_PutInEffort goto PacifidlogTown_House2_EventScript_GiveFrustration end diff --git a/data/maps/Route111/map.json b/data/maps/Route111/map.json index 4621591e4..566e7c962 100644 --- a/data/maps/Route111/map.json +++ b/data/maps/Route111/map.json @@ -262,7 +262,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "Route111_EventScript_ItemTM37", - "flag": "FLAG_ITEM_ROUTE_111_TM_37" + "flag": "FLAG_ITEM_ROUTE_111_TM37" }, { "graphics_id": "OBJ_EVENT_GFX_BERRY_TREE", diff --git a/data/maps/Route113/map.json b/data/maps/Route113/map.json index 422b88e6e..783406346 100644 --- a/data/maps/Route113/map.json +++ b/data/maps/Route113/map.json @@ -451,7 +451,7 @@ "y": 5, "elevation": 3, "item": "ITEM_TM32", - "flag": "FLAG_HIDDEN_ITEM_ROUTE_113_TM_32" + "flag": "FLAG_HIDDEN_ITEM_ROUTE_113_TM32" }, { "type": "hidden_item", diff --git a/data/maps/Route115/map.json b/data/maps/Route115/map.json index bbac132f5..a5e2b10f9 100644 --- a/data/maps/Route115/map.json +++ b/data/maps/Route115/map.json @@ -166,7 +166,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "Route115_EventScript_ItemTM01", - "flag": "FLAG_ITEM_ROUTE_115_TM_01" + "flag": "FLAG_ITEM_ROUTE_115_TM01" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/SafariZone_Northwest/map.json b/data/maps/SafariZone_Northwest/map.json index 1e27def2c..20fffd049 100644 --- a/data/maps/SafariZone_Northwest/map.json +++ b/data/maps/SafariZone_Northwest/map.json @@ -49,7 +49,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SafariZone_Northwest_EventScript_ItemTM22", - "flag": "FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM_22" + "flag": "FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM22" } ], "warp_events": [], diff --git a/data/maps/ScorchedSlab/map.json b/data/maps/ScorchedSlab/map.json index e90f1f5c1..cb9789490 100644 --- a/data/maps/ScorchedSlab/map.json +++ b/data/maps/ScorchedSlab/map.json @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "ScorchedSlab_EventScript_ItemTM11", - "flag": "FLAG_ITEM_SCORCHED_SLAB_TM_11" + "flag": "FLAG_ITEM_SCORCHED_SLAB_TM11" } ], "warp_events": [ diff --git a/data/maps/SeafloorCavern_Room9/map.json b/data/maps/SeafloorCavern_Room9/map.json index 0557b0c3e..7942b3d1d 100644 --- a/data/maps/SeafloorCavern_Room9/map.json +++ b/data/maps/SeafloorCavern_Room9/map.json @@ -90,7 +90,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "SeafloorCavern_Room9_EventScript_ItemTM26", - "flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26" + "flag": "FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM26" }, { "graphics_id": "OBJ_EVENT_GFX_KYOGRE_ASLEEP", diff --git a/data/maps/ShoalCave_LowTideIceRoom/map.json b/data/maps/ShoalCave_LowTideIceRoom/map.json index ea4f0cedf..3195d408b 100644 --- a/data/maps/ShoalCave_LowTideIceRoom/map.json +++ b/data/maps/ShoalCave_LowTideIceRoom/map.json @@ -25,7 +25,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "ShoalCave_LowTideIceRoom_EventScript_ItemTM07", - "flag": "FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM_07" + "flag": "FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM07" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/maps/SlateportCity_PokemonFanClub/scripts.inc b/data/maps/SlateportCity_PokemonFanClub/scripts.inc index b97e29a02..3b5042861 100644 --- a/data/maps/SlateportCity_PokemonFanClub/scripts.inc +++ b/data/maps/SlateportCity_PokemonFanClub/scripts.inc @@ -192,7 +192,7 @@ SlateportCity_PokemonFanClub_EventScript_SootheBellWoman:: goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT specialvar VAR_RESULT, GetLeadMonFriendshipScore - goto_if_ge VAR_RESULT, 4, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell + goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell release end diff --git a/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc b/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc index 84cdef029..97e522471 100644 --- a/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc +++ b/data/maps/VerdanturfTown_FriendshipRatersHouse/scripts.inc @@ -7,13 +7,13 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater:: msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT specialvar VAR_RESULT, GetLeadMonFriendshipScore switch VAR_RESULT - case 0, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou - case 1, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary - case 2, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou - case 3, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou - case 4, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot - case 5, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy - case 6, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou + case FRIENDSHIP_NONE, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou + case FRIENDSHIP_1_TO_49, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary + case FRIENDSHIP_50_TO_99, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou + case FRIENDSHIP_100_TO_149, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou + case FRIENDSHIP_150_TO_199, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot + case FRIENDSHIP_200_TO_254, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy + case FRIENDSHIP_MAX, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou release end diff --git a/data/maps/VictoryRoad_B1F/map.json b/data/maps/VictoryRoad_B1F/map.json index 6e290ce6d..68b013ef4 100644 --- a/data/maps/VictoryRoad_B1F/map.json +++ b/data/maps/VictoryRoad_B1F/map.json @@ -246,7 +246,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "VictoryRoad_B1F_EventScript_ItemTM29", - "flag": "FLAG_ITEM_VICTORY_ROAD_B1F_TM_29" + "flag": "FLAG_ITEM_VICTORY_ROAD_B1F_TM29" }, { "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", diff --git a/data/scripts/move_tutors.inc b/data/scripts/move_tutors.inc index 4155969a0..afb772bb1 100644 --- a/data/scripts/move_tutors.inc +++ b/data/scripts/move_tutors.inc @@ -7,7 +7,7 @@ SlateportCity_PokemonFanClub_EventScript_SwaggerTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SwaggerDeclined msgbox MoveTutor_Text_SwaggerWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_SWAGGER + setvar VAR_0x8005, MOVE_SWAGGER call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SwaggerDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_SWAGGER @@ -33,7 +33,7 @@ MauvilleCity_EventScript_RolloutTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_RolloutDeclined msgbox MoveTutor_Text_RolloutWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_ROLLOUT + setvar VAR_0x8005, MOVE_ROLLOUT call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_RolloutDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_ROLLOUT @@ -59,7 +59,7 @@ VerdanturfTown_PokemonCenter_1F_EventScript_FuryCutterTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_FuryCutterDeclined msgbox MoveTutor_Text_FuryCutterWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_FURY_CUTTER + setvar VAR_0x8005, MOVE_FURY_CUTTER call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_FuryCutterDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_FURY_CUTTER @@ -85,7 +85,7 @@ LavaridgeTown_House_EventScript_MimicTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MimicDeclined msgbox MoveTutor_Text_MimicWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_MIMIC + setvar VAR_0x8005, MOVE_MIMIC call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MimicDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_MIMIC @@ -111,7 +111,7 @@ FallarborTown_Mart_EventScript_MetronomeTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_MetronomeDeclined msgbox MoveTutor_Text_MetronomeWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_METRONOME + setvar VAR_0x8005, MOVE_METRONOME call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_MetronomeDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_METRONOME @@ -137,7 +137,7 @@ FortreeCity_House2_EventScript_SleepTalkTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SleepTalkDeclined msgbox MoveTutor_Text_SleepTalkWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_SLEEP_TALK + setvar VAR_0x8005, MOVE_SLEEP_TALK call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SleepTalkDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_SLEEP_TALK @@ -163,7 +163,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_SubstituteTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_SubstituteDeclined msgbox MoveTutor_Text_SubstituteWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_SUBSTITUTE + setvar VAR_0x8005, MOVE_SUBSTITUTE call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_SubstituteDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_SUBSTITUTE @@ -189,7 +189,7 @@ MossdeepCity_EventScript_DynamicPunchTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DynamicPunchDeclined msgbox MoveTutor_Text_DynamicPunchWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_DYNAMIC_PUNCH + setvar VAR_0x8005, MOVE_DYNAMIC_PUNCH call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DynamicPunchDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_DYNAMICPUNCH @@ -215,7 +215,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_DoubleEdgeTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_DoubleEdgeDeclined msgbox MoveTutor_Text_DoubleEdgeWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_DOUBLE_EDGE + setvar VAR_0x8005, MOVE_DOUBLE_EDGE call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_DoubleEdgeDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_DOUBLE_EDGE @@ -241,7 +241,7 @@ PacifidlogTown_PokemonCenter_1F_EventScript_ExplosionTutor:: call MoveTutor_EventScript_CanOnlyBeLearnedOnce goto_if_eq VAR_RESULT, NO, MoveTutor_EventScript_ExplosionDeclined msgbox MoveTutor_Text_ExplosionWhichMon, MSGBOX_DEFAULT - setvar VAR_0x8005, TUTOR_MOVE_EXPLOSION + setvar VAR_0x8005, MOVE_EXPLOSION call MoveTutor_EventScript_OpenPartyMenu goto_if_eq VAR_RESULT, 0, MoveTutor_EventScript_ExplosionDeclined setflag FLAG_MOVE_TUTOR_TAUGHT_EXPLOSION diff --git a/data/specials.inc b/data/specials.inc index b4d0ecf90..a1b2fd201 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -486,7 +486,6 @@ gSpecials:: def_special CloseBattleFrontierTutorWindow def_special ScrollableMultichoice_RedrawPersistentMenu def_special ChooseMonForMoveTutor - def_special GetBattleFrontierTutorMoveIndex def_special ScrollableMultichoice_ClosePersistentMenu def_special DoDeoxysRockInteraction def_special SetDeoxysRockPalette diff --git a/gflib/sprite.c b/gflib/sprite.c index 9fc597cc3..cbcd6fb7c 100644 --- a/gflib/sprite.c +++ b/gflib/sprite.c @@ -103,7 +103,7 @@ typedef void (*AffineAnimCmdFunc)(u8 matrixNum, struct Sprite *); #define DUMMY_OAM_DATA \ { \ .y = DISPLAY_HEIGHT, \ - .affineMode = 0, \ + .affineMode = ST_OAM_AFFINE_OFF, \ .objMode = 0, \ .mosaic = FALSE, \ .bpp = 0, \ diff --git a/graphics/battle_anims/backgrounds/new/aeroblast.pal b/graphics/battle_anims/backgrounds/aeroblast.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/aeroblast.pal rename to graphics/battle_anims/backgrounds/aeroblast.pal diff --git a/graphics/battle_anims/backgrounds/new/aeroblast_map.bin b/graphics/battle_anims/backgrounds/aeroblast_map.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/aeroblast_map.bin rename to graphics/battle_anims/backgrounds/aeroblast_map.bin diff --git a/graphics/battle_anims/backgrounds/new/aeroblast_tiles.png b/graphics/battle_anims/backgrounds/aeroblast_tiles.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/aeroblast_tiles.png rename to graphics/battle_anims/backgrounds/aeroblast_tiles.png diff --git a/graphics/battle_anims/backgrounds/new/aura_sphere.pal b/graphics/battle_anims/backgrounds/aura_sphere.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/aura_sphere.pal rename to graphics/battle_anims/backgrounds/aura_sphere.pal diff --git a/graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin b/graphics/battle_anims/backgrounds/blackhole_eclipse.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin rename to graphics/battle_anims/backgrounds/blackhole_eclipse.bin diff --git a/graphics/battle_anims/backgrounds/new/blackhole_eclipse.png b/graphics/battle_anims/backgrounds/blackhole_eclipse.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/blackhole_eclipse.png rename to graphics/battle_anims/backgrounds/blackhole_eclipse.png diff --git a/graphics/battle_anims/backgrounds/new/bloom_doom.bin b/graphics/battle_anims/backgrounds/bloom_doom.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/bloom_doom.bin rename to graphics/battle_anims/backgrounds/bloom_doom.bin diff --git a/graphics/battle_anims/backgrounds/new/bloom_doom.pal b/graphics/battle_anims/backgrounds/bloom_doom.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/bloom_doom.pal rename to graphics/battle_anims/backgrounds/bloom_doom.pal diff --git a/graphics/battle_anims/backgrounds/new/bloom_doom.png b/graphics/battle_anims/backgrounds/bloom_doom.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/bloom_doom.png rename to graphics/battle_anims/backgrounds/bloom_doom.png diff --git a/graphics/battle_anims/backgrounds/new/bolt_strike.bin b/graphics/battle_anims/backgrounds/bolt_strike.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/bolt_strike.bin rename to graphics/battle_anims/backgrounds/bolt_strike.bin diff --git a/graphics/battle_anims/backgrounds/new/bolt_strike.pal b/graphics/battle_anims/backgrounds/bolt_strike.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/bolt_strike.pal rename to graphics/battle_anims/backgrounds/bolt_strike.pal diff --git a/graphics/battle_anims/backgrounds/new/bolt_strike.png b/graphics/battle_anims/backgrounds/bolt_strike.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/bolt_strike.png rename to graphics/battle_anims/backgrounds/bolt_strike.png diff --git a/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin b/graphics/battle_anims/backgrounds/clangorous_soulblaze.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin rename to graphics/battle_anims/backgrounds/clangorous_soulblaze.bin diff --git a/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.pal b/graphics/battle_anims/backgrounds/clangorous_soulblaze.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/clangorous_soulblaze.pal rename to graphics/battle_anims/backgrounds/clangorous_soulblaze.pal diff --git a/graphics/battle_anims/backgrounds/new/clangorous_soulblaze.png b/graphics/battle_anims/backgrounds/clangorous_soulblaze.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/clangorous_soulblaze.png rename to graphics/battle_anims/backgrounds/clangorous_soulblaze.png diff --git a/graphics/battle_anims/backgrounds/new/dark_void.bin b/graphics/battle_anims/backgrounds/dark_void.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/dark_void.bin rename to graphics/battle_anims/backgrounds/dark_void.bin diff --git a/graphics/battle_anims/backgrounds/new/dark_void.pal b/graphics/battle_anims/backgrounds/dark_void.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/dark_void.pal rename to graphics/battle_anims/backgrounds/dark_void.pal diff --git a/graphics/battle_anims/backgrounds/new/dynamax_cannon.pal b/graphics/battle_anims/backgrounds/dynamax_cannon.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/dynamax_cannon.pal rename to graphics/battle_anims/backgrounds/dynamax_cannon.pal diff --git a/graphics/battle_anims/backgrounds/new/electric_terrain.bin b/graphics/battle_anims/backgrounds/electric_terrain.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/electric_terrain.bin rename to graphics/battle_anims/backgrounds/electric_terrain.bin diff --git a/graphics/battle_anims/backgrounds/new/electric_terrain.pal b/graphics/battle_anims/backgrounds/electric_terrain.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/electric_terrain.pal rename to graphics/battle_anims/backgrounds/electric_terrain.pal diff --git a/graphics/battle_anims/backgrounds/new/electric_terrain.png b/graphics/battle_anims/backgrounds/electric_terrain.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/electric_terrain.png rename to graphics/battle_anims/backgrounds/electric_terrain.png diff --git a/graphics/battle_anims/backgrounds/new/fire1.bin b/graphics/battle_anims/backgrounds/fire1.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/fire1.bin rename to graphics/battle_anims/backgrounds/fire1.bin diff --git a/graphics/battle_anims/backgrounds/new/fire1.pal b/graphics/battle_anims/backgrounds/fire1.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/fire1.pal rename to graphics/battle_anims/backgrounds/fire1.pal diff --git a/graphics/battle_anims/backgrounds/new/fire1.png b/graphics/battle_anims/backgrounds/fire1.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/fire1.png rename to graphics/battle_anims/backgrounds/fire1.png diff --git a/graphics/battle_anims/backgrounds/new/fire2.pal b/graphics/battle_anims/backgrounds/fire2.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/fire2.pal rename to graphics/battle_anims/backgrounds/fire2.pal diff --git a/graphics/battle_anims/backgrounds/new/focus_blast.bin b/graphics/battle_anims/backgrounds/focus_blast.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/focus_blast.bin rename to graphics/battle_anims/backgrounds/focus_blast.bin diff --git a/graphics/battle_anims/backgrounds/new/focus_blast.pal b/graphics/battle_anims/backgrounds/focus_blast.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/focus_blast.pal rename to graphics/battle_anims/backgrounds/focus_blast.pal diff --git a/graphics/battle_anims/backgrounds/new/focus_blast.png b/graphics/battle_anims/backgrounds/focus_blast.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/focus_blast.png rename to graphics/battle_anims/backgrounds/focus_blast.png diff --git a/graphics/battle_anims/backgrounds/new/garbage_falls.pal b/graphics/battle_anims/backgrounds/garbage_falls.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/garbage_falls.pal rename to graphics/battle_anims/backgrounds/garbage_falls.pal diff --git a/graphics/battle_anims/backgrounds/new/giga_impact.pal b/graphics/battle_anims/backgrounds/giga_impact.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/giga_impact.pal rename to graphics/battle_anims/backgrounds/giga_impact.pal diff --git a/graphics/battle_anims/backgrounds/new/giga_impact.png b/graphics/battle_anims/backgrounds/giga_impact.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/giga_impact.png rename to graphics/battle_anims/backgrounds/giga_impact.png diff --git a/graphics/battle_anims/backgrounds/new/giga_impact_contest.bin b/graphics/battle_anims/backgrounds/giga_impact_contest.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/giga_impact_contest.bin rename to graphics/battle_anims/backgrounds/giga_impact_contest.bin diff --git a/graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin b/graphics/battle_anims/backgrounds/giga_impact_opponent.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin rename to graphics/battle_anims/backgrounds/giga_impact_opponent.bin diff --git a/graphics/battle_anims/backgrounds/new/giga_impact_player.bin b/graphics/battle_anims/backgrounds/giga_impact_player.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/giga_impact_player.bin rename to graphics/battle_anims/backgrounds/giga_impact_player.bin diff --git a/graphics/battle_anims/backgrounds/new/grassy_terrain.bin b/graphics/battle_anims/backgrounds/grassy_terrain.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/grassy_terrain.bin rename to graphics/battle_anims/backgrounds/grassy_terrain.bin diff --git a/graphics/battle_anims/backgrounds/new/grassy_terrain.pal b/graphics/battle_anims/backgrounds/grassy_terrain.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/grassy_terrain.pal rename to graphics/battle_anims/backgrounds/grassy_terrain.pal diff --git a/graphics/battle_anims/backgrounds/new/grassy_terrain.png b/graphics/battle_anims/backgrounds/grassy_terrain.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/grassy_terrain.png rename to graphics/battle_anims/backgrounds/grassy_terrain.png diff --git a/graphics/battle_anims/backgrounds/new/gunk_shot.pal b/graphics/battle_anims/backgrounds/gunk_shot.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/gunk_shot.pal rename to graphics/battle_anims/backgrounds/gunk_shot.pal diff --git a/graphics/battle_anims/backgrounds/new/hurricane.bin b/graphics/battle_anims/backgrounds/hurricane.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/hurricane.bin rename to graphics/battle_anims/backgrounds/hurricane.bin diff --git a/graphics/battle_anims/backgrounds/new/hurricane.pal b/graphics/battle_anims/backgrounds/hurricane.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/hurricane.pal rename to graphics/battle_anims/backgrounds/hurricane.pal diff --git a/graphics/battle_anims/backgrounds/new/hurricane.png b/graphics/battle_anims/backgrounds/hurricane.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/hurricane.png rename to graphics/battle_anims/backgrounds/hurricane.png diff --git a/graphics/battle_anims/backgrounds/new/hydro_cannon.bin b/graphics/battle_anims/backgrounds/hydro_cannon.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/hydro_cannon.bin rename to graphics/battle_anims/backgrounds/hydro_cannon.bin diff --git a/graphics/battle_anims/backgrounds/new/hydro_cannon.pal b/graphics/battle_anims/backgrounds/hydro_cannon.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/hydro_cannon.pal rename to graphics/battle_anims/backgrounds/hydro_cannon.pal diff --git a/graphics/battle_anims/backgrounds/new/hydro_cannon.png b/graphics/battle_anims/backgrounds/hydro_cannon.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/hydro_cannon.png rename to graphics/battle_anims/backgrounds/hydro_cannon.png diff --git a/graphics/battle_anims/backgrounds/new/hydro_pump.bin b/graphics/battle_anims/backgrounds/hydro_pump.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/hydro_pump.bin rename to graphics/battle_anims/backgrounds/hydro_pump.bin diff --git a/graphics/battle_anims/backgrounds/new/hydro_pump.pal b/graphics/battle_anims/backgrounds/hydro_pump.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/hydro_pump.pal rename to graphics/battle_anims/backgrounds/hydro_pump.pal diff --git a/graphics/battle_anims/backgrounds/new/hydro_pump.png b/graphics/battle_anims/backgrounds/hydro_pump.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/hydro_pump.png rename to graphics/battle_anims/backgrounds/hydro_pump.png diff --git a/graphics/battle_anims/backgrounds/new/hyper_beam.pal b/graphics/battle_anims/backgrounds/hyper_beam.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/hyper_beam.pal rename to graphics/battle_anims/backgrounds/hyper_beam.pal diff --git a/graphics/battle_anims/backgrounds/new/hyperspace_fury.pal b/graphics/battle_anims/backgrounds/hyperspace_fury.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/hyperspace_fury.pal rename to graphics/battle_anims/backgrounds/hyperspace_fury.pal diff --git a/graphics/battle_anims/backgrounds/new/inferno_overdrive.bin b/graphics/battle_anims/backgrounds/inferno_overdrive.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/inferno_overdrive.bin rename to graphics/battle_anims/backgrounds/inferno_overdrive.bin diff --git a/graphics/battle_anims/backgrounds/new/inferno_overdrive.pal b/graphics/battle_anims/backgrounds/inferno_overdrive.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/inferno_overdrive.pal rename to graphics/battle_anims/backgrounds/inferno_overdrive.pal diff --git a/graphics/battle_anims/backgrounds/new/inferno_overdrive.png b/graphics/battle_anims/backgrounds/inferno_overdrive.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/inferno_overdrive.png rename to graphics/battle_anims/backgrounds/inferno_overdrive.png diff --git a/graphics/battle_anims/backgrounds/new/leaf_storm.bin b/graphics/battle_anims/backgrounds/leaf_storm.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/leaf_storm.bin rename to graphics/battle_anims/backgrounds/leaf_storm.bin diff --git a/graphics/battle_anims/backgrounds/new/leaf_storm.pal b/graphics/battle_anims/backgrounds/leaf_storm.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/leaf_storm.pal rename to graphics/battle_anims/backgrounds/leaf_storm.pal diff --git a/graphics/battle_anims/backgrounds/new/leaf_storm.png b/graphics/battle_anims/backgrounds/leaf_storm.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/leaf_storm.png rename to graphics/battle_anims/backgrounds/leaf_storm.png diff --git a/graphics/battle_anims/backgrounds/new/magic_room.pal b/graphics/battle_anims/backgrounds/magic_room.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/magic_room.pal rename to graphics/battle_anims/backgrounds/magic_room.pal diff --git a/graphics/battle_anims/backgrounds/new/malicious_moonsault.bin b/graphics/battle_anims/backgrounds/malicious_moonsault.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/malicious_moonsault.bin rename to graphics/battle_anims/backgrounds/malicious_moonsault.bin diff --git a/graphics/battle_anims/backgrounds/new/malicious_moonsault.pal b/graphics/battle_anims/backgrounds/malicious_moonsault.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/malicious_moonsault.pal rename to graphics/battle_anims/backgrounds/malicious_moonsault.pal diff --git a/graphics/battle_anims/backgrounds/new/malicious_moonsault.png b/graphics/battle_anims/backgrounds/malicious_moonsault.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/malicious_moonsault.png rename to graphics/battle_anims/backgrounds/malicious_moonsault.png diff --git a/graphics/battle_anims/backgrounds/new/max_lightning.bin b/graphics/battle_anims/backgrounds/max_lightning.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/max_lightning.bin rename to graphics/battle_anims/backgrounds/max_lightning.bin diff --git a/graphics/battle_anims/backgrounds/new/max_lightning.pal b/graphics/battle_anims/backgrounds/max_lightning.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/max_lightning.pal rename to graphics/battle_anims/backgrounds/max_lightning.pal diff --git a/graphics/battle_anims/backgrounds/new/max_lightning.png b/graphics/battle_anims/backgrounds/max_lightning.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/max_lightning.png rename to graphics/battle_anims/backgrounds/max_lightning.png diff --git a/graphics/battle_anims/backgrounds/new/misty_terrain.bin b/graphics/battle_anims/backgrounds/misty_terrain.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/misty_terrain.bin rename to graphics/battle_anims/backgrounds/misty_terrain.bin diff --git a/graphics/battle_anims/backgrounds/new/misty_terrain.pal b/graphics/battle_anims/backgrounds/misty_terrain.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/misty_terrain.pal rename to graphics/battle_anims/backgrounds/misty_terrain.pal diff --git a/graphics/battle_anims/backgrounds/new/misty_terrain.png b/graphics/battle_anims/backgrounds/misty_terrain.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/misty_terrain.png rename to graphics/battle_anims/backgrounds/misty_terrain.png diff --git a/graphics/battle_anims/backgrounds/new/neverending_nightmare.bin b/graphics/battle_anims/backgrounds/neverending_nightmare.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/neverending_nightmare.bin rename to graphics/battle_anims/backgrounds/neverending_nightmare.bin diff --git a/graphics/battle_anims/backgrounds/new/neverending_nightmare.pal b/graphics/battle_anims/backgrounds/neverending_nightmare.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/neverending_nightmare.pal rename to graphics/battle_anims/backgrounds/neverending_nightmare.pal diff --git a/graphics/battle_anims/backgrounds/new/neverending_nightmare.png b/graphics/battle_anims/backgrounds/neverending_nightmare.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/neverending_nightmare.png rename to graphics/battle_anims/backgrounds/neverending_nightmare.png diff --git a/graphics/battle_anims/backgrounds/new/tectonic_rage.bin b/graphics/battle_anims/backgrounds/new/tectonic_rage.bin deleted file mode 100644 index 914a9deb9..000000000 Binary files a/graphics/battle_anims/backgrounds/new/tectonic_rage.bin and /dev/null differ diff --git a/graphics/battle_anims/backgrounds/new/nightmare.bin b/graphics/battle_anims/backgrounds/nightmare.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/nightmare.bin rename to graphics/battle_anims/backgrounds/nightmare.bin diff --git a/graphics/battle_anims/backgrounds/new/nightmare.pal b/graphics/battle_anims/backgrounds/nightmare.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/nightmare.pal rename to graphics/battle_anims/backgrounds/nightmare.pal diff --git a/graphics/battle_anims/backgrounds/new/nightmare.png b/graphics/battle_anims/backgrounds/nightmare.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/nightmare.png rename to graphics/battle_anims/backgrounds/nightmare.png diff --git a/graphics/battle_anims/backgrounds/new/poison_falls.pal b/graphics/battle_anims/backgrounds/poison_falls.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/poison_falls.pal rename to graphics/battle_anims/backgrounds/poison_falls.pal diff --git a/graphics/battle_anims/backgrounds/new/psychic.pal b/graphics/battle_anims/backgrounds/psychic_new.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/psychic.pal rename to graphics/battle_anims/backgrounds/psychic_new.pal diff --git a/graphics/battle_anims/backgrounds/new/psychic_terrain.bin b/graphics/battle_anims/backgrounds/psychic_terrain.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/psychic_terrain.bin rename to graphics/battle_anims/backgrounds/psychic_terrain.bin diff --git a/graphics/battle_anims/backgrounds/new/psychic_terrain.pal b/graphics/battle_anims/backgrounds/psychic_terrain.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/psychic_terrain.pal rename to graphics/battle_anims/backgrounds/psychic_terrain.pal diff --git a/graphics/battle_anims/backgrounds/new/psychic_terrain.png b/graphics/battle_anims/backgrounds/psychic_terrain.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/psychic_terrain.png rename to graphics/battle_anims/backgrounds/psychic_terrain.png diff --git a/graphics/battle_anims/backgrounds/new/rock_wrecker.pal b/graphics/battle_anims/backgrounds/rock_wrecker.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/rock_wrecker.pal rename to graphics/battle_anims/backgrounds/rock_wrecker.pal diff --git a/graphics/battle_anims/backgrounds/new/shattered_psyche.bin b/graphics/battle_anims/backgrounds/shattered_psyche.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/shattered_psyche.bin rename to graphics/battle_anims/backgrounds/shattered_psyche.bin diff --git a/graphics/battle_anims/backgrounds/new/shattered_psyche.pal b/graphics/battle_anims/backgrounds/shattered_psyche.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/shattered_psyche.pal rename to graphics/battle_anims/backgrounds/shattered_psyche.pal diff --git a/graphics/battle_anims/backgrounds/new/shattered_psyche.png b/graphics/battle_anims/backgrounds/shattered_psyche.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/shattered_psyche.png rename to graphics/battle_anims/backgrounds/shattered_psyche.png diff --git a/graphics/battle_anims/backgrounds/new/sky_afternoon.pal b/graphics/battle_anims/backgrounds/sky_afternoon.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/sky_afternoon.pal rename to graphics/battle_anims/backgrounds/sky_afternoon.pal diff --git a/graphics/battle_anims/backgrounds/new/sky_day.bin b/graphics/battle_anims/backgrounds/sky_day.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/sky_day.bin rename to graphics/battle_anims/backgrounds/sky_day.bin diff --git a/graphics/battle_anims/backgrounds/new/sky_day.pal b/graphics/battle_anims/backgrounds/sky_day.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/sky_day.pal rename to graphics/battle_anims/backgrounds/sky_day.pal diff --git a/graphics/battle_anims/backgrounds/new/sky_day.png b/graphics/battle_anims/backgrounds/sky_day.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/sky_day.png rename to graphics/battle_anims/backgrounds/sky_day.png diff --git a/graphics/battle_anims/backgrounds/new/sky_night.pal b/graphics/battle_anims/backgrounds/sky_night.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/sky_night.pal rename to graphics/battle_anims/backgrounds/sky_night.pal diff --git a/graphics/battle_anims/backgrounds/new/sludge_wave.pal b/graphics/battle_anims/backgrounds/sludge_wave.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/sludge_wave.pal rename to graphics/battle_anims/backgrounds/sludge_wave.pal diff --git a/graphics/battle_anims/backgrounds/new/snuggle_forever.bin b/graphics/battle_anims/backgrounds/snuggle_forever.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/snuggle_forever.bin rename to graphics/battle_anims/backgrounds/snuggle_forever.bin diff --git a/graphics/battle_anims/backgrounds/new/snuggle_forever.pal b/graphics/battle_anims/backgrounds/snuggle_forever.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/snuggle_forever.pal rename to graphics/battle_anims/backgrounds/snuggle_forever.pal diff --git a/graphics/battle_anims/backgrounds/new/snuggle_forever.png b/graphics/battle_anims/backgrounds/snuggle_forever.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/snuggle_forever.png rename to graphics/battle_anims/backgrounds/snuggle_forever.png diff --git a/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.bin b/graphics/battle_anims/backgrounds/soulstealing_7star_strike.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.bin rename to graphics/battle_anims/backgrounds/soulstealing_7star_strike.bin diff --git a/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.pal b/graphics/battle_anims/backgrounds/soulstealing_7star_strike.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.pal rename to graphics/battle_anims/backgrounds/soulstealing_7star_strike.pal diff --git a/graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.png b/graphics/battle_anims/backgrounds/soulstealing_7star_strike.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.png rename to graphics/battle_anims/backgrounds/soulstealing_7star_strike.png diff --git a/graphics/battle_anims/backgrounds/new/spacial_rend.pal b/graphics/battle_anims/backgrounds/spacial_rend.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/spacial_rend.pal rename to graphics/battle_anims/backgrounds/spacial_rend.pal diff --git a/graphics/battle_anims/backgrounds/new/spacial_rend.png b/graphics/battle_anims/backgrounds/spacial_rend.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/spacial_rend.png rename to graphics/battle_anims/backgrounds/spacial_rend.png diff --git a/graphics/battle_anims/backgrounds/new/steel_beam_bg.pal b/graphics/battle_anims/backgrounds/steel_beam.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/steel_beam_bg.pal rename to graphics/battle_anims/backgrounds/steel_beam.pal diff --git a/graphics/battle_anims/backgrounds/new/tectonic_rage.pal b/graphics/battle_anims/backgrounds/tectonic_rage.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/tectonic_rage.pal rename to graphics/battle_anims/backgrounds/tectonic_rage.pal diff --git a/graphics/battle_anims/backgrounds/new/trick_room.bin b/graphics/battle_anims/backgrounds/trick_room.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/trick_room.bin rename to graphics/battle_anims/backgrounds/trick_room.bin diff --git a/graphics/battle_anims/backgrounds/new/trick_room.pal b/graphics/battle_anims/backgrounds/trick_room.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/trick_room.pal rename to graphics/battle_anims/backgrounds/trick_room.pal diff --git a/graphics/battle_anims/backgrounds/new/trick_room.png b/graphics/battle_anims/backgrounds/trick_room.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/trick_room.png rename to graphics/battle_anims/backgrounds/trick_room.png diff --git a/graphics/battle_anims/backgrounds/new/twinkle_tackle.bin b/graphics/battle_anims/backgrounds/twinkle_tackle.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/twinkle_tackle.bin rename to graphics/battle_anims/backgrounds/twinkle_tackle.bin diff --git a/graphics/battle_anims/backgrounds/new/twinkle_tackle.pal b/graphics/battle_anims/backgrounds/twinkle_tackle.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/twinkle_tackle.pal rename to graphics/battle_anims/backgrounds/twinkle_tackle.pal diff --git a/graphics/battle_anims/backgrounds/new/twinkle_tackle.png b/graphics/battle_anims/backgrounds/twinkle_tackle.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/twinkle_tackle.png rename to graphics/battle_anims/backgrounds/twinkle_tackle.png diff --git a/graphics/battle_anims/backgrounds/new/water_pulse.bin b/graphics/battle_anims/backgrounds/water_pulse.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/water_pulse.bin rename to graphics/battle_anims/backgrounds/water_pulse.bin diff --git a/graphics/battle_anims/backgrounds/new/water_pulse.pal b/graphics/battle_anims/backgrounds/water_pulse.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/water_pulse.pal rename to graphics/battle_anims/backgrounds/water_pulse.pal diff --git a/graphics/battle_anims/backgrounds/new/water_pulse.png b/graphics/battle_anims/backgrounds/water_pulse.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/water_pulse.png rename to graphics/battle_anims/backgrounds/water_pulse.png diff --git a/graphics/battle_anims/backgrounds/new/waterfall.bin b/graphics/battle_anims/backgrounds/waterfall.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/waterfall.bin rename to graphics/battle_anims/backgrounds/waterfall.bin diff --git a/graphics/battle_anims/backgrounds/new/waterfall.pal b/graphics/battle_anims/backgrounds/waterfall.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/waterfall.pal rename to graphics/battle_anims/backgrounds/waterfall.pal diff --git a/graphics/battle_anims/backgrounds/new/waterfall.png b/graphics/battle_anims/backgrounds/waterfall.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/waterfall.png rename to graphics/battle_anims/backgrounds/waterfall.png diff --git a/graphics/battle_anims/backgrounds/new/wonder_room.pal b/graphics/battle_anims/backgrounds/wonder_room.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/wonder_room.pal rename to graphics/battle_anims/backgrounds/wonder_room.pal diff --git a/graphics/battle_anims/backgrounds/new/zmove_activate.bin b/graphics/battle_anims/backgrounds/zmove_activate.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/zmove_activate.bin rename to graphics/battle_anims/backgrounds/zmove_activate.bin diff --git a/graphics/battle_anims/backgrounds/new/zmove_activate.pal b/graphics/battle_anims/backgrounds/zmove_activate.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/zmove_activate.pal rename to graphics/battle_anims/backgrounds/zmove_activate.pal diff --git a/graphics/battle_anims/backgrounds/new/zmove_activate.png b/graphics/battle_anims/backgrounds/zmove_activate.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/zmove_activate.png rename to graphics/battle_anims/backgrounds/zmove_activate.png diff --git a/graphics/battle_anims/backgrounds/new/zmove_mountain.bin b/graphics/battle_anims/backgrounds/zmove_mountain.bin similarity index 100% rename from graphics/battle_anims/backgrounds/new/zmove_mountain.bin rename to graphics/battle_anims/backgrounds/zmove_mountain.bin diff --git a/graphics/battle_anims/backgrounds/new/zmove_mountain.pal b/graphics/battle_anims/backgrounds/zmove_mountain.pal similarity index 100% rename from graphics/battle_anims/backgrounds/new/zmove_mountain.pal rename to graphics/battle_anims/backgrounds/zmove_mountain.pal diff --git a/graphics/battle_anims/backgrounds/new/zmove_mountain.png b/graphics/battle_anims/backgrounds/zmove_mountain.png similarity index 100% rename from graphics/battle_anims/backgrounds/new/zmove_mountain.png rename to graphics/battle_anims/backgrounds/zmove_mountain.png diff --git a/graphics/battle_anims/sprites/new/acupressure_finger.png b/graphics/battle_anims/sprites/acupressure_finger.png similarity index 100% rename from graphics/battle_anims/sprites/new/acupressure_finger.png rename to graphics/battle_anims/sprites/acupressure_finger.png diff --git a/graphics/battle_anims/sprites/new/alpha_stone.png b/graphics/battle_anims/sprites/alpha_stone.png similarity index 100% rename from graphics/battle_anims/sprites/new/alpha_stone.png rename to graphics/battle_anims/sprites/alpha_stone.png diff --git a/graphics/battle_anims/sprites/new/anchor.png b/graphics/battle_anims/sprites/anchor.png similarity index 100% rename from graphics/battle_anims/sprites/new/anchor.png rename to graphics/battle_anims/sprites/anchor.png diff --git a/graphics/battle_anims/sprites/new/apple.png b/graphics/battle_anims/sprites/apple.png similarity index 100% rename from graphics/battle_anims/sprites/new/apple.png rename to graphics/battle_anims/sprites/apple.png diff --git a/graphics/battle_anims/sprites/new/arrows.png b/graphics/battle_anims/sprites/arrows.png similarity index 100% rename from graphics/battle_anims/sprites/new/arrows.png rename to graphics/battle_anims/sprites/arrows.png diff --git a/graphics/battle_anims/sprites/new/assurance_hand.png b/graphics/battle_anims/sprites/assurance_hand.png similarity index 100% rename from graphics/battle_anims/sprites/new/assurance_hand.png rename to graphics/battle_anims/sprites/assurance_hand.png diff --git a/graphics/battle_anims/sprites/new/aura_sphere.png b/graphics/battle_anims/sprites/aura_sphere.png similarity index 100% rename from graphics/battle_anims/sprites/new/aura_sphere.png rename to graphics/battle_anims/sprites/aura_sphere.png diff --git a/graphics/battle_anims/sprites/new/avalanche_rocks.pal b/graphics/battle_anims/sprites/avalanche_rocks.pal similarity index 100% rename from graphics/battle_anims/sprites/new/avalanche_rocks.pal rename to graphics/battle_anims/sprites/avalanche_rocks.pal diff --git a/graphics/battle_anims/sprites/new/baton_pass_ball.png b/graphics/battle_anims/sprites/baton_pass_ball.png similarity index 100% rename from graphics/battle_anims/sprites/new/baton_pass_ball.png rename to graphics/battle_anims/sprites/baton_pass_ball.png diff --git a/graphics/battle_anims/sprites/new/berry_eaten.png b/graphics/battle_anims/sprites/berry_eaten.png similarity index 100% rename from graphics/battle_anims/sprites/new/berry_eaten.png rename to graphics/battle_anims/sprites/berry_eaten.png diff --git a/graphics/battle_anims/sprites/new/berry_normal.png b/graphics/battle_anims/sprites/berry_normal.png similarity index 100% rename from graphics/battle_anims/sprites/new/berry_normal.png rename to graphics/battle_anims/sprites/berry_normal.png diff --git a/graphics/battle_anims/sprites/new/big_rock.png b/graphics/battle_anims/sprites/big_rock.png similarity index 100% rename from graphics/battle_anims/sprites/new/big_rock.png rename to graphics/battle_anims/sprites/big_rock.png diff --git a/graphics/battle_anims/sprites/new/blacephalon_head.png b/graphics/battle_anims/sprites/blacephalon_head.png similarity index 100% rename from graphics/battle_anims/sprites/new/blacephalon_head.png rename to graphics/battle_anims/sprites/blacephalon_head.png diff --git a/graphics/battle_anims/sprites/new/blue_flare.pal b/graphics/battle_anims/sprites/blue_flare.pal similarity index 100% rename from graphics/battle_anims/sprites/new/blue_flare.pal rename to graphics/battle_anims/sprites/blue_flare.pal diff --git a/graphics/battle_anims/sprites/new/branch.png b/graphics/battle_anims/sprites/branch.png similarity index 100% rename from graphics/battle_anims/sprites/new/branch.png rename to graphics/battle_anims/sprites/branch.png diff --git a/graphics/battle_anims/sprites/new/brine.png b/graphics/battle_anims/sprites/brine.png similarity index 100% rename from graphics/battle_anims/sprites/new/brine.png rename to graphics/battle_anims/sprites/brine.png diff --git a/graphics/battle_anims/sprites/new/cacoon.png b/graphics/battle_anims/sprites/cacoon.png similarity index 100% rename from graphics/battle_anims/sprites/new/cacoon.png rename to graphics/battle_anims/sprites/cacoon.png diff --git a/graphics/battle_anims/sprites/new/chain_link.png b/graphics/battle_anims/sprites/chain_link.png similarity index 100% rename from graphics/battle_anims/sprites/new/chain_link.png rename to graphics/battle_anims/sprites/chain_link.png diff --git a/graphics/battle_anims/sprites/new/chop.png b/graphics/battle_anims/sprites/chop.png similarity index 100% rename from graphics/battle_anims/sprites/new/chop.png rename to graphics/battle_anims/sprites/chop.png diff --git a/graphics/battle_anims/sprites/new/confide.png b/graphics/battle_anims/sprites/confide.png similarity index 100% rename from graphics/battle_anims/sprites/new/confide.png rename to graphics/battle_anims/sprites/confide.png diff --git a/graphics/battle_anims/sprites/new/crafty_shield.png b/graphics/battle_anims/sprites/crafty_shield.png similarity index 100% rename from graphics/battle_anims/sprites/new/crafty_shield.png rename to graphics/battle_anims/sprites/crafty_shield.png diff --git a/graphics/battle_anims/sprites/new/curse_nail.png b/graphics/battle_anims/sprites/curse_nail.png similarity index 100% rename from graphics/battle_anims/sprites/new/curse_nail.png rename to graphics/battle_anims/sprites/curse_nail.png diff --git a/graphics/battle_anims/sprites/new/draco_meteor.pal b/graphics/battle_anims/sprites/draco_meteor.pal similarity index 100% rename from graphics/battle_anims/sprites/new/draco_meteor.pal rename to graphics/battle_anims/sprites/draco_meteor.pal diff --git a/graphics/battle_anims/sprites/new/dragon_pulse_ring.png b/graphics/battle_anims/sprites/dragon_pulse_ring.png similarity index 100% rename from graphics/battle_anims/sprites/new/dragon_pulse_ring.png rename to graphics/battle_anims/sprites/dragon_pulse_ring.png diff --git a/graphics/battle_anims/sprites/new/dreepy_missile.png b/graphics/battle_anims/sprites/dreepy_missile.png similarity index 100% rename from graphics/battle_anims/sprites/new/dreepy_missile.png rename to graphics/battle_anims/sprites/dreepy_missile.png diff --git a/graphics/battle_anims/sprites/new/drill.png b/graphics/battle_anims/sprites/drill.png similarity index 100% rename from graphics/battle_anims/sprites/new/drill.png rename to graphics/battle_anims/sprites/drill.png diff --git a/graphics/battle_anims/sprites/new/embers.png b/graphics/battle_anims/sprites/embers.png similarity index 100% rename from graphics/battle_anims/sprites/new/embers.png rename to graphics/battle_anims/sprites/embers.png diff --git a/graphics/battle_anims/sprites/new/fairy_lock_chains.png b/graphics/battle_anims/sprites/fairy_lock_chains.png similarity index 100% rename from graphics/battle_anims/sprites/new/fairy_lock_chains.png rename to graphics/battle_anims/sprites/fairy_lock_chains.png diff --git a/graphics/battle_anims/sprites/new/fishies.png b/graphics/battle_anims/sprites/fishies.png similarity index 100% rename from graphics/battle_anims/sprites/new/fishies.png rename to graphics/battle_anims/sprites/fishies.png diff --git a/graphics/battle_anims/sprites/new/fly.png b/graphics/battle_anims/sprites/fly.png similarity index 100% rename from graphics/battle_anims/sprites/new/fly.png rename to graphics/battle_anims/sprites/fly.png diff --git a/graphics/battle_anims/sprites/new/fusion_flare.pal b/graphics/battle_anims/sprites/fusion_flare.pal similarity index 100% rename from graphics/battle_anims/sprites/new/fusion_flare.pal rename to graphics/battle_anims/sprites/fusion_flare.pal diff --git a/graphics/battle_anims/sprites/new/garbage_poison_column.pal b/graphics/battle_anims/sprites/garbage_poison_column.pal similarity index 100% rename from graphics/battle_anims/sprites/new/garbage_poison_column.pal rename to graphics/battle_anims/sprites/garbage_poison_column.pal diff --git a/graphics/battle_anims/sprites/new/gear.png b/graphics/battle_anims/sprites/gear.png similarity index 100% rename from graphics/battle_anims/sprites/new/gear.png rename to graphics/battle_anims/sprites/gear.png diff --git a/graphics/battle_anims/sprites/new/gigavolt_havoc_spear.png b/graphics/battle_anims/sprites/gigavolt_havoc_spear.png similarity index 100% rename from graphics/battle_anims/sprites/new/gigavolt_havoc_spear.png rename to graphics/battle_anims/sprites/gigavolt_havoc_spear.png diff --git a/graphics/battle_anims/sprites/new/golden_apple.png b/graphics/battle_anims/sprites/golden_apple.png similarity index 100% rename from graphics/battle_anims/sprites/new/golden_apple.png rename to graphics/battle_anims/sprites/golden_apple.png diff --git a/graphics/battle_anims/sprites/new/green_drake.pal b/graphics/battle_anims/sprites/green_drake.pal similarity index 100% rename from graphics/battle_anims/sprites/new/green_drake.pal rename to graphics/battle_anims/sprites/green_drake.pal diff --git a/graphics/battle_anims/sprites/new/green_star.png b/graphics/battle_anims/sprites/green_star_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/green_star.png rename to graphics/battle_anims/sprites/green_star_new.png diff --git a/graphics/battle_anims/sprites/new/thrash.png b/graphics/battle_anims/sprites/hands_and_feet_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/thrash.png rename to graphics/battle_anims/sprites/hands_and_feet_new.png diff --git a/graphics/battle_anims/sprites/new/heart_stamp.png b/graphics/battle_anims/sprites/heart_stamp.png similarity index 100% rename from graphics/battle_anims/sprites/new/heart_stamp.png rename to graphics/battle_anims/sprites/heart_stamp.png diff --git a/graphics/battle_anims/sprites/new/hexes.png b/graphics/battle_anims/sprites/hexes.png similarity index 100% rename from graphics/battle_anims/sprites/new/hexes.png rename to graphics/battle_anims/sprites/hexes.png diff --git a/graphics/battle_anims/sprites/new/hoopa_hand.png b/graphics/battle_anims/sprites/hoopa_hand.png similarity index 100% rename from graphics/battle_anims/sprites/new/hoopa_hand.png rename to graphics/battle_anims/sprites/hoopa_hand.png diff --git a/graphics/battle_anims/sprites/new/hoopa_ring.png b/graphics/battle_anims/sprites/hoopa_ring.png similarity index 100% rename from graphics/battle_anims/sprites/new/hoopa_ring.png rename to graphics/battle_anims/sprites/hoopa_ring.png diff --git a/graphics/battle_anims/sprites/new/horn.png b/graphics/battle_anims/sprites/horn_hit_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/horn.png rename to graphics/battle_anims/sprites/horn_hit_new.png diff --git a/graphics/battle_anims/sprites/new/horn_leech.png b/graphics/battle_anims/sprites/horn_leech.png similarity index 100% rename from graphics/battle_anims/sprites/new/horn_leech.png rename to graphics/battle_anims/sprites/horn_leech.png diff --git a/graphics/battle_anims/sprites/new/horseshoe_fist.png b/graphics/battle_anims/sprites/horseshoe_fist.png similarity index 100% rename from graphics/battle_anims/sprites/new/horseshoe_fist.png rename to graphics/battle_anims/sprites/horseshoe_fist.png diff --git a/graphics/battle_anims/sprites/new/hydro_pump.png b/graphics/battle_anims/sprites/hydro_pump.png similarity index 100% rename from graphics/battle_anims/sprites/new/hydro_pump.png rename to graphics/battle_anims/sprites/hydro_pump.png diff --git a/graphics/battle_anims/sprites/new/ice_rock.png b/graphics/battle_anims/sprites/ice_rock.png similarity index 100% rename from graphics/battle_anims/sprites/new/ice_rock.png rename to graphics/battle_anims/sprites/ice_rock.png diff --git a/graphics/battle_anims/sprites/new/impact.pal b/graphics/battle_anims/sprites/impact_new.pal similarity index 100% rename from graphics/battle_anims/sprites/new/impact.pal rename to graphics/battle_anims/sprites/impact_new.pal diff --git a/graphics/battle_anims/sprites/new/large_spike.png b/graphics/battle_anims/sprites/large_spike.png similarity index 100% rename from graphics/battle_anims/sprites/new/large_spike.png rename to graphics/battle_anims/sprites/large_spike.png diff --git a/graphics/battle_anims/sprites/new/leaves.png b/graphics/battle_anims/sprites/leaves.png similarity index 100% rename from graphics/battle_anims/sprites/new/leaves.png rename to graphics/battle_anims/sprites/leaves.png diff --git a/graphics/battle_anims/sprites/new/leech_seed.png b/graphics/battle_anims/sprites/leech_seed.png similarity index 100% rename from graphics/battle_anims/sprites/new/leech_seed.png rename to graphics/battle_anims/sprites/leech_seed.png diff --git a/graphics/battle_anims/sprites/new/lightning_rain.png b/graphics/battle_anims/sprites/lightning_rain.png similarity index 100% rename from graphics/battle_anims/sprites/new/lightning_rain.png rename to graphics/battle_anims/sprites/lightning_rain.png diff --git a/graphics/battle_anims/sprites/new/mean_look.png b/graphics/battle_anims/sprites/mean_look.png similarity index 100% rename from graphics/battle_anims/sprites/new/mean_look.png rename to graphics/battle_anims/sprites/mean_look.png diff --git a/graphics/battle_anims/sprites/new/metal_bits.png b/graphics/battle_anims/sprites/metal_bits.png similarity index 100% rename from graphics/battle_anims/sprites/new/metal_bits.png rename to graphics/battle_anims/sprites/metal_bits.png diff --git a/graphics/battle_anims/sprites/new/mud_bomb.png b/graphics/battle_anims/sprites/mud_bomb.png similarity index 100% rename from graphics/battle_anims/sprites/new/mud_bomb.png rename to graphics/battle_anims/sprites/mud_bomb.png diff --git a/graphics/battle_anims/sprites/new/mushroom.png b/graphics/battle_anims/sprites/mushroom.png similarity index 100% rename from graphics/battle_anims/sprites/new/mushroom.png rename to graphics/battle_anims/sprites/mushroom.png diff --git a/graphics/battle_anims/sprites/new/natural_gift_ring.pal b/graphics/battle_anims/sprites/natural_gift_ring.pal similarity index 100% rename from graphics/battle_anims/sprites/new/natural_gift_ring.pal rename to graphics/battle_anims/sprites/natural_gift_ring.pal diff --git a/graphics/battle_anims/sprites/new/necrozma_star.png b/graphics/battle_anims/sprites/necrozma_star.png similarity index 100% rename from graphics/battle_anims/sprites/new/necrozma_star.png rename to graphics/battle_anims/sprites/necrozma_star.png diff --git a/graphics/battle_anims/sprites/new/ability_pop_up.png b/graphics/battle_anims/sprites/new/ability_pop_up.png deleted file mode 100644 index 12b976a49..000000000 Binary files a/graphics/battle_anims/sprites/new/ability_pop_up.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/bee.png b/graphics/battle_anims/sprites/new/bee.png deleted file mode 100644 index 448935c10..000000000 Binary files a/graphics/battle_anims/sprites/new/bee.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/energy_ball.png b/graphics/battle_anims/sprites/new/energy_ball.png deleted file mode 100644 index 361d7ff71..000000000 Binary files a/graphics/battle_anims/sprites/new/energy_ball.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/flash_cannon_ball.png b/graphics/battle_anims/sprites/new/flash_cannon_ball.png deleted file mode 100644 index b08d1d39f..000000000 Binary files a/graphics/battle_anims/sprites/new/flash_cannon_ball.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/poison_jab.png b/graphics/battle_anims/sprites/new/poison_jab.png deleted file mode 100644 index 02bbf1b85..000000000 Binary files a/graphics/battle_anims/sprites/new/poison_jab.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/power_gem.png b/graphics/battle_anims/sprites/new/power_gem.png deleted file mode 100644 index 5523bb8a7..000000000 Binary files a/graphics/battle_anims/sprites/new/power_gem.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/punishment.png b/graphics/battle_anims/sprites/new/punishment.png deleted file mode 100644 index 9215b6ec0..000000000 Binary files a/graphics/battle_anims/sprites/new/punishment.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/quick_guard.png b/graphics/battle_anims/sprites/new/quick_guard.png deleted file mode 100644 index 71d343eeb..000000000 Binary files a/graphics/battle_anims/sprites/new/quick_guard.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/stealth_rock.png b/graphics/battle_anims/sprites/new/stealth_rock.png deleted file mode 100644 index 6ade3bb87..000000000 Binary files a/graphics/battle_anims/sprites/new/stealth_rock.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/stone_edge.png b/graphics/battle_anims/sprites/new/stone_edge.png deleted file mode 100644 index 8e27efb9a..000000000 Binary files a/graphics/battle_anims/sprites/new/stone_edge.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/water_gun.png b/graphics/battle_anims/sprites/new/water_gun.png deleted file mode 100644 index 4f30b2133..000000000 Binary files a/graphics/battle_anims/sprites/new/water_gun.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/wood.png b/graphics/battle_anims/sprites/new/wood.png deleted file mode 100644 index 1b64a647f..000000000 Binary files a/graphics/battle_anims/sprites/new/wood.png and /dev/null differ diff --git a/graphics/battle_anims/sprites/new/obstruct.png b/graphics/battle_anims/sprites/obstruct.png similarity index 100% rename from graphics/battle_anims/sprites/new/obstruct.png rename to graphics/battle_anims/sprites/obstruct.png diff --git a/graphics/battle_anims/sprites/new/omega_stone.png b/graphics/battle_anims/sprites/omega_stone.png similarity index 100% rename from graphics/battle_anims/sprites/new/omega_stone.png rename to graphics/battle_anims/sprites/omega_stone.png diff --git a/graphics/battle_anims/sprites/new/pink_diamond.png b/graphics/battle_anims/sprites/pink_diamond.png similarity index 100% rename from graphics/battle_anims/sprites/new/pink_diamond.png rename to graphics/battle_anims/sprites/pink_diamond.png diff --git a/graphics/battle_anims/sprites/new/poison_column.png b/graphics/battle_anims/sprites/poison_column.png similarity index 100% rename from graphics/battle_anims/sprites/new/poison_column.png rename to graphics/battle_anims/sprites/poison_column.png diff --git a/graphics/battle_anims/sprites/new/poltergeist.pal b/graphics/battle_anims/sprites/poltergeist.pal similarity index 100% rename from graphics/battle_anims/sprites/new/poltergeist.pal rename to graphics/battle_anims/sprites/poltergeist.pal diff --git a/graphics/battle_anims/sprites/new/power_trick.png b/graphics/battle_anims/sprites/power_trick.png similarity index 100% rename from graphics/battle_anims/sprites/new/power_trick.png rename to graphics/battle_anims/sprites/power_trick.png diff --git a/graphics/battle_anims/sprites/new/purple_drake.png b/graphics/battle_anims/sprites/purple_drake.png similarity index 100% rename from graphics/battle_anims/sprites/new/purple_drake.png rename to graphics/battle_anims/sprites/purple_drake.png diff --git a/graphics/battle_anims/sprites/new/razor_shell.png b/graphics/battle_anims/sprites/razor_shell.png similarity index 100% rename from graphics/battle_anims/sprites/new/razor_shell.png rename to graphics/battle_anims/sprites/razor_shell.png diff --git a/graphics/battle_anims/sprites/new/rock_small.png b/graphics/battle_anims/sprites/rock_small.png similarity index 100% rename from graphics/battle_anims/sprites/new/rock_small.png rename to graphics/battle_anims/sprites/rock_small.png diff --git a/graphics/battle_anims/sprites/new/rocks.png b/graphics/battle_anims/sprites/rocks_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/rocks.png rename to graphics/battle_anims/sprites/rocks_new.png diff --git a/graphics/battle_anims/sprites/new/shell_left.png b/graphics/battle_anims/sprites/shell_left.png similarity index 100% rename from graphics/battle_anims/sprites/new/shell_left.png rename to graphics/battle_anims/sprites/shell_left.png diff --git a/graphics/battle_anims/sprites/new/shell_right.png b/graphics/battle_anims/sprites/shell_right.png similarity index 100% rename from graphics/battle_anims/sprites/new/shell_right.png rename to graphics/battle_anims/sprites/shell_right.png diff --git a/graphics/battle_anims/sprites/new/spacial_rend_slices.pal b/graphics/battle_anims/sprites/spacial_rend_slices.pal similarity index 100% rename from graphics/battle_anims/sprites/new/spacial_rend_slices.pal rename to graphics/battle_anims/sprites/spacial_rend_slices.pal diff --git a/graphics/battle_anims/sprites/new/spikes.png b/graphics/battle_anims/sprites/spikes_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/spikes.png rename to graphics/battle_anims/sprites/spikes_new.png diff --git a/graphics/battle_anims/sprites/new/spirit_shackle_arrow.png b/graphics/battle_anims/sprites/spirit_shackle_arrow.png similarity index 100% rename from graphics/battle_anims/sprites/new/spirit_shackle_arrow.png rename to graphics/battle_anims/sprites/spirit_shackle_arrow.png diff --git a/graphics/battle_anims/sprites/new/steam_eruption.png b/graphics/battle_anims/sprites/steam_eruption.png similarity index 100% rename from graphics/battle_anims/sprites/new/steam_eruption.png rename to graphics/battle_anims/sprites/steam_eruption.png diff --git a/graphics/battle_anims/sprites/new/steamroller.png b/graphics/battle_anims/sprites/steamroller.png similarity index 100% rename from graphics/battle_anims/sprites/new/steamroller.png rename to graphics/battle_anims/sprites/steamroller.png diff --git a/graphics/battle_anims/sprites/new/steel_beam.pal b/graphics/battle_anims/sprites/steel_beam.pal similarity index 100% rename from graphics/battle_anims/sprites/new/steel_beam.pal rename to graphics/battle_anims/sprites/steel_beam.pal diff --git a/graphics/battle_anims/sprites/new/stone_pillar.png b/graphics/battle_anims/sprites/stone_pillar.png similarity index 100% rename from graphics/battle_anims/sprites/new/stone_pillar.png rename to graphics/battle_anims/sprites/stone_pillar.png diff --git a/graphics/battle_anims/sprites/new/straight_beam.png b/graphics/battle_anims/sprites/straight_beam.png similarity index 100% rename from graphics/battle_anims/sprites/new/straight_beam.png rename to graphics/battle_anims/sprites/straight_beam.png diff --git a/graphics/battle_anims/sprites/new/substitute_back.png b/graphics/battle_anims/sprites/substitute_back_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/substitute_back.png rename to graphics/battle_anims/sprites/substitute_back_new.png diff --git a/graphics/battle_anims/sprites/new/substitute_front.png b/graphics/battle_anims/sprites/substitute_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/substitute_front.png rename to graphics/battle_anims/sprites/substitute_new.png diff --git a/graphics/battle_anims/sprites/new/surf_new.pal b/graphics/battle_anims/sprites/surf_new.pal similarity index 100% rename from graphics/battle_anims/sprites/new/surf_new.pal rename to graphics/battle_anims/sprites/surf_new.pal diff --git a/graphics/battle_anims/sprites/new/sword.png b/graphics/battle_anims/sprites/sword_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/sword.png rename to graphics/battle_anims/sprites/sword_new.png diff --git a/graphics/battle_anims/sprites/new/teeth.png b/graphics/battle_anims/sprites/teeth_new.png similarity index 100% rename from graphics/battle_anims/sprites/new/teeth.png rename to graphics/battle_anims/sprites/teeth_new.png diff --git a/graphics/battle_anims/sprites/new/tornado.png b/graphics/battle_anims/sprites/tornado.png similarity index 100% rename from graphics/battle_anims/sprites/new/tornado.png rename to graphics/battle_anims/sprites/tornado.png diff --git a/graphics/battle_anims/sprites/new/z_move_symbol.png b/graphics/battle_anims/sprites/z_move_symbol.png similarity index 100% rename from graphics/battle_anims/sprites/new/z_move_symbol.png rename to graphics/battle_anims/sprites/z_move_symbol.png diff --git a/graphics/battle_frontier/arena_judgement_symbols.png b/graphics/battle_frontier/arena_judgment_symbols.png similarity index 100% rename from graphics/battle_frontier/arena_judgement_symbols.png rename to graphics/battle_frontier/arena_judgment_symbols.png diff --git a/graphics/pokemon/arcanine/hisuian/back.png b/graphics/pokemon/arcanine/hisuian/back.png new file mode 100644 index 000000000..a6fdca501 Binary files /dev/null and b/graphics/pokemon/arcanine/hisuian/back.png differ diff --git a/graphics/pokemon/arcanine/hisuian/front.png b/graphics/pokemon/arcanine/hisuian/front.png new file mode 100644 index 000000000..6adc0d93a Binary files /dev/null and b/graphics/pokemon/arcanine/hisuian/front.png differ diff --git a/graphics/pokemon/arcanine/hisuian/icon.png b/graphics/pokemon/arcanine/hisuian/icon.png new file mode 100644 index 000000000..9fe900792 Binary files /dev/null and b/graphics/pokemon/arcanine/hisuian/icon.png differ diff --git a/graphics/pokemon/arcanine/hisuian/normal.pal b/graphics/pokemon/arcanine/hisuian/normal.pal new file mode 100644 index 000000000..7502c6a4c --- /dev/null +++ b/graphics/pokemon/arcanine/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +48 40 32 +0 0 0 +136 136 128 +96 96 80 +232 72 56 +176 48 32 +216 216 208 +248 248 240 +72 64 56 +40 40 40 +208 88 64 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/arcanine/hisuian/shiny.pal b/graphics/pokemon/arcanine/hisuian/shiny.pal new file mode 100644 index 000000000..c786e1990 --- /dev/null +++ b/graphics/pokemon/arcanine/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +48 40 32 +0 0 0 +136 136 128 +96 96 80 +224 208 40 +176 152 0 +216 216 208 +248 248 240 +72 64 56 +40 40 40 +224 208 40 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/avalugg/hisuian/back.png b/graphics/pokemon/avalugg/hisuian/back.png new file mode 100644 index 000000000..885fd4c13 Binary files /dev/null and b/graphics/pokemon/avalugg/hisuian/back.png differ diff --git a/graphics/pokemon/avalugg/hisuian/front.png b/graphics/pokemon/avalugg/hisuian/front.png new file mode 100644 index 000000000..b120608e1 Binary files /dev/null and b/graphics/pokemon/avalugg/hisuian/front.png differ diff --git a/graphics/pokemon/avalugg/hisuian/icon.png b/graphics/pokemon/avalugg/hisuian/icon.png new file mode 100644 index 000000000..5b2b3f347 Binary files /dev/null and b/graphics/pokemon/avalugg/hisuian/icon.png differ diff --git a/graphics/pokemon/avalugg/hisuian/normal.pal b/graphics/pokemon/avalugg/hisuian/normal.pal new file mode 100644 index 000000000..8055ef92a --- /dev/null +++ b/graphics/pokemon/avalugg/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 168 208 +80 112 144 +184 240 248 +104 80 64 +128 208 240 +248 248 248 +80 40 24 +8 8 8 +144 120 96 +144 64 32 +200 200 216 +144 152 168 +248 192 0 +88 56 56 +0 0 0 diff --git a/graphics/pokemon/avalugg/hisuian/shiny.pal b/graphics/pokemon/avalugg/hisuian/shiny.pal new file mode 100644 index 000000000..9e547358c --- /dev/null +++ b/graphics/pokemon/avalugg/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +112 152 208 +80 96 168 +184 232 248 +200 160 144 +128 192 240 +248 248 248 +112 80 72 +8 8 8 +232 192 176 +248 176 24 +248 176 120 +248 136 88 +248 176 24 +160 128 120 +0 0 0 diff --git a/graphics/pokemon/basculegion/icon.png b/graphics/pokemon/basculegion/icon.png new file mode 100644 index 000000000..579a83d55 Binary files /dev/null and b/graphics/pokemon/basculegion/icon.png differ diff --git a/graphics/pokemon/basculegion/iconf.png b/graphics/pokemon/basculegion/iconf.png new file mode 100644 index 000000000..fb85ca6c0 Binary files /dev/null and b/graphics/pokemon/basculegion/iconf.png differ diff --git a/graphics/pokemon/basculin/white_striped/back.png b/graphics/pokemon/basculin/white_striped/back.png new file mode 100644 index 000000000..d8faa1575 Binary files /dev/null and b/graphics/pokemon/basculin/white_striped/back.png differ diff --git a/graphics/pokemon/basculin/white_striped/front.png b/graphics/pokemon/basculin/white_striped/front.png new file mode 100644 index 000000000..f16202e14 Binary files /dev/null and b/graphics/pokemon/basculin/white_striped/front.png differ diff --git a/graphics/pokemon/basculin/white_striped/icon.png b/graphics/pokemon/basculin/white_striped/icon.png new file mode 100644 index 000000000..a69c4e51a Binary files /dev/null and b/graphics/pokemon/basculin/white_striped/icon.png differ diff --git a/graphics/pokemon/basculin/white_striped/normal.pal b/graphics/pokemon/basculin/white_striped/normal.pal new file mode 100644 index 000000000..5e82d654d --- /dev/null +++ b/graphics/pokemon/basculin/white_striped/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +72 80 80 +8 8 8 +224 224 224 +160 160 160 +32 48 56 +16 16 16 +64 80 80 +120 168 168 +168 216 224 +64 160 80 +0 64 32 +40 112 48 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/basculin/white_striped/shiny.pal b/graphics/pokemon/basculin/white_striped/shiny.pal new file mode 100644 index 000000000..766d07db7 --- /dev/null +++ b/graphics/pokemon/basculin/white_striped/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +72 80 80 +8 8 8 +224 224 224 +160 160 160 +32 48 56 +16 16 16 +64 80 80 +120 168 168 +168 216 224 +120 168 56 +40 64 0 +80 112 40 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/braviary/hisuian/back.png b/graphics/pokemon/braviary/hisuian/back.png new file mode 100644 index 000000000..e314179b2 Binary files /dev/null and b/graphics/pokemon/braviary/hisuian/back.png differ diff --git a/graphics/pokemon/braviary/hisuian/front.png b/graphics/pokemon/braviary/hisuian/front.png new file mode 100644 index 000000000..63fe93214 Binary files /dev/null and b/graphics/pokemon/braviary/hisuian/front.png differ diff --git a/graphics/pokemon/braviary/hisuian/icon.png b/graphics/pokemon/braviary/hisuian/icon.png new file mode 100644 index 000000000..c2aa449d9 Binary files /dev/null and b/graphics/pokemon/braviary/hisuian/icon.png differ diff --git a/graphics/pokemon/braviary/hisuian/normal.pal b/graphics/pokemon/braviary/hisuian/normal.pal new file mode 100644 index 000000000..b792f9ab7 --- /dev/null +++ b/graphics/pokemon/braviary/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +104 88 80 +8 8 8 +232 232 224 +184 176 168 +56 56 64 +80 88 88 +152 64 168 +168 96 184 +32 40 40 +144 152 184 +80 184 160 +168 24 24 +240 248 248 +224 192 72 +184 128 56 diff --git a/graphics/pokemon/braviary/hisuian/shiny.pal b/graphics/pokemon/braviary/hisuian/shiny.pal new file mode 100644 index 000000000..fea702401 --- /dev/null +++ b/graphics/pokemon/braviary/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 24 24 +8 8 8 +64 64 56 +40 40 32 +56 56 64 +80 88 88 +48 176 216 +120 232 240 +32 40 40 +168 248 248 +232 248 248 +96 56 144 +240 248 248 +224 192 72 +184 128 56 diff --git a/graphics/pokemon/calyrex/icon.png b/graphics/pokemon/calyrex/icon.png new file mode 100644 index 000000000..d0a835fe0 Binary files /dev/null and b/graphics/pokemon/calyrex/icon.png differ diff --git a/graphics/pokemon/decidueye/hisuian/icon.png b/graphics/pokemon/decidueye/hisuian/icon.png new file mode 100644 index 000000000..997071396 Binary files /dev/null and b/graphics/pokemon/decidueye/hisuian/icon.png differ diff --git a/graphics/pokemon/dialga/origin/back.png b/graphics/pokemon/dialga/origin/back.png new file mode 100644 index 000000000..a9867f0bd Binary files /dev/null and b/graphics/pokemon/dialga/origin/back.png differ diff --git a/graphics/pokemon/dialga/origin/front.png b/graphics/pokemon/dialga/origin/front.png new file mode 100644 index 000000000..7e7c7aabb Binary files /dev/null and b/graphics/pokemon/dialga/origin/front.png differ diff --git a/graphics/pokemon/dialga/origin/icon.png b/graphics/pokemon/dialga/origin/icon.png new file mode 100644 index 000000000..aa6c0c3af Binary files /dev/null and b/graphics/pokemon/dialga/origin/icon.png differ diff --git a/graphics/pokemon/dialga/origin/normal.pal b/graphics/pokemon/dialga/origin/normal.pal new file mode 100644 index 000000000..e7f93264b --- /dev/null +++ b/graphics/pokemon/dialga/origin/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 160 192 +24 64 104 +152 208 240 +8 8 8 +24 88 144 +56 120 176 +64 72 80 +112 136 160 +88 128 168 +240 80 64 +64 128 248 +56 88 120 +64 112 152 +96 112 128 +0 0 0 diff --git a/graphics/pokemon/dialga/origin/shiny.pal b/graphics/pokemon/dialga/origin/shiny.pal new file mode 100644 index 000000000..274c103f5 --- /dev/null +++ b/graphics/pokemon/dialga/origin/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +112 184 152 +8 104 120 +152 240 144 +8 8 8 +8 144 152 +24 200 200 +112 112 72 +184 200 168 +128 200 176 +240 80 64 +64 128 248 +80 136 112 +96 176 160 +152 168 112 +0 0 0 diff --git a/graphics/pokemon/electrode/hisuian/back.png b/graphics/pokemon/electrode/hisuian/back.png new file mode 100644 index 000000000..51e6686d2 Binary files /dev/null and b/graphics/pokemon/electrode/hisuian/back.png differ diff --git a/graphics/pokemon/electrode/hisuian/front.png b/graphics/pokemon/electrode/hisuian/front.png new file mode 100644 index 000000000..1e568d376 Binary files /dev/null and b/graphics/pokemon/electrode/hisuian/front.png differ diff --git a/graphics/pokemon/electrode/hisuian/icon.png b/graphics/pokemon/electrode/hisuian/icon.png new file mode 100644 index 000000000..d624e246c Binary files /dev/null and b/graphics/pokemon/electrode/hisuian/icon.png differ diff --git a/graphics/pokemon/electrode/hisuian/normal.pal b/graphics/pokemon/electrode/hisuian/normal.pal new file mode 100644 index 000000000..e41498044 --- /dev/null +++ b/graphics/pokemon/electrode/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +104 72 32 +152 104 32 +240 216 136 +184 136 40 +232 176 80 +248 240 192 +16 16 16 +184 48 24 +248 80 32 +88 0 0 +184 168 168 +232 232 232 +80 72 64 +128 16 16 +240 216 136 diff --git a/graphics/pokemon/electrode/hisuian/shiny.pal b/graphics/pokemon/electrode/hisuian/shiny.pal new file mode 100644 index 000000000..fb741c2d5 --- /dev/null +++ b/graphics/pokemon/electrode/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +120 104 72 +152 144 80 +232 224 184 +152 128 80 +184 168 120 +240 232 208 +16 16 16 +40 40 40 +80 80 80 +16 8 8 +184 168 168 +232 232 232 +80 72 64 +16 8 8 +224 200 136 diff --git a/graphics/pokemon/enamorus/icon.png b/graphics/pokemon/enamorus/icon.png new file mode 100644 index 000000000..c127c0734 Binary files /dev/null and b/graphics/pokemon/enamorus/icon.png differ diff --git a/graphics/pokemon/enamorus/therian/icon.png b/graphics/pokemon/enamorus/therian/icon.png new file mode 100644 index 000000000..dfca5087f Binary files /dev/null and b/graphics/pokemon/enamorus/therian/icon.png differ diff --git a/graphics/pokemon/goodra/hisuian/back.png b/graphics/pokemon/goodra/hisuian/back.png new file mode 100644 index 000000000..a454fcde6 Binary files /dev/null and b/graphics/pokemon/goodra/hisuian/back.png differ diff --git a/graphics/pokemon/goodra/hisuian/front.png b/graphics/pokemon/goodra/hisuian/front.png new file mode 100644 index 000000000..edd5e3c3a Binary files /dev/null and b/graphics/pokemon/goodra/hisuian/front.png differ diff --git a/graphics/pokemon/goodra/hisuian/icon.png b/graphics/pokemon/goodra/hisuian/icon.png new file mode 100644 index 000000000..321685434 Binary files /dev/null and b/graphics/pokemon/goodra/hisuian/icon.png differ diff --git a/graphics/pokemon/goodra/hisuian/normal.pal b/graphics/pokemon/goodra/hisuian/normal.pal new file mode 100644 index 000000000..28da385cb --- /dev/null +++ b/graphics/pokemon/goodra/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 176 232 +128 96 112 +216 192 208 +136 136 136 +8 8 8 +240 240 240 +200 200 200 +168 152 168 +64 64 64 +176 176 176 +96 96 104 +136 104 168 +64 56 88 +168 152 192 +232 208 232 +16 16 16 diff --git a/graphics/pokemon/goodra/hisuian/shiny.pal b/graphics/pokemon/goodra/hisuian/shiny.pal new file mode 100644 index 000000000..73fd87e71 --- /dev/null +++ b/graphics/pokemon/goodra/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 96 112 +216 192 208 +120 104 56 +8 8 8 +240 240 240 +200 176 88 +168 152 168 +56 40 32 +160 136 72 +80 64 40 +136 104 168 +64 56 88 +168 152 192 +232 208 232 +16 16 16 diff --git a/graphics/pokemon/growlithe/hisuian/back.png b/graphics/pokemon/growlithe/hisuian/back.png new file mode 100644 index 000000000..0ed279c6a Binary files /dev/null and b/graphics/pokemon/growlithe/hisuian/back.png differ diff --git a/graphics/pokemon/growlithe/hisuian/front.png b/graphics/pokemon/growlithe/hisuian/front.png new file mode 100644 index 000000000..c0d6232a9 Binary files /dev/null and b/graphics/pokemon/growlithe/hisuian/front.png differ diff --git a/graphics/pokemon/growlithe/hisuian/icon.png b/graphics/pokemon/growlithe/hisuian/icon.png new file mode 100644 index 000000000..b2b03733f Binary files /dev/null and b/graphics/pokemon/growlithe/hisuian/icon.png differ diff --git a/graphics/pokemon/growlithe/hisuian/normal.pal b/graphics/pokemon/growlithe/hisuian/normal.pal new file mode 100644 index 000000000..e6d97462b --- /dev/null +++ b/graphics/pokemon/growlithe/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 72 88 +200 192 184 +16 16 16 +120 104 128 +104 16 8 +248 80 48 +184 32 32 +160 144 160 +112 96 32 +208 128 112 +184 152 120 +224 200 160 +72 72 72 +0 0 0 +16 0 0 diff --git a/graphics/pokemon/growlithe/hisuian/shiny.pal b/graphics/pokemon/growlithe/hisuian/shiny.pal new file mode 100644 index 000000000..3406fee67 --- /dev/null +++ b/graphics/pokemon/growlithe/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +112 104 96 +232 232 232 +16 16 16 +160 152 144 +88 72 40 +232 184 128 +168 136 48 +208 200 192 +112 96 32 +208 128 112 +184 152 120 +224 200 160 +72 72 72 +0 0 0 +16 0 0 diff --git a/graphics/pokemon/kleavor/back.png b/graphics/pokemon/kleavor/back.png new file mode 100644 index 000000000..4300b2afb Binary files /dev/null and b/graphics/pokemon/kleavor/back.png differ diff --git a/graphics/pokemon/kleavor/front.png b/graphics/pokemon/kleavor/front.png new file mode 100644 index 000000000..cd2341c2a Binary files /dev/null and b/graphics/pokemon/kleavor/front.png differ diff --git a/graphics/pokemon/kleavor/icon.png b/graphics/pokemon/kleavor/icon.png new file mode 100644 index 000000000..4443cc143 Binary files /dev/null and b/graphics/pokemon/kleavor/icon.png differ diff --git a/graphics/pokemon/kleavor/normal.pal b/graphics/pokemon/kleavor/normal.pal new file mode 100644 index 000000000..fd47f8a2d --- /dev/null +++ b/graphics/pokemon/kleavor/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +48 32 32 +144 112 112 +16 16 16 +88 64 64 +128 80 40 +224 192 128 +248 248 248 +200 200 168 +192 136 80 +240 224 184 +200 184 144 +160 144 104 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/kleavor/shiny.pal b/graphics/pokemon/kleavor/shiny.pal new file mode 100644 index 000000000..5634b4c70 --- /dev/null +++ b/graphics/pokemon/kleavor/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +32 32 32 +104 104 104 +16 16 16 +56 56 56 +72 80 48 +144 168 104 +248 248 248 +200 200 168 +104 128 56 +216 184 104 +184 128 56 +136 80 24 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/lilligant/hisuian/back.png b/graphics/pokemon/lilligant/hisuian/back.png new file mode 100644 index 000000000..aefd8b022 Binary files /dev/null and b/graphics/pokemon/lilligant/hisuian/back.png differ diff --git a/graphics/pokemon/lilligant/hisuian/front.png b/graphics/pokemon/lilligant/hisuian/front.png new file mode 100644 index 000000000..6699ad47f Binary files /dev/null and b/graphics/pokemon/lilligant/hisuian/front.png differ diff --git a/graphics/pokemon/lilligant/hisuian/icon.png b/graphics/pokemon/lilligant/hisuian/icon.png new file mode 100644 index 000000000..c8149843f Binary files /dev/null and b/graphics/pokemon/lilligant/hisuian/icon.png differ diff --git a/graphics/pokemon/lilligant/hisuian/normal.pal b/graphics/pokemon/lilligant/hisuian/normal.pal new file mode 100644 index 000000000..4160f1ed6 --- /dev/null +++ b/graphics/pokemon/lilligant/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +184 160 80 +96 64 64 +248 128 184 +184 88 152 +248 216 64 +16 16 16 +80 96 40 +48 88 48 +248 248 248 +72 176 64 +200 192 184 +72 128 72 +120 168 48 +136 232 40 +184 88 152 diff --git a/graphics/pokemon/lilligant/hisuian/shiny.pal b/graphics/pokemon/lilligant/hisuian/shiny.pal new file mode 100644 index 000000000..0f934d2ee --- /dev/null +++ b/graphics/pokemon/lilligant/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +184 160 80 +112 64 32 +248 104 56 +184 96 56 +248 216 64 +16 16 16 +96 96 40 +48 64 88 +248 248 248 +56 176 112 +200 192 184 +32 128 128 +112 168 64 +144 224 80 +184 88 152 diff --git a/graphics/pokemon/overqwil/back.png b/graphics/pokemon/overqwil/back.png new file mode 100644 index 000000000..79670b060 Binary files /dev/null and b/graphics/pokemon/overqwil/back.png differ diff --git a/graphics/pokemon/overqwil/front.png b/graphics/pokemon/overqwil/front.png new file mode 100644 index 000000000..fa6f3121a Binary files /dev/null and b/graphics/pokemon/overqwil/front.png differ diff --git a/graphics/pokemon/overqwil/icon.png b/graphics/pokemon/overqwil/icon.png new file mode 100644 index 000000000..661013b72 Binary files /dev/null and b/graphics/pokemon/overqwil/icon.png differ diff --git a/graphics/pokemon/overqwil/normal.pal b/graphics/pokemon/overqwil/normal.pal new file mode 100644 index 000000000..edf871d9a --- /dev/null +++ b/graphics/pokemon/overqwil/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +120 192 168 +120 32 96 +240 72 208 +16 16 16 +160 72 200 +96 96 104 +184 56 152 +40 40 48 +64 64 72 +128 128 128 +88 80 56 +208 200 176 +176 168 120 +136 120 88 +248 248 248 +0 0 0 diff --git a/graphics/pokemon/overqwil/shiny.pal b/graphics/pokemon/overqwil/shiny.pal new file mode 100644 index 000000000..d791dac4e --- /dev/null +++ b/graphics/pokemon/overqwil/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +120 192 168 +40 48 128 +80 96 224 +16 16 16 +96 136 216 +168 184 208 +64 64 200 +80 80 96 +136 136 152 +208 224 240 +64 64 48 +200 192 184 +168 160 136 +112 112 96 +248 248 248 +0 0 0 diff --git a/graphics/pokemon/palkia/origin/back.png b/graphics/pokemon/palkia/origin/back.png new file mode 100644 index 000000000..1c3bbd210 Binary files /dev/null and b/graphics/pokemon/palkia/origin/back.png differ diff --git a/graphics/pokemon/palkia/origin/front.png b/graphics/pokemon/palkia/origin/front.png new file mode 100644 index 000000000..3147470d6 Binary files /dev/null and b/graphics/pokemon/palkia/origin/front.png differ diff --git a/graphics/pokemon/palkia/origin/icon.png b/graphics/pokemon/palkia/origin/icon.png new file mode 100644 index 000000000..772e8c864 Binary files /dev/null and b/graphics/pokemon/palkia/origin/icon.png differ diff --git a/graphics/pokemon/palkia/origin/normal.pal b/graphics/pokemon/palkia/origin/normal.pal new file mode 100644 index 000000000..428dc93d3 --- /dev/null +++ b/graphics/pokemon/palkia/origin/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 80 120 +96 120 144 +200 176 208 +152 184 200 +232 216 240 +152 128 176 +192 216 224 +8 8 8 +104 56 112 +216 104 80 +152 88 160 +184 104 208 +240 160 152 +224 192 184 +224 208 200 diff --git a/graphics/pokemon/palkia/origin/shiny.pal b/graphics/pokemon/palkia/origin/shiny.pal new file mode 100644 index 000000000..f520c1e3b --- /dev/null +++ b/graphics/pokemon/palkia/origin/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 32 56 +128 112 192 +224 176 176 +176 168 216 +248 216 232 +200 104 112 +216 216 248 +8 8 8 +128 32 80 +216 104 80 +168 48 80 +208 96 136 +240 160 152 +224 192 184 +224 208 200 diff --git a/graphics/pokemon/qwilfish/hisuian/back.png b/graphics/pokemon/qwilfish/hisuian/back.png new file mode 100644 index 000000000..48a01e06f Binary files /dev/null and b/graphics/pokemon/qwilfish/hisuian/back.png differ diff --git a/graphics/pokemon/qwilfish/hisuian/front.png b/graphics/pokemon/qwilfish/hisuian/front.png new file mode 100644 index 000000000..a32988cf7 Binary files /dev/null and b/graphics/pokemon/qwilfish/hisuian/front.png differ diff --git a/graphics/pokemon/qwilfish/hisuian/icon.png b/graphics/pokemon/qwilfish/hisuian/icon.png new file mode 100644 index 000000000..6936dfe88 Binary files /dev/null and b/graphics/pokemon/qwilfish/hisuian/icon.png differ diff --git a/graphics/pokemon/qwilfish/hisuian/normal.pal b/graphics/pokemon/qwilfish/hisuian/normal.pal new file mode 100644 index 000000000..b1a2bcd32 --- /dev/null +++ b/graphics/pokemon/qwilfish/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +120 32 96 +240 64 208 +16 16 16 +184 48 152 +128 128 128 +64 64 72 +40 40 48 +88 88 96 +152 136 80 +176 160 120 +184 192 192 +88 80 40 +248 248 248 +184 176 144 +0 0 0 diff --git a/graphics/pokemon/qwilfish/hisuian/shiny.pal b/graphics/pokemon/qwilfish/hisuian/shiny.pal new file mode 100644 index 000000000..79d490248 --- /dev/null +++ b/graphics/pokemon/qwilfish/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +40 48 128 +120 112 208 +16 16 16 +96 88 184 +208 224 240 +136 136 152 +80 80 96 +168 184 208 +168 160 136 +184 184 168 +184 192 192 +96 96 80 +248 248 248 +200 192 184 +0 0 0 diff --git a/graphics/pokemon/samurott/hisuian/icon.png b/graphics/pokemon/samurott/hisuian/icon.png new file mode 100644 index 000000000..fdcbe6718 Binary files /dev/null and b/graphics/pokemon/samurott/hisuian/icon.png differ diff --git a/graphics/pokemon/sliggoo/hisuian/back.png b/graphics/pokemon/sliggoo/hisuian/back.png new file mode 100644 index 000000000..ad4289b1b Binary files /dev/null and b/graphics/pokemon/sliggoo/hisuian/back.png differ diff --git a/graphics/pokemon/sliggoo/hisuian/front.png b/graphics/pokemon/sliggoo/hisuian/front.png new file mode 100644 index 000000000..81322c485 Binary files /dev/null and b/graphics/pokemon/sliggoo/hisuian/front.png differ diff --git a/graphics/pokemon/sliggoo/hisuian/icon.png b/graphics/pokemon/sliggoo/hisuian/icon.png new file mode 100644 index 000000000..c66baae5a Binary files /dev/null and b/graphics/pokemon/sliggoo/hisuian/icon.png differ diff --git a/graphics/pokemon/sliggoo/hisuian/normal.pal b/graphics/pokemon/sliggoo/hisuian/normal.pal new file mode 100644 index 000000000..5f3e5ae0c --- /dev/null +++ b/graphics/pokemon/sliggoo/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +232 224 176 +128 96 112 +240 240 240 +216 192 208 +168 152 168 +8 8 8 +136 136 136 +72 152 80 +200 200 200 +64 64 64 +88 200 80 +176 176 176 +168 152 192 +64 56 88 +136 104 168 +104 96 104 diff --git a/graphics/pokemon/sliggoo/hisuian/shiny.pal b/graphics/pokemon/sliggoo/hisuian/shiny.pal new file mode 100644 index 000000000..9cccd5d39 --- /dev/null +++ b/graphics/pokemon/sliggoo/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +232 224 176 +128 96 112 +240 240 240 +216 192 208 +168 152 168 +8 8 8 +120 104 56 +72 152 80 +200 176 88 +56 40 32 +88 200 80 +160 136 72 +168 152 192 +64 56 88 +136 104 168 +104 96 104 diff --git a/graphics/pokemon/sneasel/hisuian/back.png b/graphics/pokemon/sneasel/hisuian/back.png new file mode 100644 index 000000000..ea1be20c8 Binary files /dev/null and b/graphics/pokemon/sneasel/hisuian/back.png differ diff --git a/graphics/pokemon/sneasel/hisuian/front.png b/graphics/pokemon/sneasel/hisuian/front.png new file mode 100644 index 000000000..75e3872b1 Binary files /dev/null and b/graphics/pokemon/sneasel/hisuian/front.png differ diff --git a/graphics/pokemon/sneasel/hisuian/icon.png b/graphics/pokemon/sneasel/hisuian/icon.png new file mode 100644 index 000000000..bd9cae88b Binary files /dev/null and b/graphics/pokemon/sneasel/hisuian/icon.png differ diff --git a/graphics/pokemon/sneasel/hisuian/normal.pal b/graphics/pokemon/sneasel/hisuian/normal.pal new file mode 100644 index 000000000..2e28acaac --- /dev/null +++ b/graphics/pokemon/sneasel/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +120 88 176 +80 48 104 +160 120 216 +56 40 64 +152 152 160 +16 16 16 +216 216 224 +184 184 192 +128 96 160 +160 120 56 +232 192 48 +88 56 120 +240 240 248 +120 120 120 +232 56 64 diff --git a/graphics/pokemon/sneasel/hisuian/shiny.pal b/graphics/pokemon/sneasel/hisuian/shiny.pal new file mode 100644 index 000000000..b57227c93 --- /dev/null +++ b/graphics/pokemon/sneasel/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 144 40 +168 72 16 +248 200 80 +32 24 32 +64 88 80 +16 16 16 +112 160 120 +88 128 104 +80 72 88 +64 112 224 +136 160 240 +48 40 48 +240 240 248 +120 120 120 +72 176 96 diff --git a/graphics/pokemon/sneasler/icon.png b/graphics/pokemon/sneasler/icon.png new file mode 100644 index 000000000..4238b0e6a Binary files /dev/null and b/graphics/pokemon/sneasler/icon.png differ diff --git a/graphics/pokemon/typhlosion/hisuian/back.png b/graphics/pokemon/typhlosion/hisuian/back.png new file mode 100644 index 000000000..be0255b32 Binary files /dev/null and b/graphics/pokemon/typhlosion/hisuian/back.png differ diff --git a/graphics/pokemon/typhlosion/hisuian/front.png b/graphics/pokemon/typhlosion/hisuian/front.png new file mode 100644 index 000000000..58c7f9e41 Binary files /dev/null and b/graphics/pokemon/typhlosion/hisuian/front.png differ diff --git a/graphics/pokemon/typhlosion/hisuian/icon.png b/graphics/pokemon/typhlosion/hisuian/icon.png new file mode 100644 index 000000000..c3e047496 Binary files /dev/null and b/graphics/pokemon/typhlosion/hisuian/icon.png differ diff --git a/graphics/pokemon/typhlosion/hisuian/normal.pal b/graphics/pokemon/typhlosion/hisuian/normal.pal new file mode 100644 index 000000000..cb03a42bc --- /dev/null +++ b/graphics/pokemon/typhlosion/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +240 88 160 +232 96 224 +176 56 152 +240 72 104 +56 48 96 +88 72 152 +16 16 80 +96 80 176 +136 128 80 +216 216 168 +16 16 16 +232 136 0 +248 248 248 +176 176 120 +80 64 48 diff --git a/graphics/pokemon/typhlosion/hisuian/shiny.pal b/graphics/pokemon/typhlosion/hisuian/shiny.pal new file mode 100644 index 000000000..c4892102f --- /dev/null +++ b/graphics/pokemon/typhlosion/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +240 88 160 +232 96 224 +176 56 152 +240 72 104 +40 64 96 +64 88 136 +8 32 88 +64 120 152 +136 128 80 +216 216 168 +16 16 16 +232 136 0 +248 248 248 +176 176 120 +80 64 48 diff --git a/graphics/pokemon/ursaluna/back.png b/graphics/pokemon/ursaluna/back.png new file mode 100644 index 000000000..e221d873e Binary files /dev/null and b/graphics/pokemon/ursaluna/back.png differ diff --git a/graphics/pokemon/ursaluna/front.png b/graphics/pokemon/ursaluna/front.png new file mode 100644 index 000000000..954e6b802 Binary files /dev/null and b/graphics/pokemon/ursaluna/front.png differ diff --git a/graphics/pokemon/ursaluna/icon.png b/graphics/pokemon/ursaluna/icon.png new file mode 100644 index 000000000..8a8470407 Binary files /dev/null and b/graphics/pokemon/ursaluna/icon.png differ diff --git a/graphics/pokemon/ursaluna/normal.pal b/graphics/pokemon/ursaluna/normal.pal new file mode 100644 index 000000000..91b0d2bb0 --- /dev/null +++ b/graphics/pokemon/ursaluna/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +120 192 168 +56 32 32 +32 24 24 +96 64 56 +80 40 40 +72 64 48 +112 96 88 +152 136 128 +88 88 80 +176 176 176 +8 8 8 +184 144 40 +248 192 64 +248 248 248 +144 144 136 +0 0 0 diff --git a/graphics/pokemon/ursaluna/shiny.pal b/graphics/pokemon/ursaluna/shiny.pal new file mode 100644 index 000000000..e22b15d0e --- /dev/null +++ b/graphics/pokemon/ursaluna/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +120 192 168 +88 16 16 +48 8 0 +152 64 56 +120 32 32 +104 80 72 +160 128 112 +192 176 168 +56 48 48 +112 104 96 +8 8 8 +192 152 88 +248 248 200 +248 248 248 +80 72 72 +0 0 0 diff --git a/graphics/pokemon/voltorb/hisuian/back.png b/graphics/pokemon/voltorb/hisuian/back.png new file mode 100644 index 000000000..74016e36f Binary files /dev/null and b/graphics/pokemon/voltorb/hisuian/back.png differ diff --git a/graphics/pokemon/voltorb/hisuian/front.png b/graphics/pokemon/voltorb/hisuian/front.png new file mode 100644 index 000000000..12052e98d Binary files /dev/null and b/graphics/pokemon/voltorb/hisuian/front.png differ diff --git a/graphics/pokemon/voltorb/hisuian/icon.png b/graphics/pokemon/voltorb/hisuian/icon.png new file mode 100644 index 000000000..2a35e4ec3 Binary files /dev/null and b/graphics/pokemon/voltorb/hisuian/icon.png differ diff --git a/graphics/pokemon/voltorb/hisuian/normal.pal b/graphics/pokemon/voltorb/hisuian/normal.pal new file mode 100644 index 000000000..55a3a1602 --- /dev/null +++ b/graphics/pokemon/voltorb/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +16 16 16 +120 32 0 +192 72 24 +232 104 0 +216 88 0 +248 144 56 +248 176 120 +216 200 200 +216 168 96 +248 248 248 +104 96 88 +184 112 40 +240 208 128 +104 96 88 +0 0 0 diff --git a/graphics/pokemon/voltorb/hisuian/shiny.pal b/graphics/pokemon/voltorb/hisuian/shiny.pal new file mode 100644 index 000000000..6b912371e --- /dev/null +++ b/graphics/pokemon/voltorb/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +16 16 16 +32 32 32 +64 56 56 +88 88 88 +72 72 72 +120 112 120 +160 152 160 +200 200 208 +208 168 80 +248 248 248 +96 96 104 +160 120 48 +232 208 136 +104 96 88 +0 0 0 diff --git a/graphics/pokemon/wyrdeer/icon.png b/graphics/pokemon/wyrdeer/icon.png new file mode 100644 index 000000000..905dfe083 Binary files /dev/null and b/graphics/pokemon/wyrdeer/icon.png differ diff --git a/graphics/pokemon/zoroark/hisuian/back.png b/graphics/pokemon/zoroark/hisuian/back.png new file mode 100644 index 000000000..8a252b305 Binary files /dev/null and b/graphics/pokemon/zoroark/hisuian/back.png differ diff --git a/graphics/pokemon/zoroark/hisuian/front.png b/graphics/pokemon/zoroark/hisuian/front.png new file mode 100644 index 000000000..bf4e40c15 Binary files /dev/null and b/graphics/pokemon/zoroark/hisuian/front.png differ diff --git a/graphics/pokemon/zoroark/hisuian/icon.png b/graphics/pokemon/zoroark/hisuian/icon.png new file mode 100644 index 000000000..6c4f6faf1 Binary files /dev/null and b/graphics/pokemon/zoroark/hisuian/icon.png differ diff --git a/graphics/pokemon/zoroark/hisuian/normal.pal b/graphics/pokemon/zoroark/hisuian/normal.pal new file mode 100644 index 000000000..16e1aed00 --- /dev/null +++ b/graphics/pokemon/zoroark/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +144 24 32 +96 88 96 +216 88 80 +248 248 248 +224 144 144 +16 16 16 +192 56 80 +144 136 144 +192 176 184 +56 56 56 +208 208 208 +88 64 88 +176 112 112 +184 192 184 +240 232 32 diff --git a/graphics/pokemon/zoroark/hisuian/shiny.pal b/graphics/pokemon/zoroark/hisuian/shiny.pal new file mode 100644 index 000000000..5b3e2797a --- /dev/null +++ b/graphics/pokemon/zoroark/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 48 120 +96 88 96 +176 112 208 +248 248 248 +208 144 224 +16 16 16 +144 80 168 +144 136 144 +192 176 184 +56 48 56 +208 208 208 +88 64 88 +176 104 184 +136 128 136 +240 232 32 diff --git a/graphics/pokemon/zorua/hisuian/back.png b/graphics/pokemon/zorua/hisuian/back.png new file mode 100644 index 000000000..1268b09e0 Binary files /dev/null and b/graphics/pokemon/zorua/hisuian/back.png differ diff --git a/graphics/pokemon/zorua/hisuian/front.png b/graphics/pokemon/zorua/hisuian/front.png new file mode 100644 index 000000000..68e861aff Binary files /dev/null and b/graphics/pokemon/zorua/hisuian/front.png differ diff --git a/graphics/pokemon/zorua/hisuian/icon.png b/graphics/pokemon/zorua/hisuian/icon.png new file mode 100644 index 000000000..17f9229a2 Binary files /dev/null and b/graphics/pokemon/zorua/hisuian/icon.png differ diff --git a/graphics/pokemon/zorua/hisuian/normal.pal b/graphics/pokemon/zorua/hisuian/normal.pal new file mode 100644 index 000000000..98c4a9228 --- /dev/null +++ b/graphics/pokemon/zorua/hisuian/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +112 144 184 +144 24 32 +216 88 80 +224 144 144 +96 88 96 +248 248 248 +16 16 16 +192 176 184 +56 56 56 +184 192 184 +88 64 88 +144 136 144 +192 56 80 +248 168 24 +216 120 0 +144 136 144 diff --git a/graphics/pokemon/zorua/hisuian/shiny.pal b/graphics/pokemon/zorua/hisuian/shiny.pal new file mode 100644 index 000000000..b88eac1a8 --- /dev/null +++ b/graphics/pokemon/zorua/hisuian/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +112 144 184 +24 80 120 +64 152 224 +144 216 224 +96 88 96 +248 248 248 +16 16 16 +192 176 184 +56 48 56 +136 128 136 +88 64 88 +104 96 104 +48 120 168 +248 168 24 +216 120 0 +144 136 144 diff --git a/graphics/types/fairy.png b/graphics/types/fairy.png index d8170f64f..498386c20 100644 Binary files a/graphics/types/fairy.png and b/graphics/types/fairy.png differ diff --git a/include/battle.h b/include/battle.h index d52d23429..18efcf481 100644 --- a/include/battle.h +++ b/include/battle.h @@ -14,9 +14,8 @@ #include "pokeball.h" #include "battle_debug.h" -#define GET_BATTLER_POSITION(battler) (gBattlerPositions[battler]) #define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE) -#define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE) +#define GET_BATTLER_SIDE2(battler) (gBattlerPositions[battler] & BIT_SIDE) // Used to exclude moves learned temporarily by Transform or Mimic #define MOVE_IS_PERMANENT(battler, moveSlot) \ @@ -147,6 +146,7 @@ struct ProtectStruct u16 pranksterElevated:1; u16 quickDraw:1; u16 beakBlastCharge:1; + u16 quash:1; u32 physicalDmg; u32 specialDmg; u8 physicalBattlerId; @@ -178,6 +178,7 @@ struct SpecialStatus u8 dancerOriginalTarget:3; u8 announceNeutralizingGas:1; // See Cmd_switchineffects u8 neutralizingGasRemoved:1; // See VARIOUS_TRY_END_NEUTRALIZING_GAS + u8 affectionEndured:1; s32 dmg; s32 physicalDmg; s32 specialDmg; @@ -513,7 +514,7 @@ struct BattleStruct u8 faintedActionsState; u8 faintedActionsBattlerId; u32 expValue; - u8 field_52; + u8 scriptPartyIdx; // for printing the nickname u8 sentInPokes; bool8 selectionScriptFinished[MAX_BATTLERS_COUNT]; u8 battlerPartyIndexes[MAX_BATTLERS_COUNT]; @@ -619,6 +620,9 @@ struct BattleStruct u8 stickyWebUser; 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. + // When using a move which hits multiple opponents which is then bounced by a target, we need to make sure, the move hits both opponents, the one with bounce, and the one without. + u8 attackerBeforeBounce:2; + u8 targetsDone[MAX_BATTLERS_COUNT]; // Each battler as a bit. bool8 allowedToChangeFormInWeather[PARTY_SIZE][2]; // For each party member and side, used by Ice Face. }; @@ -670,7 +674,7 @@ struct BattleStruct #define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + ((stage) << 3) + (goesDown << 7)) #define SET_STATCHANGER2(dst, statId, stage, goesDown)(dst = (statId) + ((stage) << 3) + (goesDown << 7)) -// NOTE: The members of this struct have hard-coded offsets +// NOTE: The members of this struct have hard-coded offsets // in include/constants/battle_script_commands.h struct BattleScripting { @@ -760,7 +764,7 @@ struct BattleHealthboxInfo u8 specialAnimActive:1; // x40 u8 triedShinyMonAnim:1; u8 finishedShinyMonAnim:1; - u8 field_1_x1E:4; + u8 opponentDrawPartyStatusSummaryDelay:4; u8 bgmRestored:1; u8 waitForCry:1; u8 healthboxSlideInStarted:1; diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 5e66577e3..11eba7b66 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -5,7 +5,7 @@ #define AI_IS_FASTER 0 #define AI_IS_SLOWER 1 -#define FOE(battler) ((battler ^ BIT_SIDE) & BIT_SIDE) +#define FOE(battler) ((BATTLE_OPPOSITE(battler)) & BIT_SIDE) bool32 AI_RandLessThan(u8 val); void RecordLastUsedMoveByTarget(void); diff --git a/include/battle_anim.h b/include/battle_anim.h index e1dd85384..883934f14 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -124,7 +124,7 @@ void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode); 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 AnimDummyReturnArg(u8 battler); +u8 GetSpritePalIdxByBattler(u8 battler); s16 CloneBattlerSpriteWithBlend(u8); void DestroySpriteWithActiveSheet(struct Sprite *); u8 CreateInvisibleSpriteCopy(int, u8, int); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 769dccbd6..e1ab98b0c 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -208,9 +208,7 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); // emitters void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck); -void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data); -void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused void BtlController_EmitLoadMonSprite(u8 bufferId); void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit); void BtlController_EmitReturnMonToBall(u8 bufferId, bool8 skipAnim); @@ -218,10 +216,7 @@ void BtlController_EmitDrawTrainerPic(u8 bufferId); void BtlController_EmitTrainerSlide(u8 bufferId); void BtlController_EmitTrainerSlideBack(u8 bufferId); void BtlController_EmitFaintAnimation(u8 bufferId); -void BtlController_EmitPaletteFade(u8 bufferId); // unused -void BtlController_EmitSuccessBallThrowAnim(u8 bufferId); // unused void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId); -void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data); // unused void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); void BtlController_EmitPrintString(u8 bufferId, u16 stringId); void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId); @@ -230,24 +225,15 @@ void BtlController_EmitYesNoBox(u8 bufferId); void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder); void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u16 abilityId, u8 *data); -void BtlController_EmitCmd23(u8 bufferId); // unused void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue); void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, s32 expPoints); void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2); void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status); -void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data); -void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused -void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data); // unused -void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data); // unused void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u32 ret32); void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder); void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret); void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret); -void BtlController_EmitClearUnkVar(u8 bufferId); // unused -void BtlController_EmitSetUnkVar(u8 bufferId, u8 b); // unused -void BtlController_EmitClearUnkFlag(u8 bufferId); // unused -void BtlController_EmitToggleUnkFlag(u8 bufferId); // unused void BtlController_EmitHitAnimation(u8 bufferId); void BtlController_EmitCantSwitch(u8 bufferId); void BtlController_EmitPlaySE(u8 bufferId, u16 songId); diff --git a/include/battle_interface.h b/include/battle_interface.h index 29cb45b0f..c82f2acc2 100644 --- a/include/battle_interface.h +++ b/include/battle_interface.h @@ -6,7 +6,8 @@ enum { HP_CURRENT, - HP_MAX + HP_MAX, + HP_BOTH }; enum @@ -34,22 +35,25 @@ enum #define TAG_HEALTHBAR_PLAYER2_TILE 0xD706 #define TAG_HEALTHBAR_OPPONENT2_TILE 0xD707 +#define TAG_HEALTHBOX_PALS_1 0xD709 +#define TAG_HEALTHBOX_PALS_2 0xD70A #define TAG_HEALTHBOX_SAFARI_TILE 0xD70B - #define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C + +#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710 +#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712 + #define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714 +#define TAG_HEALTHBAR_PAL TAG_HEALTHBAR_PLAYER1_TILE +#define TAG_HEALTHBOX_PAL TAG_HEALTHBOX_PLAYER1_TILE + #define TAG_MEGA_TRIGGER_TILE 0xD777 #define TAG_MEGA_INDICATOR_TILE 0xD778 #define TAG_ALPHA_INDICATOR_TILE 0xD779 #define TAG_OMEGA_INDICATOR_TILE 0xD77A #define TAG_ZMOVE_TRIGGER_TILE 0xD77B -#define TAG_HEALTHBOX_PAL 0xD6FF -#define TAG_HEALTHBAR_PAL 0xD704 -#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710 -#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712 - #define TAG_MEGA_TRIGGER_PAL 0xD777 #define TAG_MEGA_INDICATOR_PAL 0xD778 #define TAG_ALPHA_INDICATOR_PAL 0xD779 @@ -72,6 +76,7 @@ enum HEALTHBOX_SAFARI_BALLS_TEXT }; +u32 WhichBattleCoords(u32 battlerId); u8 GetMegaIndicatorSpriteId(u32 healthboxSpriteId); u8 CreateBattlerHealthboxSprites(u8 battler); u8 CreateSafariPlayerHealthboxSprites(void); @@ -82,7 +87,7 @@ void DestoryHealthboxSprite(u8 healthboxSpriteId); void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); void UpdateOamPriorityInAllHealthboxes(u8 priority, bool32 hideHpBoxes); void InitBattlerHealthboxCoords(u8 battler); -void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent); +void UpdateHpTextInHealthbox(u32 healthboxSpriteId, u32 maxOrCurrent, s16 currHp, s16 maxHp); void SwapHpBarsWithHpText(void); void ChangeMegaTriggerSprite(u8 spriteId, u8 animId); void CreateMegaTriggerSprite(u8 battlerId, u8 palId); diff --git a/include/battle_message.h b/include/battle_message.h index 4102bb5c9..5cbf8f522 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -218,7 +218,7 @@ struct BattleMsgData u16 lastItem; u16 lastAbility; u8 scrActive; - u8 unk1605E; + u8 bakScriptPartyIdx; u8 hpScale; u8 itemEffectBattler; u8 moveType; @@ -309,7 +309,7 @@ extern const u8 gText_OpponentMon1Name[]; extern const u8 gText_Mind[]; extern const u8 gText_Skill[]; extern const u8 gText_Body[]; -extern const u8 gText_Judgement[]; +extern const u8 gText_Judgment[]; extern const u8 gText_EmptyString3[]; extern const u8 gText_RecordBattleToPass[]; extern const u8 gText_BattleRecordedOnPass[]; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index a8147314c..30008dced 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -210,6 +210,7 @@ extern const u8 BattleScript_BerryPPHealEnd2[]; extern const u8 BattleScript_ItemHealHP_End2[]; extern const u8 BattleScript_ItemHealHP_Ret[]; extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; +extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItemInPalace[]; extern const u8 BattleScript_HangedOnMsg[]; extern const u8 BattleScript_BerryConfuseHealEnd2[]; extern const u8 BattleScript_BerryConfuseHealRet[]; @@ -275,6 +276,9 @@ extern const u8 BattleScript_SnowWarningActivates[]; extern const u8 BattleScript_HarvestActivates[]; extern const u8 BattleScript_ImposterActivates[]; extern const u8 BattleScript_SelectingNotAllowedMoveAssaultVest[]; +extern const u8 BattleScript_SelectingNotAllowedMoveAssaultVestInPalace[]; +extern const u8 BattleScript_SelectingNotAllowedPlaceholder[]; +extern const u8 BattleScript_SelectingNotAllowedPlaceholderInPalace[]; extern const u8 BattleScript_SelectingNotAllowedMoveGravity[]; extern const u8 BattleScript_MoveUsedGravityPrevents[]; extern const u8 BattleScript_SelectingNotAllowedMoveGravityInPalace[]; @@ -301,6 +305,7 @@ extern const u8 BattleScript_DazzlingProtected[]; extern const u8 BattleScript_MoveUsedPsychicTerrainPrevents[]; extern const u8 BattleScript_MoveUsedPowder[]; extern const u8 BattleScript_SelectingNotAllowedStuffCheeks[]; +extern const u8 BattleScript_SelectingNotAllowedStuffCheeksInPalace[]; extern const u8 BattleScript_SelectingNotAllowedBelch[]; extern const u8 BattleScript_SelectingNotAllowedBelchInPalace[]; extern const u8 BattleScript_PsychicSurgeActivates[]; @@ -405,6 +410,7 @@ extern const u8 BattleScript_BlockedByPrimalWeatherRet[]; extern const u8 BattleScript_PrimalReversion[]; extern const u8 BattleScript_HyperspaceFuryRemoveProtect[]; extern const u8 BattleScript_SelectingNotAllowedMoveGorillaTactics[]; +extern const u8 BattleScript_SelectingNotAllowedMoveGorillaTacticsInPalace[]; extern const u8 BattleScript_WanderingSpiritActivates[]; extern const u8 BattleScript_MirrorArmorReflect[]; extern const u8 BattleScript_GooeyActivates[]; @@ -420,6 +426,8 @@ extern const u8 BattleScript_MagicianActivates[]; extern const u8 BattleScript_BeakBlastSetUp[]; extern const u8 BattleScript_BeakBlastBurn[]; extern const u8 BattleScript_DefDownSpeedUp[]; +extern const u8 BattleScript_AffectionBasedStatusHeal[]; +extern const u8 BattleScript_AffectionBasedEndurance[]; extern const u8 BattleScript_IceFaceNullsDamage[]; extern const u8 BattleScript_TargetFormChangeWithString[]; extern const u8 BattleScript_TargetFormChangeWithStringEnd3[]; diff --git a/include/battle_util.h b/include/battle_util.h index d0edbc9d1..5dbefd7e7 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -7,7 +7,17 @@ #define MOVE_LIMITATION_TORMENTED (1 << 3) #define MOVE_LIMITATION_TAUNT (1 << 4) #define MOVE_LIMITATION_IMPRISON (1 << 5) -#define MOVE_LIMITATIONS_ALL 0xFF +#define MOVE_LIMITATION_ENCORE (1 << 6) +#define MOVE_LIMITATION_CHOICE_ITEM (1 << 7) +#define MOVE_LIMITATION_ASSAULT_VEST (1 << 8) +#define MOVE_LIMITATION_GRAVITY (1 << 9) +#define MOVE_LIMITATION_HEAL_BLOCK (1 << 10) +#define MOVE_LIMITATION_BELCH (1 << 11) +#define MOVE_LIMITATION_THROAT_CHOP (1 << 12) +#define MOVE_LIMITATION_STUFF_CHEEKS (1 << 13) + +#define MOVE_LIMITATION_PLACEHOLDER (1 << 15) +#define MOVE_LIMITATIONS_ALL 0xFFFF #define ABILITYEFFECT_ON_SWITCHIN 0 #define ABILITYEFFECT_ENDTURN 1 @@ -89,7 +99,7 @@ void BattleScriptPush(const u8 *bsPtr); void BattleScriptPushCursor(void); void BattleScriptPop(void); u8 TrySetCantSelectMoveBattleScript(void); -u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check); +u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u16 check); bool8 AreAllMovesUnusable(void); u8 GetImprisonedMovesCount(u8 battlerId, u16 move); u8 DoFieldEndTurnEffects(void); @@ -191,5 +201,6 @@ bool32 CanBeParalyzed(u8 battlerId); bool32 CanBeFrozen(u8 battlerId); bool32 CanBeConfused(u8 battlerId); bool32 IsBattlerTerrainAffected(u8 battlerId, u32 terrainFlag); +u32 GetMonFriendshipScore(struct Pokemon *pokemon); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/config.h b/include/config.h index 5f2fa4d2c..d6c60a2fa 100644 --- a/include/config.h +++ b/include/config.h @@ -26,7 +26,7 @@ #endif // Uncomment to fix some identified minor bugs -//#define BUGFIX +#define BUGFIX // Various undefined behavior bugs may or may not prevent compilation with // newer compilers. So always fix them when using a modern compiler. @@ -36,4 +36,21 @@ #endif #endif +// Compatibility definition for other projects to detect pokeemerald-expansion +#define RHH_EXPANSION + +// Legacy branch-based defines included for backwards compatibility +#define BATTLE_ENGINE +#define POKEMON_EXPANSION +#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_LATEST GEN_8 + #endif // GUARD_CONFIG_H diff --git a/include/constants/battle.h b/include/constants/battle.h index 37b9a637a..e2ea128c2 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -31,8 +31,8 @@ #define B_POSITION_OPPONENT_RIGHT 3 // These macros can be used with either battler ID or positions to get the partner or the opposite mon -#define BATTLE_OPPOSITE(id) ((id) ^ 1) -#define BATTLE_PARTNER(id) ((id) ^ 2) +#define BATTLE_OPPOSITE(id) ((id) ^ BIT_SIDE) +#define BATTLE_PARTNER(id) ((id) ^ BIT_FLANK) #define B_SIDE_PLAYER 0 #define B_SIDE_OPPONENT 1 @@ -81,7 +81,7 @@ #define WILD_DOUBLE_BATTLE ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER)))) #define BATTLE_TWO_VS_ONE_OPPONENT ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gTrainerBattleOpponent_B == 0xFFFF)) -#define BATTLE_TYPE_HAS_AI (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER) +#define BATTLE_TYPE_HAS_AI (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER | BATTLE_TYPE_INGAME_PARTNER) // Battle Outcome defines @@ -250,16 +250,17 @@ #define STATUS_FIELD_TERRAIN_ANY (STATUS_FIELD_GRASSY_TERRAIN | STATUS_FIELD_MISTY_TERRAIN | STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_PSYCHIC_TERRAIN) // Flags describing move's result -#define MOVE_RESULT_MISSED (1 << 0) -#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1) -#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) -#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3) -#define MOVE_RESULT_ONE_HIT_KO (1 << 4) -#define MOVE_RESULT_FAILED (1 << 5) -#define MOVE_RESULT_FOE_ENDURED (1 << 6) -#define MOVE_RESULT_FOE_HUNG_ON (1 << 7) -#define MOVE_RESULT_STURDIED (1 << 8) -#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) +#define MOVE_RESULT_MISSED (1 << 0) +#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1) +#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) +#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3) +#define MOVE_RESULT_ONE_HIT_KO (1 << 4) +#define MOVE_RESULT_FAILED (1 << 5) +#define MOVE_RESULT_FOE_ENDURED (1 << 6) +#define MOVE_RESULT_FOE_HUNG_ON (1 << 7) +#define MOVE_RESULT_STURDIED (1 << 8) +#define MOVE_RESULT_FOE_ENDURED_AFFECTION (1 << 9) +#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) // Battle Weather flags #define B_WEATHER_RAIN_TEMPORARY (1 << 0) @@ -459,8 +460,8 @@ #define ARENA_WIN_MIND 18 #define ARENA_WIN_SKILL 19 #define ARENA_WIN_BODY 20 -#define ARENA_WIN_JUDGEMENT_TITLE 21 -#define ARENA_WIN_JUDGEMENT_TEXT 22 +#define ARENA_WIN_JUDGMENT_TITLE 21 +#define ARENA_WIN_JUDGMENT_TEXT 22 // Flag for BattlePutTextOnWindow. Never set #define B_WIN_COPYTOVRAM (1 << 7) diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index d15b6876e..28bcb283d 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -536,6 +536,7 @@ #define B_ANIM_BEAK_BLAST_SETUP 33 #define B_ANIM_SHELL_TRAP_SETUP 34 #define B_ANIM_ZMOVE_ACTIVATE 35 // Using Z Moves +#define B_ANIM_AFFECTION_HANGED_ON 36 // special animations table (gBattleAnims_Special) #define B_ANIM_LVL_UP 0 diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index 5e9984c55..6cf0753b0 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -1,138 +1,127 @@ #ifndef GUARD_CONSTANTS_BATTLE_CONFIG_H #define GUARD_CONSTANTS_BATTLE_CONFIG_H -#include "constants/expansion_branches.h" - -#ifndef GEN_3 - #define GEN_3 0 - #define GEN_4 1 - #define GEN_5 2 - #define GEN_6 3 - #define GEN_7 4 - #define GEN_8 5 -#endif - // Calculation settings -#define B_CRIT_CHANCE GEN_7 // Chances of a critical hit landing. See CalcCritChanceStage. Gen6+ chances guarantee that Farfetch'd and Sirfetch'd always get critical hits while holding a Leek and using high-crit ratio moves. -#define B_CRIT_MULTIPLIER GEN_7 // In Gen6+, critical hits multiply damage by 1.5 instead of 2. -#define B_PARALYSIS_SPEED GEN_7 // In Gen7+, Speed is decreased by 50% instead of 75%. -#define B_CONFUSION_SELF_DMG_CHANCE GEN_7 // In Gen7+, confusion has a 33.3% of self-damage, instead of 50%. -#define B_MULTI_HIT_CHANCE GEN_7 // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values. -#define B_WHITEOUT_MONEY GEN_7 // In Gen4+, the amount of money lost by losing a battle is determined by the amount of badges earned. Previously, it would cut the current money by half. (While this change was also in FRLG, for the sake of simplicity, setting this to GEN_3 will result in RSE behavior.) +#define B_CRIT_CHANCE GEN_LATEST // Chances of a critical hit landing. See CalcCritChanceStage. Gen6+ chances guarantee that Farfetch'd and Sirfetch'd always get critical hits while holding a Leek and using high-crit ratio moves. +#define B_CRIT_MULTIPLIER GEN_LATEST // In Gen6+, critical hits multiply damage by 1.5 instead of 2. +#define B_PARALYSIS_SPEED GEN_LATEST // In Gen7+, Speed is decreased by 50% instead of 75%. +#define B_CONFUSION_SELF_DMG_CHANCE GEN_LATEST // In Gen7+, confusion has a 33.3% of self-damage, instead of 50%. +#define B_MULTI_HIT_CHANCE GEN_LATEST // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values. +#define B_WHITEOUT_MONEY GEN_LATEST // In Gen4+, the amount of money lost by losing a battle is determined by the amount of badges earned. Previously, it would cut the current money by half. (While this change was also in FRLG, for the sake of simplicity, setting this to GEN_3 will result in RSE behavior.) // Exp and stat settings -#define B_EXP_CATCH GEN_7 // In Gen6+, Pokémon get experience from catching. -#define B_TRAINER_EXP_MULTIPLIER GEN_7 // In Gen7+, trainer battles no longer give a 1.5 multiplier to EXP gain. -#define B_SPLIT_EXP GEN_7 // In Gen6+, all participating mon get full experience. -#define B_SCALED_EXP GEN_7 // In Gen5 and Gen7+, experience is weighted by level difference. -#define B_BADGE_BOOST GEN_7 // In Gen4+, Gym Badges no longer boost a Pokémon's stats. -#define B_MAX_LEVEL_EV_GAINS GEN_7 // In Gen5+, Lv100 Pokémon can obtain Effort Values normally. -#define B_RECALCULATE_STATS GEN_7 // In Gen5+, the stats of the Pokémon who participate in battle are recalculated at the end of each battle. +#define B_EXP_CATCH GEN_LATEST // In Gen6+, Pokémon get experience from catching. +#define B_TRAINER_EXP_MULTIPLIER GEN_LATEST // In Gen7+, trainer battles no longer give a 1.5 multiplier to EXP gain. +#define B_SPLIT_EXP GEN_LATEST // In Gen6+, all participating mon get full experience. +#define B_SCALED_EXP GEN_LATEST // In Gen5 and Gen7+, experience is weighted by level difference. +#define B_BADGE_BOOST GEN_LATEST // In Gen4+, Gym Badges no longer boost a Pokémon's stats. +#define B_MAX_LEVEL_EV_GAINS GEN_LATEST // In Gen5+, Lv100 Pokémon can obtain Effort Values normally. +#define B_RECALCULATE_STATS GEN_LATEST // In Gen5+, the stats of the Pokémon who participate in battle are recalculated at the end of each battle. // Damage settings -#define B_BURN_DAMAGE GEN_7 // In Gen7+, burn damage is 1/16th of max HP instead of 1/8th. -#define B_BURN_FACADE_DMG GEN_7 // In Gen6+, burn's effect of lowering the Attack stat no longer applies to Facade. -#define B_BINDING_DAMAGE GEN_7 // In Gen6+, binding damage is 1/8 of max HP instead of 1/16. (With Binding Band, 1/6 and 1/8 respectively.) -#define B_PSYWAVE_DMG GEN_7 // Psywave's damage formula. See Cmd_psywavedamageeffect. -#define B_PAYBACK_SWITCH_BOOST GEN_7 // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled. -#define B_HIDDEN_POWER_DMG GEN_7 // In Gen6+, Hidden Power's base power was set to always be 60. Before, it was determined by the mon's IVs. -#define B_ROUGH_SKIN_DMG GEN_7 // In Gen4+, Rough Skin contact damage is 1/8th of max HP instead of 1/16th. This will also affect Iron Barbs. -#define B_KNOCK_OFF_DMG GEN_8 // In Gen6+, Knock Off deals 50% more damage when knocking off an item. -#define B_SPORT_DMG_REDUCTION GEN_7 // In Gen5+, Water/Mud Sport reduce Fire/Electric Damage by 67% instead of 50%. -#define B_EXPLOSION_DEFENSE GEN_7 // In Gen5+, Self-Destruct and Explosion don't halve the targets' defense. +#define B_BURN_DAMAGE GEN_LATEST // In Gen7+, burn damage is 1/16th of max HP instead of 1/8th. +#define B_BURN_FACADE_DMG GEN_LATEST // In Gen6+, burn's effect of lowering the Attack stat no longer applies to Facade. +#define B_BINDING_DAMAGE GEN_LATEST // In Gen6+, binding damage is 1/8 of max HP instead of 1/16. (With Binding Band, 1/6 and 1/8 respectively.) +#define B_PSYWAVE_DMG GEN_LATEST // Psywave's damage formula. See Cmd_psywavedamageeffect. +#define B_PAYBACK_SWITCH_BOOST GEN_LATEST // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled. +#define B_HIDDEN_POWER_DMG GEN_LATEST // In Gen6+, Hidden Power's base power was set to always be 60. Before, it was determined by the mon's IVs. +#define B_ROUGH_SKIN_DMG GEN_LATEST // In Gen4+, Rough Skin contact damage is 1/8th of max HP instead of 1/16th. This will also affect Iron Barbs. +#define B_KNOCK_OFF_DMG GEN_LATEST // In Gen6+, Knock Off deals 50% more damage when knocking off an item. +#define B_SPORT_DMG_REDUCTION GEN_LATEST // In Gen5+, Water/Mud Sport reduce Fire/Electric Damage by 67% instead of 50%. +#define B_EXPLOSION_DEFENSE GEN_LATEST // In Gen5+, Self-Destruct and Explosion don't halve the targets' defense. // Type settings -#define B_GHOSTS_ESCAPE GEN_7 // In Gen6+, abilities like Shadow Tag or moves like Mean Look fail on Ghost-type Pokémon. They can also escape any Wild Battle. -#define B_PARALYZE_ELECTRIC GEN_7 // In Gen6+, Electric-type Pokémon can't be paralyzed. -#define B_POWDER_GRASS GEN_7 // In Gen6+, Grass-type Pokémon are immune to powder and spore moves. -#define B_STEEL_RESISTANCES GEN_7 // In Gen6+, Steel-type Pokémon are no longer resistant to Dark-type and Ghost-type moves. -#define B_PRANKSTER_DARK_TYPES GEN_7 // In Gen7+, Prankster-elevated status moves do not affect Dark type Pokémon. -#define B_SHEER_COLD_IMMUNITY GEN_7 // In Gen7+, Ice-types are immune to Sheer Cold +#define B_GHOSTS_ESCAPE GEN_LATEST // In Gen6+, abilities like Shadow Tag or moves like Mean Look fail on Ghost-type Pokémon. They can also escape any Wild Battle. +#define B_PARALYZE_ELECTRIC GEN_LATEST // In Gen6+, Electric-type Pokémon can't be paralyzed. +#define B_POWDER_GRASS GEN_LATEST // In Gen6+, Grass-type Pokémon are immune to powder and spore moves. +#define B_STEEL_RESISTANCES GEN_LATEST // In Gen6+, Steel-type Pokémon are no longer resistant to Dark-type and Ghost-type moves. +#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 // Turn settings -#define B_BINDING_TURNS GEN_7 // In Gen5+, binding moves last for 4-5 turns instead of 2-5 turns. (With Grip Claw, 7 and 5 turns respectively.) -#define B_UPROAR_TURNS GEN_7 // In Gen5+, Uproar lasts for 3 turns instead of 2-5 turns. -#define B_DISABLE_TURNS GEN_7 // Disable's turns. See Cmd_disablelastusedattack. -#define B_TAILWIND_TURNS GEN_7 // In Gen5+, Tailwind lasts 4 turns instead of 3. -#define B_SLEEP_TURNS GEN_7 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. -#define B_TAUNT_TURNS GEN_7 // 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_7 // In Gen6+, Water/Mud Sport last 5 turns, even if the user switches out. -#define B_MEGA_EVO_TURN_ORDER GEN_7 // 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_8 // In Gen8, switching/using a move affects the current turn's order of actions. -#define B_FAINT_SWITCH_IN GEN_7 // 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. +#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.) +#define B_UPROAR_TURNS GEN_LATEST // In Gen5+, Uproar lasts for 3 turns instead of 2-5 turns. +#define B_DISABLE_TURNS GEN_LATEST // Disable's turns. See Cmd_disablelastusedattack. +#define B_TAILWIND_TURNS GEN_LATEST // In Gen5+, Tailwind lasts 4 turns instead of 3. +#define B_SLEEP_TURNS GEN_LATEST // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. +#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_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 -#define B_UPDATED_MOVE_DATA GEN_8 // Updates move data in gBattleMoves, including Power, Accuracy, PP, stat changes, targets, chances of secondary effects, etc. -#define B_PHYSICAL_SPECIAL_SPLIT GEN_7 // In Gen3, the move's type determines if it will do physical or special damage. The split icon in the summary will reflect this. -#define B_RECOIL_IF_MISS_DMG GEN_7 // In Gen5+, Jump Kick and High Jump Kick will always do half of the user's max HP when missing. -#define B_KLUTZ_FLING_INTERACTION GEN_7 // In Gen5+, Pokémon with the Klutz ability can't use Fling. -#define B_UPDATED_CONVERSION GEN_7 // In Gen6+, Conversion changes the user's type to match their first move's. Before, it would choose a move at random. -#define B_PP_REDUCED_BY_SPITE GEN_7 // In Gen4+, Spite reduces the foe's last move's PP by 4, instead of 2 to 5. +#define B_UPDATED_MOVE_DATA GEN_LATEST // Updates move data in gBattleMoves, including Power, Accuracy, PP, stat changes, targets, chances of secondary effects, etc. +#define B_PHYSICAL_SPECIAL_SPLIT GEN_LATEST // In Gen3, the move's type determines if it will do physical or special damage. The split icon in the summary will reflect this. +#define B_RECOIL_IF_MISS_DMG GEN_LATEST // In Gen5+, Jump Kick and High Jump Kick will always do half of the user's max HP when missing. +#define B_KLUTZ_FLING_INTERACTION GEN_LATEST // In Gen5+, Pokémon with the Klutz ability can't use Fling. +#define B_UPDATED_CONVERSION GEN_LATEST // In Gen6+, Conversion changes the user's type to match their first move's. Before, it would choose a move at random. +#define B_PP_REDUCED_BY_SPITE GEN_LATEST // In Gen4+, Spite reduces the foe's last move's PP by 4, instead of 2 to 5. // Move accuracy settings -#define B_TOXIC_NEVER_MISS GEN_7 // In Gen6+, if Toxic is used by a Poison-type Pokémon, it will never miss. -#define B_MINIMIZE_DMG_ACC GEN_7 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. -#define B_BLIZZARD_HAIL GEN_7 // In Gen4+, Blizzard bypasses accuracy checks if it's hailing. -#define B_SHEER_COLD_ACC GEN_7 // In Gen7+, Sheer Cold's base chance of hitting is reduced to 20% if the user isn't Ice-typed. +#define B_TOXIC_NEVER_MISS GEN_LATEST // In Gen6+, if Toxic is used by a Poison-type Pokémon, it will never miss. +#define B_MINIMIZE_DMG_ACC GEN_LATEST // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. +#define B_BLIZZARD_HAIL GEN_LATEST // In Gen4+, Blizzard bypasses accuracy checks if it's hailing. +#define B_SHEER_COLD_ACC GEN_LATEST // In Gen7+, Sheer Cold's base chance of hitting is reduced to 20% if the user isn't Ice-typed. // Move stat change settings -#define B_FELL_STINGER_STAT_RAISE GEN_7 // 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_7 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. -#define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. -#define B_CHARGE_SPDEF_RAISE GEN_7 // In Gen5+, Charge raises the user's Special Defense by 1 stage. -#define B_MINIMIZE_EVASION GEN_7 // In Gen5+, Minimize raises evasion by 2 stages instead of 1. -#define B_GROWTH_STAT_RAISE GEN_7 // In Gen5+, Growth raises Attack in addition to Special Attack by 1 stage each. Under the effects of the sun, it raises them by 2 stages each instead. +#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_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. +#define B_GROWTH_STAT_RAISE GEN_LATEST // In Gen5+, Growth raises Attack in addition to Special Attack by 1 stage each. Under the effects of the sun, it raises them by 2 stages each instead. // Other move settings -#define B_SOUND_SUBSTITUTE GEN_7 // In Gen6+, sound moves bypass Substitute. -#define B_INCINERATE_GEMS GEN_7 // In Gen6+, Incinerate can destroy Gems. -#define B_CAN_SPITE_FAIL GEN_7 // In Gen4+, Spite can no longer fail if the foe's last move only has 1 remaining PP. -#define B_CRASH_IF_TARGET_IMMUNE GEN_7 // In Gen4+, The user of Jump Kick or High Jump Kick will "keep going and crash" if it attacks a target that is immune to the move. -#define B_MEMENTO_FAIL GEN_7 // In Gen4+, Memento fails if there is no target or if the target is protected or behind substitute. But not if Atk/Sp. Atk are at -6. -#define B_GLARE_GHOST GEN_7 // In Gen4+, Glare can hit Ghost-type Pokémon normally. -#define B_SKILL_SWAP GEN_7 // In Gen4+, Skill Swap triggers switch-in abilities after use. -#define B_BRICK_BREAK GEN_7 // In Gen4+, you can destroy your own side's screens. In Gen 5+, screens are not removed if the target is immune. -#define B_WISH_HP_SOURCE GEN_7 // In Gen5+, Wish heals half of the user's max HP instead of the target's. -#define B_RAMPAGE_CANCELLING GEN_7 // In Gen5+, a failed Thrash, etc, will cancel except on its last turn. -#define B_HEAL_BLOCKING GEN_7 // In Gen5+, Heal Block prevents healing by Black Sludge, Leftovers, Shell Bell. Affected Pokémon will not consume held HP-restoring Berries or Berry Juice. - // Draining abilities will not heal but will prevent damage. In Gen6+, Heal Block prevents the use of most HP-draining moves. -#define B_ROOTED_GROUNDING GEN_7 // In Gen4+, Ingrain causes the affected Pokémon to become grounded. +#define B_SOUND_SUBSTITUTE GEN_LATEST // In Gen6+, sound moves bypass Substitute. +#define B_INCINERATE_GEMS GEN_LATEST // In Gen6+, Incinerate can destroy Gems. +#define B_CAN_SPITE_FAIL GEN_LATEST // In Gen4+, Spite can no longer fail if the foe's last move only has 1 remaining PP. +#define B_CRASH_IF_TARGET_IMMUNE GEN_LATEST // In Gen4+, The user of Jump Kick or High Jump Kick will "keep going and crash" if it attacks a target that is immune to the move. +#define B_MEMENTO_FAIL GEN_LATEST // In Gen4+, Memento fails if there is no target or if the target is protected or behind substitute. But not if Atk/Sp. Atk are at -6. +#define B_GLARE_GHOST GEN_LATEST // In Gen4+, Glare can hit Ghost-type Pokémon normally. +#define B_SKILL_SWAP GEN_LATEST // In Gen4+, Skill Swap triggers switch-in abilities after use. +#define B_BRICK_BREAK GEN_LATEST // In Gen4+, you can destroy your own side's screens. In Gen 5+, screens are not removed if the target is immune. +#define B_WISH_HP_SOURCE GEN_LATEST // In Gen5+, Wish heals half of the user's max HP instead of the target's. +#define B_RAMPAGE_CANCELLING GEN_LATEST // In Gen5+, a failed Thrash, etc, will cancel except on its last turn. +#define B_HEAL_BLOCKING GEN_LATEST // In Gen5+, Heal Block prevents healing by Black Sludge, Leftovers, Shell Bell. Affected Pokémon will not consume held HP-restoring Berries or Berry Juice. + // Draining abilities will not heal but will prevent damage. In Gen6+, Heal Block prevents the use of most HP-draining moves. +#define B_ROOTED_GROUNDING GEN_LATEST // In Gen4+, Ingrain causes the affected Pokémon to become grounded. // Ability settings -#define B_EXPANDED_ABILITY_NAMES TRUE // If TRUE, ability names are increased from 12 characters to 16 characters. -#define B_ABILITY_WEATHER GEN_7 // In Gen6+, ability-induced weather lasts 5 turns. Before, it lasted until the battle ended or until it was changed by a move or a different weather-affecting ability. -#define B_GALE_WINGS GEN_7 // In Gen7+ requires full HP to trigger. -#define B_STANCE_CHANGE_FAIL GEN_7 // In Gen7+, Stance Change fails if the Pokémon is unable to use a move because of confusion, paralysis, etc. In Gen6, it doesn't. -#define B_SHADOW_TAG_ESCAPE GEN_7 // In Gen4+, if both sides have a Pokémon with Shadow Tag, all battlers can escape. Before, neither side could escape this situation. -#define B_MOODY_ACC_EVASION GEN_8 // In Gen8, Moody CANNOT raise Accuracy and Evasion anymore. -#define B_FLASH_FIRE_FROZEN GEN_7 // In Gen5+, Flash Fire can trigger even when frozen, when it couldn't before. -#define B_SYNCHRONIZE_NATURE GEN_8 // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same ability, as opposed to 50% previously. -#define B_SYNCHRONIZE_TOXIC GEN_8 // In Gen5+, if a Pokémon with Synchronize is badly poisoned, the opponent will also become badly poisoned. Previously, the opponent would become regular poisoned. -#define B_UPDATED_INTIMIDATE GEN_8 // In Gen8, Intimidate doesn't work on opponents with the Inner Focus, Scrappy, Own Tempo or Oblivious abilities. It also activates Rattled. -#define B_OBLIVIOUS_TAUNT GEN_7 // In Gen6+, Pokémon with Oblivious can't be taunted. -#define B_STURDY GEN_7 // In Gen5+, Sturdy causes the Pokémon to have 1 HP remaining if another Pokémon's attack or confusion damage would have brought it from full health to 0 HP. -#define B_PLUS_MINUS_INTERACTION GEN_7 // In Gen5+, Plus and Minus can be activated with themselves and the opposite ability. Before, only the opposing ability could activate it. +#define B_EXPANDED_ABILITY_NAMES TRUE // If TRUE, ability names are increased from 12 characters to 16 characters. +#define B_ABILITY_WEATHER GEN_LATEST // In Gen6+, ability-induced weather lasts 5 turns. Before, it lasted until the battle ended or until it was changed by a move or a different weather-affecting ability. +#define B_GALE_WINGS GEN_LATEST // In Gen7+ requires full HP to trigger. +#define B_STANCE_CHANGE_FAIL GEN_LATEST // In Gen7+, Stance Change fails if the Pokémon is unable to use a move because of confusion, paralysis, etc. In Gen6, it doesn't. +#define B_SHADOW_TAG_ESCAPE GEN_LATEST // In Gen4+, if both sides have a Pokémon with Shadow Tag, all battlers can escape. Before, neither side could escape this situation. +#define B_MOODY_ACC_EVASION GEN_LATEST // In Gen8, Moody CANNOT raise Accuracy and Evasion anymore. +#define B_FLASH_FIRE_FROZEN GEN_LATEST // In Gen5+, Flash Fire can trigger even when frozen, when it couldn't before. +#define B_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same ability, as opposed to 50% previously. +#define B_SYNCHRONIZE_TOXIC GEN_LATEST // In Gen5+, if a Pokémon with Synchronize is badly poisoned, the opponent will also become badly poisoned. Previously, the opponent would become regular poisoned. +#define B_UPDATED_INTIMIDATE GEN_LATEST // In Gen8, Intimidate doesn't work on opponents with the Inner Focus, Scrappy, Own Tempo or Oblivious abilities. It also activates Rattled. +#define B_OBLIVIOUS_TAUNT GEN_LATEST // In Gen6+, Pokémon with Oblivious can't be taunted. +#define B_STURDY GEN_LATEST // In Gen5+, Sturdy causes the Pokémon to have 1 HP remaining if another Pokémon's attack or confusion damage would have brought it from full health to 0 HP. +#define B_PLUS_MINUS_INTERACTION GEN_LATEST // In Gen5+, Plus and Minus can be activated with themselves and the opposite ability. Before, only the opposing ability could activate it. // Item settings -#define B_HP_BERRIES GEN_7 // In Gen4+, berries which restore hp activate immediately after HP drops to half. In Gen3, the effect occurs at the end of the turn. -#define B_BERRIES_INSTANT GEN_7 // In Gen4+, most berries activate on battle start/switch-in if applicable. In Gen3, they only activate either at the move end or turn end. -#define B_CONFUSE_BERRIES_HEAL GEN_8 // Before Gen7, Figy and similar berries restore 1/8th of HP and trigger at half HP. In Gen7 they restore half HP, triggering at 25% HP. In Gen8 they heal 1/3rd of HP. - // Requires using Item Expansion or manually editing the holdEffectParam of Figy, Wiki, Mago, Aguav and Iapapa berries. -#define B_X_ITEMS_BUFF GEN_7 // In Gen7+, the X Items raise a stat by 2 stages instead of 1. -#define B_MENTAL_HERB GEN_5 // In Gen5+, the Mental Herb cures Infatuation, Taunt, Encore, Torment, Heal Block, and Disable -#define B_TRAINERS_KNOCK_OFF_ITEMS TRUE // If TRUE, trainers can steal/swap your items (non-berries are restored after battle). In vanilla games trainers cannot steal items. -#define B_SOUL_DEW_BOOST GEN_7 // In Gens3-6, Soul Dew boosts Lati@s' Sp. Atk and Sp. Def. In Gen7+ it boosts the power of their Psychic and Dragon type moves instead. -#define B_NET_BALL_MODIFIER GEN_7 // In Gen7+, Net Ball's catch multiplier is x5 instead of x3. -#define B_DIVE_BALL_MODIFIER GEN_7 // In Gen4+, Dive Ball's effectiveness increases by when Surfing or Fishing. -#define B_NEST_BALL_MODIFIER GEN_7 // Nest Ball's formula varies depending on the Gen. See Cmd_handleballthrow. -#define B_REPEAT_BALL_MODIFIER GEN_7 // In Gen7+, Repeat Ball's catch multiplier is x3.5 instead of x3. -#define B_TIMER_BALL_MODIFIER GEN_7 // In Gen5+, Timer Ball's effectiveness increases by x0.3 per turn instead of x0.1 -#define B_DUSK_BALL_MODIFIER GEN_7 // In Gen7+, Dusk Ball's catch multiplier is x3 instead of x3.5. -#define B_QUICK_BALL_MODIFIER GEN_7 // In Gen5+, Quick Ball's catch multiplier is x5 instead of x4. -#define B_LURE_BALL_MODIFIER GEN_7 // In Gen7+, Lure Ball's catch multiplier is x5 instead of x3. -#define B_HEAVY_BALL_MODIFIER GEN_7 // In Gen7+, Heavy Ball's ranges change. See Cmd_handleballthrow. -#define B_DREAM_BALL_MODIFIER GEN_8 // In Gen8, Dream Ball's catch multiplier is x4 when the target is asleep or has the ability Comatose. -#define B_SERENE_GRACE_BOOST GEN_7 // In Gen5+, Serene Grace boosts the added flinch chance of King's Rock and Razor Fang. +#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. +#define B_BERRIES_INSTANT GEN_LATEST // In Gen4+, most berries activate on battle start/switch-in if applicable. In Gen3, they only activate either at the move end or turn end. +#define B_CONFUSE_BERRIES_HEAL GEN_LATEST // Before Gen7, Figy and similar berries restore 1/8th of HP and trigger at half HP. In Gen7 they restore half HP, triggering at 25% HP. In Gen8 they heal 1/3rd of HP. +#define B_X_ITEMS_BUFF GEN_LATEST // In Gen7+, the X Items raise a stat by 2 stages instead of 1. +#define B_MENTAL_HERB GEN_LATEST // In Gen5+, the Mental Herb cures Taunt, Encore, Torment, Heal Block, and Disable in addition to Infatuation from before. +#define B_TRAINERS_KNOCK_OFF_ITEMS TRUE // If TRUE, trainers can steal/swap your items (non-berries are restored after battle). In vanilla games trainers cannot steal items. +#define B_SOUL_DEW_BOOST GEN_LATEST // In Gens3-6, Soul Dew boosts Lati@s' Sp. Atk and Sp. Def. In Gen7+ it boosts the power of their Psychic and Dragon type moves instead. +#define B_NET_BALL_MODIFIER GEN_LATEST // In Gen7+, Net Ball's catch multiplier is x5 instead of x3. +#define B_DIVE_BALL_MODIFIER GEN_LATEST // In Gen4+, Dive Ball's effectiveness increases by when Surfing or Fishing. +#define B_NEST_BALL_MODIFIER GEN_LATEST // Nest Ball's formula varies depending on the Gen. See Cmd_handleballthrow. +#define B_REPEAT_BALL_MODIFIER GEN_LATEST // In Gen7+, Repeat Ball's catch multiplier is x3.5 instead of x3. +#define B_TIMER_BALL_MODIFIER GEN_LATEST // In Gen5+, Timer Ball's effectiveness increases by x0.3 per turn instead of x0.1 +#define B_DUSK_BALL_MODIFIER GEN_LATEST // In Gen7+, Dusk Ball's catch multiplier is x3 instead of x3.5. +#define B_QUICK_BALL_MODIFIER GEN_LATEST // In Gen5+, Quick Ball's catch multiplier is x5 instead of x4. +#define B_LURE_BALL_MODIFIER GEN_LATEST // In Gen7+, Lure Ball's catch multiplier is x5 instead of x3. +#define B_HEAVY_BALL_MODIFIER GEN_LATEST // In Gen7+, Heavy Ball's ranges change. See Cmd_handleballthrow. +#define B_DREAM_BALL_MODIFIER GEN_LATEST // In Gen8, Dream Ball's catch multiplier is x4 when the target is asleep or has the ability Comatose. +#define B_SPORT_BALL_MODIFIER GEN_LATEST // In Gen8, Sport Ball's catch multiplier was reduced from x1.5 to x1. +#define B_SERENE_GRACE_BOOST GEN_LATEST // In Gen5+, Serene Grace boosts the added flinch chance of King's Rock and Razor Fang. // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. @@ -148,13 +137,13 @@ #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) // Terrain settings -#define B_TERRAIN_BG_CHANGE TRUE // If set to TRUE, terrain moves permanently change the default battle background until the effect fades. -#define B_THUNDERSTORM_TERRAIN TRUE // If TRUE, overworld Thunderstorm generates Rain and Electric Terrain as in Gen 8. -#define B_TERRAIN_TYPE_BOOST GEN_8 // In Gen8, damage is boosted by 30% instead of 50%. -#define B_SECRET_POWER_EFFECT GEN_7 // Secret Power's effects change depending on terrain and generation. See GetSecretPowerMoveEffect. -#define B_SECRET_POWER_ANIMATION GEN_7 // Secret Power's animations change depending on terrain and generation. -#define B_NATURE_POWER_MOVES GEN_8 // Nature Power calls different moves depending on terrain and generation. See sNaturePowerMoves. -#define B_CAMOUFLAGE_TYPES GEN_7 // Camouflage changes the user to different types depending on terrain and generation. See sTerrainToType. +#define B_TERRAIN_BG_CHANGE TRUE // If set to TRUE, terrain moves permanently change the default battle background until the effect fades. +#define B_THUNDERSTORM_TERRAIN TRUE // If TRUE, overworld Thunderstorm generates Rain and Electric Terrain as in Gen 8. +#define B_TERRAIN_TYPE_BOOST GEN_LATEST // In Gen8, damage is boosted by 30% instead of 50%. +#define B_SECRET_POWER_EFFECT GEN_LATEST // Secret Power's effects change depending on terrain and generation. See GetSecretPowerMoveEffect. +#define B_SECRET_POWER_ANIMATION GEN_LATEST // Secret Power's animations change depending on terrain and generation. +#define B_NATURE_POWER_MOVES GEN_LATEST // Nature Power calls different moves depending on terrain and generation. See sNaturePowerMoves. +#define B_CAMOUFLAGE_TYPES GEN_LATEST // Camouflage changes the user to different types depending on terrain and generation. See sTerrainToType. // Interface settings #define B_ABILITY_POP_UP TRUE // In Gen5+, the Pokémon abilities are displayed in a pop-up, when they activate in battle. @@ -166,17 +155,18 @@ #define B_EXPANDED_MOVE_NAMES FALSE // If set to TRUE, move names are increased from 12 characters to 16 characters. // Catching settings -#define B_SEMI_INVULNERABLE_CATCH GEN_7 // In Gen4+, you cannot throw a ball against a Pokemon that is in a semi-invulnerable state (dig/fly/etc) -#define B_CATCHING_CHARM_BOOST 20 // % boost in Critical Capture odds if player has the Catching Charm. -#define B_CRITICAL_CAPTURE TRUE // If set to TRUE, Critical Capture will be enabled. -#define B_LAST_USED_BALL TRUE // If TRUE, the "last used ball" feature from Gen 7 will be implemented -#define B_LAST_USED_BALL_BUTTON R_BUTTON // If last used ball is implemented, this button (or button combo) will trigger throwing the last used ball. +#define B_SEMI_INVULNERABLE_CATCH GEN_LATEST // In Gen4+, you cannot throw a ball against a Pokemon that is in a semi-invulnerable state (dig/fly/etc) +#define B_CATCHING_CHARM_BOOST 20 // % boost in Critical Capture odds if player has the Catching Charm. +#define B_CRITICAL_CAPTURE TRUE // If set to TRUE, Critical Capture will be enabled. +#define B_LAST_USED_BALL TRUE // If TRUE, the "last used ball" feature from Gen 7 will be implemented +#define B_LAST_USED_BALL_BUTTON R_BUTTON // If last used ball is implemented, this button (or button combo) will trigger throwing the last used ball. // Other settings -#define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter. -#define B_MULTI_BATTLE_WHITEOUT GEN_8 // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight. -#define B_EVOLUTION_AFTER_WHITEOUT GEN_6 // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses. -#define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper) +#define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter. +#define B_MULTI_BATTLE_WHITEOUT GEN_LATEST // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight. +#define B_EVOLUTION_AFTER_WHITEOUT GEN_LATEST // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses. +#define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper) +#define B_AFFECTION_MECHANICS FALSE // In Gen6+, there's a stat called affection that can trigger different effects in battle. From LGPE onwards, those effects use friendship instead. // Animation Settings #define B_NEW_SWORD_PARTICLE FALSE // If set to TRUE, it updates Swords Dance's particle. diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 39092410a..4ef2a3a82 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -624,8 +624,14 @@ #define STRINGID_ZMOVESTATUP 622 #define STRINGID_ZMOVEHPTRAP 623 #define STRINGID_TERRAINREMOVED 624 +#define STRINGID_ATTACKEREXPELLEDTHEPOISON 625 +#define STRINGID_ATTACKERSHOOKITSELFAWAKE 626 +#define STRINGID_ATTACKERBROKETHROUGHPARALYSIS 627 +#define STRINGID_ATTACKERHEALEDITSBURN 628 +#define STRINGID_ATTACKERMELTEDTHEICE 629 +#define STRINGID_TARGETTOUGHEDITOUT 630 -#define BATTLESTRINGS_COUNT 625 +#define BATTLESTRINGS_COUNT 631 // 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/expansion_branches.h b/include/constants/expansion_branches.h deleted file mode 100644 index 48af6bf1b..000000000 --- a/include/constants/expansion_branches.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef GUARD_CONSTANTS_EXPANSION_BRANCHES_H -#define GUARD_CONSTANTS_EXPANSION_BRANCHES_H - -// Branch defines: Used by other branches to detect each other. -// Each define must be here for each of RHH's branch you have pulled. -// e.g. If you have both the battle_engine and pokemon_expansion branch, -// then both BATTLE_ENGINE and POKEMON_EXPANSION must be defined here. -#define BATTLE_ENGINE -#define POKEMON_EXPANSION -#define ITEM_EXPANSION - -#endif diff --git a/include/constants/flags.h b/include/constants/flags.h index 8fbc24630..4e108e1fe 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -568,7 +568,7 @@ #define FLAG_HIDDEN_ITEM_LILYCOVE_CITY_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 0x1B) #define FLAG_HIDDEN_ITEM_FALLARBOR_TOWN_NUGGET (FLAG_HIDDEN_ITEMS_START + 0x1C) #define FLAG_HIDDEN_ITEM_MT_PYRE_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 0x1D) -#define FLAG_HIDDEN_ITEM_ROUTE_113_TM_32 (FLAG_HIDDEN_ITEMS_START + 0x1E) +#define FLAG_HIDDEN_ITEM_ROUTE_113_TM32 (FLAG_HIDDEN_ITEMS_START + 0x1E) #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_1_KEY (FLAG_HIDDEN_ITEMS_START + 0x1F) #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_2_KEY (FLAG_HIDDEN_ITEMS_START + 0x20) #define FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_4_KEY (FLAG_HIDDEN_ITEMS_START + 0x21) @@ -1053,7 +1053,7 @@ #define FLAG_ITEM_ROUTE_109_PP_UP 0x3ED #define FLAG_ITEM_ROUTE_109_RARE_CANDY 0x3EE #define FLAG_ITEM_ROUTE_110_DIRE_HIT 0x3EF -#define FLAG_ITEM_ROUTE_111_TM_37 0x3F0 +#define FLAG_ITEM_ROUTE_111_TM37 0x3F0 #define FLAG_ITEM_ROUTE_111_STARDUST 0x3F1 #define FLAG_ITEM_ROUTE_111_HP_UP 0x3F2 #define FLAG_ITEM_ROUTE_112_NUGGET 0x3F3 @@ -1062,7 +1062,7 @@ #define FLAG_ITEM_ROUTE_114_RARE_CANDY 0x3F6 #define FLAG_ITEM_ROUTE_114_PROTEIN 0x3F7 #define FLAG_ITEM_ROUTE_115_SUPER_POTION 0x3F8 -#define FLAG_ITEM_ROUTE_115_TM_01 0x3F9 +#define FLAG_ITEM_ROUTE_115_TM01 0x3F9 #define FLAG_ITEM_ROUTE_115_IRON 0x3FA #define FLAG_ITEM_ROUTE_116_ETHER 0x3FB #define FLAG_ITEM_ROUTE_116_REPEL 0x3FC @@ -1089,7 +1089,7 @@ #define FLAG_ITEM_RUSTBORO_CITY_X_DEFEND 0x411 #define FLAG_ITEM_LILYCOVE_CITY_MAX_REPEL 0x412 #define FLAG_ITEM_MOSSDEEP_CITY_NET_BALL 0x413 -#define FLAG_ITEM_METEOR_FALLS_1F_1R_TM_23 0x414 +#define FLAG_ITEM_METEOR_FALLS_1F_1R_TM23 0x414 #define FLAG_ITEM_METEOR_FALLS_1F_1R_FULL_HEAL 0x415 #define FLAG_ITEM_METEOR_FALLS_1F_1R_MOON_STONE 0x416 #define FLAG_ITEM_METEOR_FALLS_1F_1R_PP_UP 0x417 @@ -1119,35 +1119,35 @@ #define FLAG_ITEM_AQUA_HIDEOUT_B1F_MAX_ELIXIR 0x42F #define FLAG_ITEM_AQUA_HIDEOUT_B2F_NEST_BALL 0x430 #define FLAG_ITEM_MT_PYRE_EXTERIOR_MAX_POTION 0x431 -#define FLAG_ITEM_MT_PYRE_EXTERIOR_TM_48 0x432 +#define FLAG_ITEM_MT_PYRE_EXTERIOR_TM48 0x432 #define FLAG_ITEM_NEW_MAUVILLE_ULTRA_BALL 0x433 #define FLAG_ITEM_NEW_MAUVILLE_ESCAPE_ROPE 0x434 #define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_6_LUXURY_BALL 0x435 #define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER 0x436 -#define FLAG_ITEM_SCORCHED_SLAB_TM_11 0x437 -#define FLAG_ITEM_METEOR_FALLS_B1F_2R_TM_02 0x438 +#define FLAG_ITEM_SCORCHED_SLAB_TM11 0x437 +#define FLAG_ITEM_METEOR_FALLS_B1F_2R_TM02 0x438 #define FLAG_ITEM_SHOAL_CAVE_ENTRANCE_BIG_PEARL 0x439 #define FLAG_ITEM_SHOAL_CAVE_INNER_ROOM_RARE_CANDY 0x43A #define FLAG_ITEM_SHOAL_CAVE_STAIRS_ROOM_ICE_HEAL 0x43B #define FLAG_ITEM_VICTORY_ROAD_1F_MAX_ELIXIR 0x43C #define FLAG_ITEM_VICTORY_ROAD_1F_PP_UP 0x43D -#define FLAG_ITEM_VICTORY_ROAD_B1F_TM_29 0x43E +#define FLAG_ITEM_VICTORY_ROAD_B1F_TM29 0x43E #define FLAG_ITEM_VICTORY_ROAD_B1F_FULL_RESTORE 0x43F #define FLAG_ITEM_VICTORY_ROAD_B2F_FULL_HEAL 0x440 -#define FLAG_ITEM_MT_PYRE_6F_TM_30 0x441 -#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM_26 0x442 +#define FLAG_ITEM_MT_PYRE_6F_TM30 0x441 +#define FLAG_ITEM_SEAFLOOR_CAVERN_ROOM_9_TM26 0x442 #define FLAG_ITEM_FIERY_PATH_TM06 0x443 #define FLAG_ITEM_ROUTE_124_RED_SHARD 0x444 #define FLAG_ITEM_ROUTE_124_BLUE_SHARD 0x445 -#define FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM_22 0x446 +#define FLAG_ITEM_SAFARI_ZONE_NORTH_WEST_TM22 0x446 #define FLAG_ITEM_ABANDONED_SHIP_ROOMS_1F_HARBOR_MAIL 0x447 #define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_ESCAPE_ROPE 0x448 #define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_B1F_DIVE_BALL 0x449 -#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM_13 0x44A +#define FLAG_ITEM_ABANDONED_SHIP_ROOMS_B1F_TM13 0x44A #define FLAG_ITEM_ABANDONED_SHIP_ROOMS_2_1F_REVIVE 0x44B #define FLAG_ITEM_ABANDONED_SHIP_CAPTAINS_OFFICE_STORAGE_KEY 0x44C #define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_3_WATER_STONE 0x44D -#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM_18 0x44E +#define FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_1_TM18 0x44E #define FLAG_ITEM_ROUTE_121_CARBOS 0x44F #define FLAG_ITEM_ROUTE_123_ULTRA_BALL 0x450 #define FLAG_ITEM_ROUTE_126_GREEN_SHARD 0x451 @@ -1157,7 +1157,7 @@ #define FLAG_ITEM_ROUTE_123_ELIXIR 0x455 #define FLAG_ITEM_NEW_MAUVILLE_THUNDER_STONE 0x456 #define FLAG_ITEM_FIERY_PATH_FIRE_STONE 0x457 -#define FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM_07 0x458 +#define FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_TM07 0x458 #define FLAG_ITEM_SHOAL_CAVE_ICE_ROOM_NEVER_MELT_ICE 0x459 #define FLAG_ITEM_ROUTE_103_GUARD_SPEC 0x45A #define FLAG_ITEM_ROUTE_104_X_ACCURACY 0x45B diff --git a/include/constants/item_config.h b/include/constants/item_config.h index 01b5fa358..9261241a5 100644 --- a/include/constants/item_config.h +++ b/include/constants/item_config.h @@ -1,23 +1,12 @@ #ifndef GUARD_CONSTANTS_ITEM_CONFIG_H #define GUARD_CONSTANTS_ITEM_CONFIG_H -#include "constants/expansion_branches.h" - -#ifndef GEN_3 -#define GEN_3 0 -#define GEN_4 1 -#define GEN_5 2 -#define GEN_6 3 -#define GEN_7 4 -#define GEN_8 5 -#endif - // Item config -#define I_SHINY_CHARM_REROLLS 3 // Amount of re-rolls if the player has the Shiny Charm. Set to 0 to disable Shiny Charm's effects. -#define I_KEY_FOSSILS GEN_7 // In Gen4+, all Gen 3 fossils became regular items. -#define I_KEY_ESCAPE_ROPE GEN_7 // In Gen8, Escape Rope became a Key Item. Keep in mind, this will make it free to buy in marts. -#define I_HEALTH_RECOVERY GEN_7 // In Gen7+, certain healing items recover a different amount of HP than they used to. -#define I_SITRUS_BERRY_HEAL GEN_7 // In Gen4+, Sitrus Berry was changed from healing 30 HP to healing 25% of Max HP. -#define I_VITAMIN_EV_CAP GEN_8 // In Gen8, the Vitamins no longer have a cap of 100 EV per stat. +#define I_SHINY_CHARM_REROLLS 3 // Amount of re-rolls if the player has the Shiny Charm. Set to 0 to disable Shiny Charm's effects. +#define I_KEY_FOSSILS GEN_LATEST // In Gen4+, all Gen 3 fossils became regular items. +#define I_KEY_ESCAPE_ROPE GEN_LATEST // In Gen8, Escape Rope became a Key Item. Keep in mind, this will make it free to buy in marts. +#define I_HEALTH_RECOVERY GEN_LATEST // In Gen7+, certain healing items recover a different amount of HP than they used to. +#define I_SITRUS_BERRY_HEAL GEN_LATEST // In Gen4+, Sitrus Berry was changed from healing 30 HP to healing 25% of Max HP. +#define I_VITAMIN_EV_CAP GEN_LATEST // In Gen8, the Vitamins no longer have a cap of 100 EV per stat. #endif // GUARD_CONSTANTS_ITEM_CONFIG_H diff --git a/include/constants/items.h b/include/constants/items.h index 5413a7afe..1448bf591 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -973,6 +973,13 @@ #define MACH_BIKE 0 #define ACRO_BIKE 1 +// Item parameters for EXP Candies +#define EXP_100 1 +#define EXP_800 2 +#define EXP_3000 3 +#define EXP_10000 4 +#define EXP_30000 5 + // Item type IDs (used to determine the exit callback) #define ITEM_USE_MAIL 0 #define ITEM_USE_PARTY_MENU 1 diff --git a/include/constants/moves.h b/include/constants/moves.h index 822853e93..75691de76 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -781,8 +781,33 @@ #define MOVE_GLACIAL_LANCE 752 #define MOVE_ASTRAL_BARRAGE 753 #define MOVE_EERIE_SPELL 754 +// Legends: Arceus Moves +#define MOVE_DIRE_CLAW 755 +#define MOVE_PSYSHIELD_BASH 756 +#define MOVE_POWER_SHIFT 757 +#define MOVE_STONE_AXE 758 +#define MOVE_SPRINGTIDE_STORM 759 +#define MOVE_MYSTICAL_POWER 760 +#define MOVE_RAGING_FURY 761 +#define MOVE_WAVE_CRASH 762 +#define MOVE_CHLOROBLAST 763 +#define MOVE_MOUNTAIN_GALE 764 +#define MOVE_VICTORY_DANCE 765 +#define MOVE_HEADLONG_RUSH 766 +#define MOVE_BARB_BARRAGE 767 +#define MOVE_ESPER_WING 768 +#define MOVE_BITTER_MALICE 769 +#define MOVE_SHELTER 770 +#define MOVE_TRIPLE_ARROWS 771 +#define MOVE_INFERNAL_PARADE 772 +#define MOVE_CEASELESS_EDGE 773 +#define MOVE_BLEAKWIND_STORM 774 +#define MOVE_WILDBOLT_STORM 775 +#define MOVE_SANDSEAR_STORM 776 +#define MOVE_LUNAR_BLESSING 777 +#define MOVE_TAKE_HEART 778 -#define MOVES_COUNT_GEN8 755 +#define MOVES_COUNT_GEN8 779 #define MOVES_COUNT MOVES_COUNT_GEN8 diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index f95bfa90f..2c632d30c 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -12,38 +12,6 @@ #define AILMENT_PKRS 6 #define AILMENT_FNT 7 -#define TUTOR_MOVE_MEGA_PUNCH 0 -#define TUTOR_MOVE_SWORDS_DANCE 1 -#define TUTOR_MOVE_MEGA_KICK 2 -#define TUTOR_MOVE_BODY_SLAM 3 -#define TUTOR_MOVE_DOUBLE_EDGE 4 -#define TUTOR_MOVE_COUNTER 5 -#define TUTOR_MOVE_SEISMIC_TOSS 6 -#define TUTOR_MOVE_MIMIC 7 -#define TUTOR_MOVE_METRONOME 8 -#define TUTOR_MOVE_SOFT_BOILED 9 -#define TUTOR_MOVE_DREAM_EATER 10 -#define TUTOR_MOVE_THUNDER_WAVE 11 -#define TUTOR_MOVE_EXPLOSION 12 -#define TUTOR_MOVE_ROCK_SLIDE 13 -#define TUTOR_MOVE_SUBSTITUTE 14 -#define TUTOR_MOVE_DYNAMIC_PUNCH 15 -#define TUTOR_MOVE_ROLLOUT 16 -#define TUTOR_MOVE_PSYCH_UP 17 -#define TUTOR_MOVE_SNORE 18 -#define TUTOR_MOVE_ICY_WIND 19 -#define TUTOR_MOVE_ENDURE 20 -#define TUTOR_MOVE_MUD_SLAP 21 -#define TUTOR_MOVE_ICE_PUNCH 22 -#define TUTOR_MOVE_SWAGGER 23 -#define TUTOR_MOVE_SLEEP_TALK 24 -#define TUTOR_MOVE_SWIFT 25 -#define TUTOR_MOVE_DEFENSE_CURL 26 -#define TUTOR_MOVE_THUNDER_PUNCH 27 -#define TUTOR_MOVE_FIRE_PUNCH 28 -#define TUTOR_MOVE_FURY_CUTTER 29 -#define TUTOR_MOVE_COUNT 30 - #define PARTY_LAYOUT_SINGLE 0 #define PARTY_LAYOUT_DOUBLE 1 #define PARTY_LAYOUT_MULTI 2 diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index f47cc24fe..6b6582af0 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -912,12 +912,19 @@ enum { NATIONAL_DEX_GLASTRIER, NATIONAL_DEX_SPECTRIER, NATIONAL_DEX_CALYREX, + NATIONAL_DEX_WYRDEER, + NATIONAL_DEX_KLEAVOR, + NATIONAL_DEX_URSALUNA, + NATIONAL_DEX_BASCULEGION, + NATIONAL_DEX_SNEASLER, + NATIONAL_DEX_OVERQWIL, + NATIONAL_DEX_ENAMORUS, }; #define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI #if P_NEW_POKEMON == TRUE -#define NATIONAL_DEX_COUNT NATIONAL_DEX_CALYREX +#define NATIONAL_DEX_COUNT NATIONAL_DEX_ENAMORUS #else #define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS #endif diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 14a037f9f..f5d0e9509 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -182,6 +182,15 @@ #define FRIENDSHIP_EVENT_FAINT_FIELD_PSN 7 #define FRIENDSHIP_EVENT_FAINT_LARGE 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint +// Constants for GetLeadMonFriendshipScore +#define FRIENDSHIP_NONE 0 +#define FRIENDSHIP_1_TO_49 1 +#define FRIENDSHIP_50_TO_99 2 +#define FRIENDSHIP_100_TO_149 3 +#define FRIENDSHIP_150_TO_199 4 +#define FRIENDSHIP_200_TO_254 5 +#define FRIENDSHIP_MAX 6 + #define MAX_FRIENDSHIP 255 #define MAX_SHEEN 255 #define MAX_CONDITION 255 @@ -339,7 +348,8 @@ #define FLAG_ULTRA_BEAST (1 << 2) #define FLAG_ALOLAN_FORM (1 << 3) #define FLAG_GALARIAN_FORM (1 << 4) -#define FLAG_GENDER_DIFFERENCE (1 << 5) +#define FLAG_HISUIAN_FORM (1 << 5) +#define FLAG_GENDER_DIFFERENCE (1 << 6) #define LEGENDARY_PERFECT_IV_COUNT 3 diff --git a/include/constants/pokemon_config.h b/include/constants/pokemon_config.h index 077c02e33..40acd8c80 100644 --- a/include/constants/pokemon_config.h +++ b/include/constants/pokemon_config.h @@ -1,28 +1,17 @@ #ifndef GUARD_CONSTANTS_POKEMON_CONFIG_H #define GUARD_CONSTANTS_POKEMON_CONFIG_H -#include "constants/expansion_branches.h" +#define P_UPDATED_TYPES GEN_LATEST // Since Gen 6, several Pokémon were changed to be partially or fully Fairy type. +#define P_UPDATED_STATS GEN_LATEST // Since Gen 6, Pokémon stats are updated with each passing generation. +#define P_UPDATED_ABILITIES GEN_LATEST // Since Gen 6, certain Pokémon have their abilities changed. +#define P_UPDATED_EGG_GROUPS GEN_LATEST // Since Gen 8, certain Pokémon have gained new egg groups. +#define P_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_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_KADABRA_EVERSTONE GEN_LATEST // Since Gen 4, Kadabra can evolve even when holding an Everstone. +#define P_NIDORAN_M_DITTO_BREED GEN_LATEST // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. -#ifndef GEN_3 -#define GEN_3 0 -#define GEN_4 1 -#define GEN_5 2 -#define GEN_6 3 -#define GEN_7 4 -#define GEN_8 5 -#endif +#define P_NEW_POKEMON TRUE // Turning this to FALSE will remove all newly added Pokémon and Forms. Only Unown, Castform and Deoxys forms will remain. -#define P_UPDATED_TYPES GEN_8 // Since Gen 6, several Pokémon were changed to be partially or fully Fairy type. -#define P_UPDATED_STATS GEN_8 // Since Gen 6, Pokémon stats are updated with each passing generation. -#define P_UPDATED_ABILITIES GEN_8 // Since Gen 6, certain Pokémon have their abilities changed. Requires BATTLE_ENGINE for Gen4+ abilities. -#define P_UPDATED_EGG_GROUPS GEN_8 // Since Gen 8, certain Pokémon have gained new egg groups. -#define P_SHEDINJA_BALL GEN_8 // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. -#define P_LEGENDARY_PERFECT_IVS GEN_8 // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs. -#define P_KADABRA_EVERSTONE GEN_8 // Since Gen 4, Kadabra can evolve even when holding an Everstone. -#define P_NIDORAN_M_DITTO_BREED GEN_8 // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. - -#define P_NEW_POKEMON TRUE // Turning this to FALSE will remove all newly added Pokémon and Forms. Only Unown, Castform and Deoxys forms will remain. - -#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. +#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. #endif // GUARD_CONSTANTS_POKEMON_CONFIG_H diff --git a/include/constants/species.h b/include/constants/species.h index 5c1ef7a4f..976b30302 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -902,6 +902,13 @@ #define SPECIES_GLASTRIER 896 #define SPECIES_SPECTRIER 897 #define SPECIES_CALYREX 898 +#define SPECIES_WYRDEER 899 +#define SPECIES_KLEAVOR 900 +#define SPECIES_URSALUNA 901 +#define SPECIES_BASCULEGION 902 +#define SPECIES_SNEASLER 903 +#define SPECIES_OVERQWIL 904 +#define SPECIES_ENAMORUS 905 // Megas #define SPECIES_VENUSAUR_MEGA FORMS_START + 1 @@ -998,68 +1005,86 @@ #define SPECIES_YAMASK_GALARIAN FORMS_START + 86 #define SPECIES_STUNFISK_GALARIAN FORMS_START + 87 +//Hisuian Forms +#define SPECIES_GROWLITHE_HISUIAN FORMS_START + 88 +#define SPECIES_ARCANINE_HISUIAN FORMS_START + 89 +#define SPECIES_VOLTORB_HISUIAN FORMS_START + 90 +#define SPECIES_ELECTRODE_HISUIAN FORMS_START + 91 +#define SPECIES_TYPHLOSION_HISUIAN FORMS_START + 92 +#define SPECIES_QWILFISH_HISUIAN FORMS_START + 93 +#define SPECIES_SNEASEL_HISUIAN FORMS_START + 94 +#define SPECIES_SAMUROTT_HISUIAN FORMS_START + 95 +#define SPECIES_LILLIGANT_HISUIAN FORMS_START + 96 +#define SPECIES_ZORUA_HISUIAN FORMS_START + 97 +#define SPECIES_ZOROARK_HISUIAN FORMS_START + 98 +#define SPECIES_BRAVIARY_HISUIAN FORMS_START + 99 +#define SPECIES_SLIGGOO_HISUIAN FORMS_START + 100 +#define SPECIES_GOODRA_HISUIAN FORMS_START + 101 +#define SPECIES_AVALUGG_HISUIAN FORMS_START + 102 +#define SPECIES_DECIDUEYE_HISUIAN FORMS_START + 103 + // Misc Forms // Cosplay Pikachu -#define SPECIES_PIKACHU_COSPLAY FORMS_START + 88 -#define SPECIES_PIKACHU_ROCK_STAR FORMS_START + 89 -#define SPECIES_PIKACHU_BELLE FORMS_START + 90 -#define SPECIES_PIKACHU_POP_STAR FORMS_START + 91 -#define SPECIES_PIKACHU_PH_D FORMS_START + 92 -#define SPECIES_PIKACHU_LIBRE FORMS_START + 93 +#define SPECIES_PIKACHU_COSPLAY FORMS_START + 104 +#define SPECIES_PIKACHU_ROCK_STAR FORMS_START + 105 +#define SPECIES_PIKACHU_BELLE FORMS_START + 106 +#define SPECIES_PIKACHU_POP_STAR FORMS_START + 107 +#define SPECIES_PIKACHU_PH_D FORMS_START + 108 +#define SPECIES_PIKACHU_LIBRE FORMS_START + 109 // Cap Pikachu -#define SPECIES_PIKACHU_ORIGINAL_CAP FORMS_START + 94 -#define SPECIES_PIKACHU_HOENN_CAP FORMS_START + 95 -#define SPECIES_PIKACHU_SINNOH_CAP FORMS_START + 96 -#define SPECIES_PIKACHU_UNOVA_CAP FORMS_START + 97 -#define SPECIES_PIKACHU_KALOS_CAP FORMS_START + 98 -#define SPECIES_PIKACHU_ALOLA_CAP FORMS_START + 99 -#define SPECIES_PIKACHU_PARTNER_CAP FORMS_START + 100 -#define SPECIES_PIKACHU_WORLD_CAP FORMS_START + 101 +#define SPECIES_PIKACHU_ORIGINAL_CAP FORMS_START + 110 +#define SPECIES_PIKACHU_HOENN_CAP FORMS_START + 111 +#define SPECIES_PIKACHU_SINNOH_CAP FORMS_START + 112 +#define SPECIES_PIKACHU_UNOVA_CAP FORMS_START + 113 +#define SPECIES_PIKACHU_KALOS_CAP FORMS_START + 114 +#define SPECIES_PIKACHU_ALOLA_CAP FORMS_START + 115 +#define SPECIES_PIKACHU_PARTNER_CAP FORMS_START + 116 +#define SPECIES_PIKACHU_WORLD_CAP FORMS_START + 117 // Pichu -#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 102 +#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 118 #if P_NEW_POKEMON == TRUE // Unown -#define SPECIES_UNOWN_B FORMS_START + 103 -#define SPECIES_UNOWN_C FORMS_START + 104 -#define SPECIES_UNOWN_D FORMS_START + 105 -#define SPECIES_UNOWN_E FORMS_START + 106 -#define SPECIES_UNOWN_F FORMS_START + 107 -#define SPECIES_UNOWN_G FORMS_START + 108 -#define SPECIES_UNOWN_H FORMS_START + 109 -#define SPECIES_UNOWN_I FORMS_START + 110 -#define SPECIES_UNOWN_J FORMS_START + 111 -#define SPECIES_UNOWN_K FORMS_START + 112 -#define SPECIES_UNOWN_L FORMS_START + 113 -#define SPECIES_UNOWN_M FORMS_START + 114 -#define SPECIES_UNOWN_N FORMS_START + 115 -#define SPECIES_UNOWN_O FORMS_START + 116 -#define SPECIES_UNOWN_P FORMS_START + 117 -#define SPECIES_UNOWN_Q FORMS_START + 118 -#define SPECIES_UNOWN_R FORMS_START + 119 -#define SPECIES_UNOWN_S FORMS_START + 120 -#define SPECIES_UNOWN_T FORMS_START + 121 -#define SPECIES_UNOWN_U FORMS_START + 122 -#define SPECIES_UNOWN_V FORMS_START + 123 -#define SPECIES_UNOWN_W FORMS_START + 124 -#define SPECIES_UNOWN_X FORMS_START + 125 -#define SPECIES_UNOWN_Y FORMS_START + 126 -#define SPECIES_UNOWN_Z FORMS_START + 127 -#define SPECIES_UNOWN_EMARK FORMS_START + 128 -#define SPECIES_UNOWN_QMARK FORMS_START + 129 +#define SPECIES_UNOWN_B FORMS_START + 119 +#define SPECIES_UNOWN_C FORMS_START + 120 +#define SPECIES_UNOWN_D FORMS_START + 121 +#define SPECIES_UNOWN_E FORMS_START + 122 +#define SPECIES_UNOWN_F FORMS_START + 123 +#define SPECIES_UNOWN_G FORMS_START + 124 +#define SPECIES_UNOWN_H FORMS_START + 125 +#define SPECIES_UNOWN_I FORMS_START + 126 +#define SPECIES_UNOWN_J FORMS_START + 127 +#define SPECIES_UNOWN_K FORMS_START + 128 +#define SPECIES_UNOWN_L FORMS_START + 129 +#define SPECIES_UNOWN_M FORMS_START + 130 +#define SPECIES_UNOWN_N FORMS_START + 131 +#define SPECIES_UNOWN_O FORMS_START + 132 +#define SPECIES_UNOWN_P FORMS_START + 133 +#define SPECIES_UNOWN_Q FORMS_START + 134 +#define SPECIES_UNOWN_R FORMS_START + 135 +#define SPECIES_UNOWN_S FORMS_START + 136 +#define SPECIES_UNOWN_T FORMS_START + 137 +#define SPECIES_UNOWN_U FORMS_START + 138 +#define SPECIES_UNOWN_V FORMS_START + 139 +#define SPECIES_UNOWN_W FORMS_START + 140 +#define SPECIES_UNOWN_X FORMS_START + 141 +#define SPECIES_UNOWN_Y FORMS_START + 142 +#define SPECIES_UNOWN_Z FORMS_START + 143 +#define SPECIES_UNOWN_EMARK FORMS_START + 144 +#define SPECIES_UNOWN_QMARK FORMS_START + 145 // Castform -#define SPECIES_CASTFORM_SUNNY FORMS_START + 130 -#define SPECIES_CASTFORM_RAINY FORMS_START + 131 -#define SPECIES_CASTFORM_SNOWY FORMS_START + 132 +#define SPECIES_CASTFORM_SUNNY FORMS_START + 146 +#define SPECIES_CASTFORM_RAINY FORMS_START + 147 +#define SPECIES_CASTFORM_SNOWY FORMS_START + 148 // Deoxys -#define SPECIES_DEOXYS_ATTACK FORMS_START + 133 -#define SPECIES_DEOXYS_DEFENSE FORMS_START + 134 -#define SPECIES_DEOXYS_SPEED FORMS_START + 135 +#define SPECIES_DEOXYS_ATTACK FORMS_START + 149 +#define SPECIES_DEOXYS_DEFENSE FORMS_START + 150 +#define SPECIES_DEOXYS_SPEED FORMS_START + 151 #else // Unown @@ -1103,288 +1128,292 @@ #endif // Burmy -#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 136 -#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 137 +#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 152 +#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 153 // Wormadam -#define SPECIES_WORMADAM_SANDY_CLOAK FORMS_START + 138 -#define SPECIES_WORMADAM_TRASH_CLOAK FORMS_START + 139 +#define SPECIES_WORMADAM_SANDY_CLOAK FORMS_START + 154 +#define SPECIES_WORMADAM_TRASH_CLOAK FORMS_START + 155 // Cherrim -#define SPECIES_CHERRIM_SUNSHINE FORMS_START + 140 +#define SPECIES_CHERRIM_SUNSHINE FORMS_START + 156 // Shellos -#define SPECIES_SHELLOS_EAST_SEA FORMS_START + 141 +#define SPECIES_SHELLOS_EAST_SEA FORMS_START + 157 // Gastrodon -#define SPECIES_GASTRODON_EAST_SEA FORMS_START + 142 +#define SPECIES_GASTRODON_EAST_SEA FORMS_START + 158 // Rotom -#define SPECIES_ROTOM_HEAT FORMS_START + 143 -#define SPECIES_ROTOM_WASH FORMS_START + 144 -#define SPECIES_ROTOM_FROST FORMS_START + 145 -#define SPECIES_ROTOM_FAN FORMS_START + 146 -#define SPECIES_ROTOM_MOW FORMS_START + 147 +#define SPECIES_ROTOM_HEAT FORMS_START + 159 +#define SPECIES_ROTOM_WASH FORMS_START + 160 +#define SPECIES_ROTOM_FROST FORMS_START + 161 +#define SPECIES_ROTOM_FAN FORMS_START + 162 +#define SPECIES_ROTOM_MOW FORMS_START + 163 -// Giratina -#define SPECIES_GIRATINA_ORIGIN FORMS_START + 148 +// Origin Forme +#define SPECIES_DIALGA_ORIGIN FORMS_START + 164 +#define SPECIES_PALKIA_ORIGIN FORMS_START + 165 +#define SPECIES_GIRATINA_ORIGIN FORMS_START + 166 // Shaymin -#define SPECIES_SHAYMIN_SKY FORMS_START + 149 +#define SPECIES_SHAYMIN_SKY FORMS_START + 167 // Arceus -#define SPECIES_ARCEUS_FIGHTING FORMS_START + 150 -#define SPECIES_ARCEUS_FLYING FORMS_START + 151 -#define SPECIES_ARCEUS_POISON FORMS_START + 152 -#define SPECIES_ARCEUS_GROUND FORMS_START + 153 -#define SPECIES_ARCEUS_ROCK FORMS_START + 154 -#define SPECIES_ARCEUS_BUG FORMS_START + 155 -#define SPECIES_ARCEUS_GHOST FORMS_START + 156 -#define SPECIES_ARCEUS_STEEL FORMS_START + 157 -#define SPECIES_ARCEUS_FIRE FORMS_START + 158 -#define SPECIES_ARCEUS_WATER FORMS_START + 159 -#define SPECIES_ARCEUS_GRASS FORMS_START + 160 -#define SPECIES_ARCEUS_ELECTRIC FORMS_START + 161 -#define SPECIES_ARCEUS_PSYCHIC FORMS_START + 162 -#define SPECIES_ARCEUS_ICE FORMS_START + 163 -#define SPECIES_ARCEUS_DRAGON FORMS_START + 164 -#define SPECIES_ARCEUS_DARK FORMS_START + 165 -#define SPECIES_ARCEUS_FAIRY FORMS_START + 166 +#define SPECIES_ARCEUS_FIGHTING FORMS_START + 168 +#define SPECIES_ARCEUS_FLYING FORMS_START + 169 +#define SPECIES_ARCEUS_POISON FORMS_START + 170 +#define SPECIES_ARCEUS_GROUND FORMS_START + 171 +#define SPECIES_ARCEUS_ROCK FORMS_START + 172 +#define SPECIES_ARCEUS_BUG FORMS_START + 173 +#define SPECIES_ARCEUS_GHOST FORMS_START + 174 +#define SPECIES_ARCEUS_STEEL FORMS_START + 175 +#define SPECIES_ARCEUS_FIRE FORMS_START + 176 +#define SPECIES_ARCEUS_WATER FORMS_START + 177 +#define SPECIES_ARCEUS_GRASS FORMS_START + 178 +#define SPECIES_ARCEUS_ELECTRIC FORMS_START + 179 +#define SPECIES_ARCEUS_PSYCHIC FORMS_START + 180 +#define SPECIES_ARCEUS_ICE FORMS_START + 181 +#define SPECIES_ARCEUS_DRAGON FORMS_START + 182 +#define SPECIES_ARCEUS_DARK FORMS_START + 183 +#define SPECIES_ARCEUS_FAIRY FORMS_START + 184 // Basculin -#define SPECIES_BASCULIN_BLUE_STRIPED FORMS_START + 167 +#define SPECIES_BASCULIN_BLUE_STRIPED FORMS_START + 185 +#define SPECIES_BASCULIN_WHITE_STRIPED FORMS_START + 186 // Darmanitan -#define SPECIES_DARMANITAN_ZEN_MODE FORMS_START + 168 -#define SPECIES_DARMANITAN_ZEN_MODE_GALARIAN FORMS_START + 169 +#define SPECIES_DARMANITAN_ZEN_MODE FORMS_START + 187 +#define SPECIES_DARMANITAN_ZEN_MODE_GALARIAN FORMS_START + 188 // Deerling -#define SPECIES_DEERLING_SUMMER FORMS_START + 170 -#define SPECIES_DEERLING_AUTUMN FORMS_START + 171 -#define SPECIES_DEERLING_WINTER FORMS_START + 172 +#define SPECIES_DEERLING_SUMMER FORMS_START + 189 +#define SPECIES_DEERLING_AUTUMN FORMS_START + 190 +#define SPECIES_DEERLING_WINTER FORMS_START + 191 // Sawsbuck -#define SPECIES_SAWSBUCK_SUMMER FORMS_START + 173 -#define SPECIES_SAWSBUCK_AUTUMN FORMS_START + 174 -#define SPECIES_SAWSBUCK_WINTER FORMS_START + 175 +#define SPECIES_SAWSBUCK_SUMMER FORMS_START + 192 +#define SPECIES_SAWSBUCK_AUTUMN FORMS_START + 193 +#define SPECIES_SAWSBUCK_WINTER FORMS_START + 194 // Therian Forms -#define SPECIES_TORNADUS_THERIAN FORMS_START + 176 -#define SPECIES_THUNDURUS_THERIAN FORMS_START + 177 -#define SPECIES_LANDORUS_THERIAN FORMS_START + 178 +#define SPECIES_TORNADUS_THERIAN FORMS_START + 195 +#define SPECIES_THUNDURUS_THERIAN FORMS_START + 196 +#define SPECIES_LANDORUS_THERIAN FORMS_START + 197 +#define SPECIES_ENAMORUS_THERIAN FORMS_START + 198 // Kyurem -#define SPECIES_KYUREM_WHITE FORMS_START + 179 -#define SPECIES_KYUREM_BLACK FORMS_START + 180 +#define SPECIES_KYUREM_WHITE FORMS_START + 199 +#define SPECIES_KYUREM_BLACK FORMS_START + 200 // Keldeo -#define SPECIES_KELDEO_RESOLUTE FORMS_START + 181 +#define SPECIES_KELDEO_RESOLUTE FORMS_START + 201 // Meloetta -#define SPECIES_MELOETTA_PIROUETTE FORMS_START + 182 +#define SPECIES_MELOETTA_PIROUETTE FORMS_START + 202 // Genesect -#define SPECIES_GENESECT_DOUSE_DRIVE FORMS_START + 183 -#define SPECIES_GENESECT_SHOCK_DRIVE FORMS_START + 184 -#define SPECIES_GENESECT_BURN_DRIVE FORMS_START + 185 -#define SPECIES_GENESECT_CHILL_DRIVE FORMS_START + 186 +#define SPECIES_GENESECT_DOUSE_DRIVE FORMS_START + 203 +#define SPECIES_GENESECT_SHOCK_DRIVE FORMS_START + 204 +#define SPECIES_GENESECT_BURN_DRIVE FORMS_START + 205 +#define SPECIES_GENESECT_CHILL_DRIVE FORMS_START + 206 // Greninja -#define SPECIES_GRENINJA_BATTLE_BOND FORMS_START + 187 -#define SPECIES_GRENINJA_ASH FORMS_START + 188 +#define SPECIES_GRENINJA_BATTLE_BOND FORMS_START + 207 +#define SPECIES_GRENINJA_ASH FORMS_START + 208 // Vivillon -#define SPECIES_VIVILLON_POLAR FORMS_START + 189 -#define SPECIES_VIVILLON_TUNDRA FORMS_START + 190 -#define SPECIES_VIVILLON_CONTINENTAL FORMS_START + 191 -#define SPECIES_VIVILLON_GARDEN FORMS_START + 192 -#define SPECIES_VIVILLON_ELEGANT FORMS_START + 193 -#define SPECIES_VIVILLON_MEADOW FORMS_START + 194 -#define SPECIES_VIVILLON_MODERN FORMS_START + 195 -#define SPECIES_VIVILLON_MARINE FORMS_START + 196 -#define SPECIES_VIVILLON_ARCHIPELAGO FORMS_START + 197 -#define SPECIES_VIVILLON_HIGH_PLAINS FORMS_START + 198 -#define SPECIES_VIVILLON_SANDSTORM FORMS_START + 199 -#define SPECIES_VIVILLON_RIVER FORMS_START + 200 -#define SPECIES_VIVILLON_MONSOON FORMS_START + 201 -#define SPECIES_VIVILLON_SAVANNA FORMS_START + 202 -#define SPECIES_VIVILLON_SUN FORMS_START + 203 -#define SPECIES_VIVILLON_OCEAN FORMS_START + 204 -#define SPECIES_VIVILLON_JUNGLE FORMS_START + 205 -#define SPECIES_VIVILLON_FANCY FORMS_START + 206 -#define SPECIES_VIVILLON_POKE_BALL FORMS_START + 207 +#define SPECIES_VIVILLON_POLAR FORMS_START + 209 +#define SPECIES_VIVILLON_TUNDRA FORMS_START + 210 +#define SPECIES_VIVILLON_CONTINENTAL FORMS_START + 211 +#define SPECIES_VIVILLON_GARDEN FORMS_START + 212 +#define SPECIES_VIVILLON_ELEGANT FORMS_START + 213 +#define SPECIES_VIVILLON_MEADOW FORMS_START + 214 +#define SPECIES_VIVILLON_MODERN FORMS_START + 215 +#define SPECIES_VIVILLON_MARINE FORMS_START + 216 +#define SPECIES_VIVILLON_ARCHIPELAGO FORMS_START + 217 +#define SPECIES_VIVILLON_HIGH_PLAINS FORMS_START + 218 +#define SPECIES_VIVILLON_SANDSTORM FORMS_START + 219 +#define SPECIES_VIVILLON_RIVER FORMS_START + 220 +#define SPECIES_VIVILLON_MONSOON FORMS_START + 221 +#define SPECIES_VIVILLON_SAVANNA FORMS_START + 222 +#define SPECIES_VIVILLON_SUN FORMS_START + 223 +#define SPECIES_VIVILLON_OCEAN FORMS_START + 224 +#define SPECIES_VIVILLON_JUNGLE FORMS_START + 225 +#define SPECIES_VIVILLON_FANCY FORMS_START + 226 +#define SPECIES_VIVILLON_POKE_BALL FORMS_START + 227 // Flabébé -#define SPECIES_FLABEBE_YELLOW_FLOWER FORMS_START + 208 -#define SPECIES_FLABEBE_ORANGE_FLOWER FORMS_START + 209 -#define SPECIES_FLABEBE_BLUE_FLOWER FORMS_START + 210 -#define SPECIES_FLABEBE_WHITE_FLOWER FORMS_START + 211 +#define SPECIES_FLABEBE_YELLOW_FLOWER FORMS_START + 228 +#define SPECIES_FLABEBE_ORANGE_FLOWER FORMS_START + 229 +#define SPECIES_FLABEBE_BLUE_FLOWER FORMS_START + 230 +#define SPECIES_FLABEBE_WHITE_FLOWER FORMS_START + 231 // Floette -#define SPECIES_FLOETTE_YELLOW_FLOWER FORMS_START + 212 -#define SPECIES_FLOETTE_ORANGE_FLOWER FORMS_START + 213 -#define SPECIES_FLOETTE_BLUE_FLOWER FORMS_START + 214 -#define SPECIES_FLOETTE_WHITE_FLOWER FORMS_START + 215 -#define SPECIES_FLOETTE_ETERNAL_FLOWER FORMS_START + 216 +#define SPECIES_FLOETTE_YELLOW_FLOWER FORMS_START + 232 +#define SPECIES_FLOETTE_ORANGE_FLOWER FORMS_START + 233 +#define SPECIES_FLOETTE_BLUE_FLOWER FORMS_START + 234 +#define SPECIES_FLOETTE_WHITE_FLOWER FORMS_START + 235 +#define SPECIES_FLOETTE_ETERNAL_FLOWER FORMS_START + 236 // Florges -#define SPECIES_FLORGES_YELLOW_FLOWER FORMS_START + 217 -#define SPECIES_FLORGES_ORANGE_FLOWER FORMS_START + 218 -#define SPECIES_FLORGES_BLUE_FLOWER FORMS_START + 219 -#define SPECIES_FLORGES_WHITE_FLOWER FORMS_START + 220 +#define SPECIES_FLORGES_YELLOW_FLOWER FORMS_START + 237 +#define SPECIES_FLORGES_ORANGE_FLOWER FORMS_START + 238 +#define SPECIES_FLORGES_BLUE_FLOWER FORMS_START + 239 +#define SPECIES_FLORGES_WHITE_FLOWER FORMS_START + 240 // Furfrou -#define SPECIES_FURFROU_HEART_TRIM FORMS_START + 221 -#define SPECIES_FURFROU_STAR_TRIM FORMS_START + 222 -#define SPECIES_FURFROU_DIAMOND_TRIM FORMS_START + 223 -#define SPECIES_FURFROU_DEBUTANTE_TRIM FORMS_START + 224 -#define SPECIES_FURFROU_MATRON_TRIM FORMS_START + 225 -#define SPECIES_FURFROU_DANDY_TRIM FORMS_START + 226 -#define SPECIES_FURFROU_LA_REINE_TRIM FORMS_START + 227 -#define SPECIES_FURFROU_KABUKI_TRIM FORMS_START + 228 -#define SPECIES_FURFROU_PHARAOH_TRIM FORMS_START + 229 +#define SPECIES_FURFROU_HEART_TRIM FORMS_START + 241 +#define SPECIES_FURFROU_STAR_TRIM FORMS_START + 242 +#define SPECIES_FURFROU_DIAMOND_TRIM FORMS_START + 243 +#define SPECIES_FURFROU_DEBUTANTE_TRIM FORMS_START + 244 +#define SPECIES_FURFROU_MATRON_TRIM FORMS_START + 245 +#define SPECIES_FURFROU_DANDY_TRIM FORMS_START + 246 +#define SPECIES_FURFROU_LA_REINE_TRIM FORMS_START + 247 +#define SPECIES_FURFROU_KABUKI_TRIM FORMS_START + 248 +#define SPECIES_FURFROU_PHARAOH_TRIM FORMS_START + 249 // Meowstic -#define SPECIES_MEOWSTIC_FEMALE FORMS_START + 230 +#define SPECIES_MEOWSTIC_FEMALE FORMS_START + 250 // Aegislash -#define SPECIES_AEGISLASH_BLADE FORMS_START + 231 +#define SPECIES_AEGISLASH_BLADE FORMS_START + 251 // Pumpkaboo -#define SPECIES_PUMPKABOO_SMALL FORMS_START + 232 -#define SPECIES_PUMPKABOO_LARGE FORMS_START + 233 -#define SPECIES_PUMPKABOO_SUPER FORMS_START + 234 +#define SPECIES_PUMPKABOO_SMALL FORMS_START + 252 +#define SPECIES_PUMPKABOO_LARGE FORMS_START + 253 +#define SPECIES_PUMPKABOO_SUPER FORMS_START + 254 // Gourgeist -#define SPECIES_GOURGEIST_SMALL FORMS_START + 235 -#define SPECIES_GOURGEIST_LARGE FORMS_START + 236 -#define SPECIES_GOURGEIST_SUPER FORMS_START + 237 +#define SPECIES_GOURGEIST_SMALL FORMS_START + 255 +#define SPECIES_GOURGEIST_LARGE FORMS_START + 256 +#define SPECIES_GOURGEIST_SUPER FORMS_START + 257 // Xerneas -#define SPECIES_XERNEAS_ACTIVE FORMS_START + 238 +#define SPECIES_XERNEAS_ACTIVE FORMS_START + 258 // Zygarde -#define SPECIES_ZYGARDE_10 FORMS_START + 239 -#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT FORMS_START + 240 -#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT FORMS_START + 241 -#define SPECIES_ZYGARDE_COMPLETE FORMS_START + 242 +#define SPECIES_ZYGARDE_10 FORMS_START + 259 +#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT FORMS_START + 260 +#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT FORMS_START + 261 +#define SPECIES_ZYGARDE_COMPLETE FORMS_START + 262 // Hoopa -#define SPECIES_HOOPA_UNBOUND FORMS_START + 243 +#define SPECIES_HOOPA_UNBOUND FORMS_START + 263 // Oricorio -#define SPECIES_ORICORIO_POM_POM FORMS_START + 244 -#define SPECIES_ORICORIO_PAU FORMS_START + 245 -#define SPECIES_ORICORIO_SENSU FORMS_START + 246 +#define SPECIES_ORICORIO_POM_POM FORMS_START + 264 +#define SPECIES_ORICORIO_PAU FORMS_START + 265 +#define SPECIES_ORICORIO_SENSU FORMS_START + 266 // Rockruff -#define SPECIES_ROCKRUFF_OWN_TEMPO FORMS_START + 247 +#define SPECIES_ROCKRUFF_OWN_TEMPO FORMS_START + 267 // Lycanroc -#define SPECIES_LYCANROC_MIDNIGHT FORMS_START + 248 -#define SPECIES_LYCANROC_DUSK FORMS_START + 249 +#define SPECIES_LYCANROC_MIDNIGHT FORMS_START + 268 +#define SPECIES_LYCANROC_DUSK FORMS_START + 269 // Wishiwashi -#define SPECIES_WISHIWASHI_SCHOOL FORMS_START + 250 +#define SPECIES_WISHIWASHI_SCHOOL FORMS_START + 270 // Silvally -#define SPECIES_SILVALLY_FIGHTING FORMS_START + 251 -#define SPECIES_SILVALLY_FLYING FORMS_START + 252 -#define SPECIES_SILVALLY_POISON FORMS_START + 253 -#define SPECIES_SILVALLY_GROUND FORMS_START + 254 -#define SPECIES_SILVALLY_ROCK FORMS_START + 255 -#define SPECIES_SILVALLY_BUG FORMS_START + 256 -#define SPECIES_SILVALLY_GHOST FORMS_START + 257 -#define SPECIES_SILVALLY_STEEL FORMS_START + 258 -#define SPECIES_SILVALLY_FIRE FORMS_START + 259 -#define SPECIES_SILVALLY_WATER FORMS_START + 260 -#define SPECIES_SILVALLY_GRASS FORMS_START + 261 -#define SPECIES_SILVALLY_ELECTRIC FORMS_START + 262 -#define SPECIES_SILVALLY_PSYCHIC FORMS_START + 263 -#define SPECIES_SILVALLY_ICE FORMS_START + 264 -#define SPECIES_SILVALLY_DRAGON FORMS_START + 265 -#define SPECIES_SILVALLY_DARK FORMS_START + 266 -#define SPECIES_SILVALLY_FAIRY FORMS_START + 267 +#define SPECIES_SILVALLY_FIGHTING FORMS_START + 271 +#define SPECIES_SILVALLY_FLYING FORMS_START + 272 +#define SPECIES_SILVALLY_POISON FORMS_START + 273 +#define SPECIES_SILVALLY_GROUND FORMS_START + 274 +#define SPECIES_SILVALLY_ROCK FORMS_START + 275 +#define SPECIES_SILVALLY_BUG FORMS_START + 276 +#define SPECIES_SILVALLY_GHOST FORMS_START + 277 +#define SPECIES_SILVALLY_STEEL FORMS_START + 278 +#define SPECIES_SILVALLY_FIRE FORMS_START + 279 +#define SPECIES_SILVALLY_WATER FORMS_START + 280 +#define SPECIES_SILVALLY_GRASS FORMS_START + 281 +#define SPECIES_SILVALLY_ELECTRIC FORMS_START + 282 +#define SPECIES_SILVALLY_PSYCHIC FORMS_START + 283 +#define SPECIES_SILVALLY_ICE FORMS_START + 284 +#define SPECIES_SILVALLY_DRAGON FORMS_START + 285 +#define SPECIES_SILVALLY_DARK FORMS_START + 286 +#define SPECIES_SILVALLY_FAIRY FORMS_START + 287 // Minior -#define SPECIES_MINIOR_METEOR_ORANGE FORMS_START + 268 -#define SPECIES_MINIOR_METEOR_YELLOW FORMS_START + 269 -#define SPECIES_MINIOR_METEOR_GREEN FORMS_START + 270 -#define SPECIES_MINIOR_METEOR_BLUE FORMS_START + 271 -#define SPECIES_MINIOR_METEOR_INDIGO FORMS_START + 272 -#define SPECIES_MINIOR_METEOR_VIOLET FORMS_START + 273 -#define SPECIES_MINIOR_CORE_RED FORMS_START + 274 -#define SPECIES_MINIOR_CORE_ORANGE FORMS_START + 275 -#define SPECIES_MINIOR_CORE_YELLOW FORMS_START + 276 -#define SPECIES_MINIOR_CORE_GREEN FORMS_START + 277 -#define SPECIES_MINIOR_CORE_BLUE FORMS_START + 278 -#define SPECIES_MINIOR_CORE_INDIGO FORMS_START + 279 -#define SPECIES_MINIOR_CORE_VIOLET FORMS_START + 280 +#define SPECIES_MINIOR_METEOR_ORANGE FORMS_START + 288 +#define SPECIES_MINIOR_METEOR_YELLOW FORMS_START + 289 +#define SPECIES_MINIOR_METEOR_GREEN FORMS_START + 290 +#define SPECIES_MINIOR_METEOR_BLUE FORMS_START + 291 +#define SPECIES_MINIOR_METEOR_INDIGO FORMS_START + 292 +#define SPECIES_MINIOR_METEOR_VIOLET FORMS_START + 293 +#define SPECIES_MINIOR_CORE_RED FORMS_START + 294 +#define SPECIES_MINIOR_CORE_ORANGE FORMS_START + 295 +#define SPECIES_MINIOR_CORE_YELLOW FORMS_START + 296 +#define SPECIES_MINIOR_CORE_GREEN FORMS_START + 297 +#define SPECIES_MINIOR_CORE_BLUE FORMS_START + 298 +#define SPECIES_MINIOR_CORE_INDIGO FORMS_START + 299 +#define SPECIES_MINIOR_CORE_VIOLET FORMS_START + 300 // Mimikyu -#define SPECIES_MIMIKYU_BUSTED FORMS_START + 281 +#define SPECIES_MIMIKYU_BUSTED FORMS_START + 301 // Necrozma -#define SPECIES_NECROZMA_DUSK_MANE FORMS_START + 282 -#define SPECIES_NECROZMA_DAWN_WINGS FORMS_START + 283 -#define SPECIES_NECROZMA_ULTRA FORMS_START + 284 +#define SPECIES_NECROZMA_DUSK_MANE FORMS_START + 302 +#define SPECIES_NECROZMA_DAWN_WINGS FORMS_START + 303 +#define SPECIES_NECROZMA_ULTRA FORMS_START + 304 // Magearna -#define SPECIES_MAGEARNA_ORIGINAL_COLOR FORMS_START + 285 +#define SPECIES_MAGEARNA_ORIGINAL_COLOR FORMS_START + 305 // Cramorant -#define SPECIES_CRAMORANT_GULPING FORMS_START + 286 -#define SPECIES_CRAMORANT_GORGING FORMS_START + 287 +#define SPECIES_CRAMORANT_GULPING FORMS_START + 306 +#define SPECIES_CRAMORANT_GORGING FORMS_START + 307 // Toxtricity -#define SPECIES_TOXTRICITY_LOW_KEY FORMS_START + 288 +#define SPECIES_TOXTRICITY_LOW_KEY FORMS_START + 308 // Sinistea -#define SPECIES_SINISTEA_ANTIQUE FORMS_START + 289 +#define SPECIES_SINISTEA_ANTIQUE FORMS_START + 309 // Polteageist -#define SPECIES_POLTEAGEIST_ANTIQUE FORMS_START + 290 +#define SPECIES_POLTEAGEIST_ANTIQUE FORMS_START + 310 // Alcremie -#define SPECIES_ALCREMIE_RUBY_CREAM FORMS_START + 291 -#define SPECIES_ALCREMIE_MATCHA_CREAM FORMS_START + 292 -#define SPECIES_ALCREMIE_MINT_CREAM FORMS_START + 293 -#define SPECIES_ALCREMIE_LEMON_CREAM FORMS_START + 294 -#define SPECIES_ALCREMIE_SALTED_CREAM FORMS_START + 295 -#define SPECIES_ALCREMIE_RUBY_SWIRL FORMS_START + 296 -#define SPECIES_ALCREMIE_CARAMEL_SWIRL FORMS_START + 297 -#define SPECIES_ALCREMIE_RAINBOW_SWIRL FORMS_START + 298 +#define SPECIES_ALCREMIE_RUBY_CREAM FORMS_START + 311 +#define SPECIES_ALCREMIE_MATCHA_CREAM FORMS_START + 312 +#define SPECIES_ALCREMIE_MINT_CREAM FORMS_START + 313 +#define SPECIES_ALCREMIE_LEMON_CREAM FORMS_START + 314 +#define SPECIES_ALCREMIE_SALTED_CREAM FORMS_START + 315 +#define SPECIES_ALCREMIE_RUBY_SWIRL FORMS_START + 316 +#define SPECIES_ALCREMIE_CARAMEL_SWIRL FORMS_START + 317 +#define SPECIES_ALCREMIE_RAINBOW_SWIRL FORMS_START + 318 // Eiscue -#define SPECIES_EISCUE_NOICE_FACE FORMS_START + 299 +#define SPECIES_EISCUE_NOICE_FACE FORMS_START + 319 // Indeedee -#define SPECIES_INDEEDEE_FEMALE FORMS_START + 300 +#define SPECIES_INDEEDEE_FEMALE FORMS_START + 320 // Morpeko -#define SPECIES_MORPEKO_HANGRY FORMS_START + 301 +#define SPECIES_MORPEKO_HANGRY FORMS_START + 321 // Zacian -#define SPECIES_ZACIAN_CROWNED_SWORD FORMS_START + 302 +#define SPECIES_ZACIAN_CROWNED_SWORD FORMS_START + 322 // Zamazenta -#define SPECIES_ZAMAZENTA_CROWNED_SHIELD FORMS_START + 303 +#define SPECIES_ZAMAZENTA_CROWNED_SHIELD FORMS_START + 323 // Eternatus -#define SPECIES_ETERNATUS_ETERNAMAX FORMS_START + 304 +#define SPECIES_ETERNATUS_ETERNAMAX FORMS_START + 324 // Urshifu -#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE FORMS_START + 305 +#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE FORMS_START + 325 // Zarude -#define SPECIES_ZARUDE_DADA FORMS_START + 306 +#define SPECIES_ZARUDE_DADA FORMS_START + 326 // Calyrex -#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 307 -#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 308 +#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 327 +#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 328 #if P_NEW_POKEMON == TRUE -#define FORMS_START SPECIES_CALYREX +#define FORMS_START SPECIES_ENAMORUS #define SPECIES_EGG SPECIES_CALYREX_SHADOW_RIDER + 1 #else #define FORMS_START SPECIES_DEOXYS diff --git a/include/decompress.h b/include/decompress.h index bea2788ab..ef2ec43b0 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -19,10 +19,9 @@ bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species); void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality); -void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); -void HandleLoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFemale); +void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality); -void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); +void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic); u32 GetDecompressedDataSize(const u32 *ptr); diff --git a/include/global.h b/include/global.h index 25b43db20..b27c1e91c 100644 --- a/include/global.h +++ b/include/global.h @@ -15,7 +15,6 @@ #include "constants/pokemon.h" #include "constants/easy_chat.h" #include "constants/trainer_hill.h" -#include "constants/expansion_branches.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); diff --git a/include/graphics.h b/include/graphics.h index 908fa4f4c..80532ad93 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -980,6 +980,14 @@ 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_Basculegion[]; +//extern const u32 gMonFrontPic_BasculegionF[]; +//extern const u32 gMonFrontPic_Sneasler[]; +extern const u32 gMonFrontPic_Overqwil[]; +//extern const u32 gMonFrontPic_Enamorus[]; extern const u32 gMonFrontPic_VenusaurMega[]; extern const u32 gMonFrontPic_CharizardMegaX[]; extern const u32 gMonFrontPic_CharizardMegaY[]; @@ -1067,6 +1075,22 @@ extern const u32 gMonFrontPic_DarumakaGalarian[]; extern const u32 gMonFrontPic_DarmanitanGalarian[]; extern const u32 gMonFrontPic_YamaskGalarian[]; extern const u32 gMonFrontPic_StunfiskGalarian[]; +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_SamurottHisuian[]; +extern const u32 gMonFrontPic_LilligantHisuian[]; +extern const u32 gMonFrontPic_ZoruaHisuian[]; +extern const u32 gMonFrontPic_ZoroarkHisuian[]; +extern const u32 gMonFrontPic_BraviaryHisuian[]; +extern const u32 gMonFrontPic_SliggooHisuian[]; +extern const u32 gMonFrontPic_GoodraHisuian[]; +extern const u32 gMonFrontPic_AvaluggHisuian[]; +//extern const u32 gMonFrontPic_DecidueyeHisuian[]; extern const u32 gMonFrontPic_PikachuCosplay[]; extern const u32 gMonFrontPic_PikachuRockStar[]; extern const u32 gMonFrontPic_PikachuBelle[]; @@ -1129,9 +1153,12 @@ 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[]; extern const u32 gMonFrontPic_BasculinBlueStriped[]; +extern const u32 gMonFrontPic_BasculinWhiteStriped[]; extern const u32 gMonFrontPic_DarmanitanZenMode[]; extern const u32 gMonFrontPic_DarmanitanZenModeGalarian[]; extern const u32 gMonFrontPic_SawsbuckSummer[]; @@ -1140,6 +1167,7 @@ extern const u32 gMonFrontPic_SawsbuckWinter[]; extern const u32 gMonFrontPic_TornadusTherian[]; extern const u32 gMonFrontPic_ThundurusTherian[]; extern const u32 gMonFrontPic_LandorusTherian[]; +//extern const u32 gMonFrontPic_EnamorusTherian[]; extern const u32 gMonFrontPic_KyuremWhite[]; extern const u32 gMonFrontPic_KyuremBlack[]; extern const u32 gMonFrontPic_KeldeoResolute[]; @@ -2136,6 +2164,14 @@ 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_Basculegion[]; +//extern const u32 gMonBackPic_BasculegionF[]; +//extern const u32 gMonBackPic_Sneasler[]; +extern const u32 gMonBackPic_Overqwil[]; +//extern const u32 gMonBackPic_Enamorus[]; extern const u32 gMonBackPic_VenusaurMega[]; extern const u32 gMonBackPic_CharizardMegaX[]; extern const u32 gMonBackPic_CharizardMegaY[]; @@ -2223,6 +2259,22 @@ extern const u32 gMonBackPic_DarumakaGalarian[]; extern const u32 gMonBackPic_DarmanitanGalarian[]; extern const u32 gMonBackPic_YamaskGalarian[]; extern const u32 gMonBackPic_StunfiskGalarian[]; +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_SamurottHisuian[]; +extern const u32 gMonBackPic_LilligantHisuian[]; +extern const u32 gMonBackPic_ZoruaHisuian[]; +extern const u32 gMonBackPic_ZoroarkHisuian[]; +extern const u32 gMonBackPic_BraviaryHisuian[]; +extern const u32 gMonBackPic_SliggooHisuian[]; +extern const u32 gMonBackPic_GoodraHisuian[]; +extern const u32 gMonBackPic_AvaluggHisuian[]; +//extern const u32 gMonBackPic_DecidueyeHisuian[]; extern const u32 gMonBackPic_PikachuCosplay[]; extern const u32 gMonBackPic_PikachuRockStar[]; extern const u32 gMonBackPic_PikachuBelle[]; @@ -2285,9 +2337,12 @@ 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[]; extern const u32 gMonBackPic_BasculinBlueStriped[]; +extern const u32 gMonBackPic_BasculinWhiteStriped[]; extern const u32 gMonBackPic_DarmanitanZenMode[]; extern const u32 gMonBackPic_DarmanitanZenModeGalarian[]; extern const u32 gMonBackPic_SawsbuckSummer[]; @@ -2296,6 +2351,7 @@ extern const u32 gMonBackPic_SawsbuckWinter[]; extern const u32 gMonBackPic_TornadusTherian[]; extern const u32 gMonBackPic_ThundurusTherian[]; extern const u32 gMonBackPic_LandorusTherian[]; +//extern const u32 gMonBackPic_EnamorusTherian[]; extern const u32 gMonBackPic_KyuremWhite[]; extern const u32 gMonBackPic_KyuremBlack[]; extern const u32 gMonBackPic_KeldeoResolute[]; @@ -3284,6 +3340,14 @@ 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_Basculegion[]; +//extern const u32 gMonPalette_BasculegionF[]; +//extern const u32 gMonPalette_Sneasler[]; +extern const u32 gMonPalette_Overqwil[]; +//extern const u32 gMonPalette_Enamorus[]; extern const u32 gMonPalette_VenusaurMega[]; extern const u32 gMonPalette_CharizardMegaX[]; extern const u32 gMonPalette_CharizardMegaY[]; @@ -3371,6 +3435,22 @@ extern const u32 gMonPalette_DarumakaGalarian[]; extern const u32 gMonPalette_DarmanitanGalarian[]; extern const u32 gMonPalette_YamaskGalarian[]; extern const u32 gMonPalette_StunfiskGalarian[]; +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[]; +//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[]; +extern const u32 gMonPalette_SliggooHisuian[]; +extern const u32 gMonPalette_GoodraHisuian[]; +extern const u32 gMonPalette_AvaluggHisuian[]; +//extern const u32 gMonPalette_DecidueyeHisuian[]; extern const u32 gMonPalette_PikachuCosplay[]; extern const u32 gMonPalette_PikachuRockStar[]; extern const u32 gMonPalette_PikachuBelle[]; @@ -3406,6 +3486,8 @@ 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[]; @@ -3426,6 +3508,7 @@ extern const u32 gMonPalette_ArceusDragon[]; extern const u32 gMonPalette_ArceusDark[]; extern const u32 gMonPalette_ArceusFairy[]; extern const u32 gMonPalette_BasculinBlueStriped[]; +extern const u32 gMonPalette_BasculinWhiteStriped[]; extern const u32 gMonPalette_DarmanitanZenMode[]; extern const u32 gMonPalette_DarmanitanZenModeGalarian[]; extern const u32 gMonPalette_DeerlingSummer[]; @@ -3437,6 +3520,7 @@ extern const u32 gMonPalette_SawsbuckWinter[]; extern const u32 gMonPalette_TornadusTherian[]; extern const u32 gMonPalette_ThundurusTherian[]; extern const u32 gMonPalette_LandorusTherian[]; +//extern const u32 gMonPalette_EnamorusTherian[]; extern const u32 gMonPalette_KyuremWhite[]; extern const u32 gMonPalette_KyuremBlack[]; extern const u32 gMonPalette_KeldeoResolute[]; @@ -4460,6 +4544,14 @@ 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_Basculegion[]; +//extern const u32 gMonShinyPalette_BasculegionF[]; +//extern const u32 gMonShinyPalette_Sneasler[]; +extern const u32 gMonShinyPalette_Overqwil[]; +//extern const u32 gMonShinyPalette_Enamorus[]; extern const u32 gMonShinyPalette_VenusaurMega[]; extern const u32 gMonShinyPalette_CharizardMegaX[]; extern const u32 gMonShinyPalette_CharizardMegaY[]; @@ -4547,6 +4639,22 @@ extern const u32 gMonShinyPalette_DarumakaGalarian[]; extern const u32 gMonShinyPalette_DarmanitanGalarian[]; extern const u32 gMonShinyPalette_YamaskGalarian[]; extern const u32 gMonShinyPalette_StunfiskGalarian[]; +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[]; +//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[]; +extern const u32 gMonShinyPalette_SliggooHisuian[]; +extern const u32 gMonShinyPalette_GoodraHisuian[]; +extern const u32 gMonShinyPalette_AvaluggHisuian[]; +//extern const u32 gMonShinyPalette_DecidueyeHisuian[]; extern const u32 gMonShinyPalette_PikachuCosplay[]; extern const u32 gMonShinyPalette_PikachuRockStar[]; extern const u32 gMonShinyPalette_PikachuBelle[]; @@ -4582,6 +4690,8 @@ 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[]; @@ -4602,6 +4712,7 @@ extern const u32 gMonShinyPalette_ArceusDragon[]; extern const u32 gMonShinyPalette_ArceusDark[]; extern const u32 gMonShinyPalette_ArceusFairy[]; extern const u32 gMonShinyPalette_BasculinBlueStriped[]; +extern const u32 gMonShinyPalette_BasculinWhiteStriped[]; extern const u32 gMonShinyPalette_DarmanitanZenMode[]; extern const u32 gMonShinyPalette_DarmanitanZenModeGalarian[]; extern const u32 gMonShinyPalette_DeerlingSummer[]; @@ -4613,6 +4724,7 @@ extern const u32 gMonShinyPalette_SawsbuckWinter[]; extern const u32 gMonShinyPalette_TornadusTherian[]; extern const u32 gMonShinyPalette_ThundurusTherian[]; extern const u32 gMonShinyPalette_LandorusTherian[]; +//extern const u32 gMonShinyPalette_EnamorusTherian[]; extern const u32 gMonShinyPalette_KyuremWhite[]; extern const u32 gMonShinyPalette_KyuremBlack[]; extern const u32 gMonShinyPalette_KeldeoResolute[]; @@ -5624,7 +5736,15 @@ 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_Calyrex[]; +extern const u8 gMonIcon_Wyrdeer[]; +extern const u8 gMonIcon_Kleavor[]; +extern const u8 gMonIcon_Ursaluna[]; +extern const u8 gMonIcon_Basculegion[]; +extern const u8 gMonIcon_BasculegionF[]; +extern const u8 gMonIcon_Sneasler[]; +extern const u8 gMonIcon_Overqwil[]; +extern const u8 gMonIcon_Enamorus[]; extern const u8 gMonIcon_VenusaurMega[]; extern const u8 gMonIcon_CharizardMegaX[]; extern const u8 gMonIcon_CharizardMegaY[]; @@ -5712,6 +5832,22 @@ extern const u8 gMonIcon_DarumakaGalarian[]; extern const u8 gMonIcon_DarmanitanGalarian[]; extern const u8 gMonIcon_YamaskGalarian[]; extern const u8 gMonIcon_StunfiskGalarian[]; +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[]; +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[]; +extern const u8 gMonIcon_SliggooHisuian[]; +extern const u8 gMonIcon_GoodraHisuian[]; +extern const u8 gMonIcon_AvaluggHisuian[]; +extern const u8 gMonIcon_DecidueyeHisuian[]; extern const u8 gMonIcon_PikachuCosplay[]; extern const u8 gMonIcon_PikachuRockStar[]; extern const u8 gMonIcon_PikachuBelle[]; @@ -5773,9 +5909,12 @@ 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[]; extern const u8 gMonIcon_BasculinBlueStriped[]; +extern const u8 gMonIcon_BasculinWhiteStriped[]; extern const u8 gMonIcon_DarmanitanZenMode[]; extern const u8 gMonIcon_DarmanitanZenModeGalarian[]; extern const u8 gMonIcon_DeerlingSummer[]; @@ -5787,6 +5926,7 @@ extern const u8 gMonIcon_SawsbuckWinter[]; extern const u8 gMonIcon_TornadusTherian[]; extern const u8 gMonIcon_ThundurusTherian[]; extern const u8 gMonIcon_LandorusTherian[]; +extern const u8 gMonIcon_EnamorusTherian[]; extern const u8 gMonIcon_KyuremWhite[]; extern const u8 gMonIcon_KyuremBlack[]; extern const u8 gMonIcon_KeldeoResolute[]; @@ -6780,6 +6920,13 @@ 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[]; #endif // trainer sprites @@ -8863,8 +9010,8 @@ extern const u16 gTilesetAnims_BattleDomePals0_1[]; extern const u16 gTilesetAnims_BattleDomePals0_2[]; extern const u16 gTilesetAnims_BattleDomePals0_3[]; -extern const u32 gBattleArenaJudgementSymbolsGfx[]; -extern const u32 gBattleArenaJudgementSymbolsPalette[]; +extern const u32 gBattleArenaJudgmentSymbolsGfx[]; +extern const u32 gBattleArenaJudgmentSymbolsPalette[]; extern const u32 gBattleWindowTextPalette[]; diff --git a/include/party_menu.h b/include/party_menu.h index 02f7b30b1..b00fd7324 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -29,8 +29,6 @@ extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2]; extern void (*gItemUseCB)(u8, TaskFunc); -extern const u16 gTutorMoves[]; - void AnimatePartySlot(u8 slot, u8 animNum); bool8 IsMultiBattle(void); u8 GetCursorSelectionMonId(void); diff --git a/include/pokemon.h b/include/pokemon.h index d7de38c61..02ebc5f66 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -142,7 +142,7 @@ struct PokemonSubstruct3 /* 0x02 */ u16 metLevel:7; /* 0x02 */ u16 metGame:4; - /* 0x03 */ u16 unused3_3:4; + /* 0x03 */ u16 unused1:4; /* 0x03 */ u16 otGender:1; /* 0x04 */ u32 hpIV:5; @@ -152,6 +152,7 @@ struct PokemonSubstruct3 /* 0x05 */ u32 spAttackIV:5; /* 0x06 */ u32 spDefenseIV:5; /* 0x07 */ u32 isEgg:1; + /* 0x07 */ u32 unused2:1; /* 0x08 */ u32 coolRibbon:3; /* 0x08 */ u32 beautyRibbon:3; @@ -397,6 +398,7 @@ extern const struct BaseStats gBaseStats[]; extern const u8 *const gItemEffectTable[]; 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[]; @@ -509,8 +511,7 @@ u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection); void UpdatePartyPokerusTime(u16 days); void PartySpreadPokerus(struct Pokemon *party); bool8 TryIncrementMonLevel(struct Pokemon *mon); -u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm); -u32 CanSpeciesLearnTMHM(u16 species, u8 tm); +u8 CanLearnTeachableMove(u16 species, u16 move); u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); u8 GetNumberOfRelearnableMoves(struct Pokemon *mon); @@ -558,5 +559,6 @@ u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId); u16 GetFormChangeTargetSpecies(struct Pokemon *mon, u16 method, u32 arg); u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *mon, u16 method, u32 arg); u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove); +bool32 ShouldShowFemaleDifferences(u16 species, u32 personality); #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 952db1ed1..fba6a6740 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -21,7 +21,6 @@ u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s1 void FreeMonIconPalette(u16 species); void FreeAndDestroyMonIconSprite(struct Sprite *sprite); u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality); -u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool8 isFemale, bool8 isShiny); u8 UpdateMonIconFrame(struct Sprite *sprite); void LoadMonIconPalette(u16 species); void SpriteCB_MonIcon(struct Sprite *sprite); diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 3996c8e15..4e9e62284 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -6,6 +6,7 @@ extern u8 gLastViewedMonIndex; extern const u8 *const gMoveDescriptionPointers[]; +extern const u8 gNotDoneYetDescription[]; extern const u8 *const gNatureNamePointers[]; void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); diff --git a/include/strings.h b/include/strings.h index e2ae613d0..25a96eef0 100644 --- a/include/strings.h +++ b/include/strings.h @@ -499,6 +499,7 @@ extern const u8 gText_12PoofForgotMove[]; extern const u8 gText_StopLearningMove2[]; extern const u8 gText_MoveNotLearned[]; extern const u8 gText_PkmnElevatedToLvVar2[]; +extern const u8 gText_PkmnGainedExp[]; extern const u8 gText_RemoveMailBeforeItem[]; extern const u8 gText_PkmnHoldingItemCantHoldMail[]; extern const u8 gText_MailTransferredFromMailbox[]; diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 0fdc9cb50..30eef3327 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -899,6 +899,13 @@ gCryTable:: cry Cry_Glastrier cry Cry_Spectrier cry Cry_Calyrex + cry Cry_Bulbasaur //Cry_Wyrdeer + cry Cry_Bulbasaur //Cry_Kleavor + cry Cry_Bulbasaur //Cry_Ursaluna + cry Cry_Bulbasaur //Cry_Basculegion + cry Cry_Bulbasaur //Cry_Sneasler + cry Cry_Bulbasaur //Cry_Overqwil + cry Cry_Bulbasaur //Cry_Enamorus @ Megas cry Cry_VenusaurMega cry Cry_CharizardMegaX @@ -990,6 +997,23 @@ gCryTable:: cry Cry_Darmanitan cry Cry_Yamask cry Cry_Stunfisk + @ Hisuian Forms + cry Cry_Growlithe + cry Cry_Arcanine + cry Cry_Voltorb + cry Cry_Electrode + cry Cry_Typhlosion + cry Cry_Qwilfish + cry Cry_Sneasel + cry Cry_Samurott + cry Cry_Lilligant + cry Cry_Zorua + cry Cry_Zoroark + cry Cry_Braviary + cry Cry_Sliggoo + cry Cry_Goodra + cry Cry_Avalugg + cry Cry_Decidueye @ Misc Forms @ Cosplay Pikachu cry Cry_Pikachu @@ -1063,7 +1087,9 @@ gCryTable:: cry Cry_Rotom cry Cry_Rotom cry Cry_Rotom - @ Giratina + @ Origin Forme + cry Cry_Dialga + cry Cry_Palkia cry Cry_Giratina @ Shaymin cry Cry_ShayminSky @@ -1087,6 +1113,7 @@ gCryTable:: cry Cry_Arceus @ Basculin cry Cry_Basculin + cry Cry_Basculin @ Darmanitan cry Cry_Darmanitan cry Cry_Darmanitan @@ -2212,6 +2239,13 @@ gCryTable_Reverse:: cry_reverse Cry_Glastrier cry_reverse Cry_Spectrier cry_reverse Cry_Calyrex + cry_reverse Cry_Bulbasaur //Cry_Wyrdeer + cry_reverse Cry_Bulbasaur //Cry_Kleavor + cry_reverse Cry_Bulbasaur //Cry_Ursaluna + cry_reverse Cry_Bulbasaur //Cry_Basculegion + cry_reverse Cry_Bulbasaur //Cry_Sneasler + cry_reverse Cry_Bulbasaur //Cry_Overqwil + cry_reverse Cry_Bulbasaur //Cry_Enamorus @ Megas cry_reverse Cry_VenusaurMega cry_reverse Cry_CharizardMegaX @@ -2303,6 +2337,23 @@ gCryTable_Reverse:: cry_reverse Cry_Darmanitan cry_reverse Cry_Yamask cry_reverse Cry_Stunfisk + @ 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 + cry_reverse Cry_Samurott + cry_reverse Cry_Lilligant + cry_reverse Cry_Zorua + cry_reverse Cry_Zoroark + cry_reverse Cry_Braviary + cry_reverse Cry_Sliggoo + cry_reverse Cry_Goodra + cry_reverse Cry_Avalugg + cry_reverse Cry_Decidueye @ Misc Forms @ Cosplay Pikachu cry_reverse Cry_Pikachu @@ -2376,7 +2427,9 @@ gCryTable_Reverse:: cry_reverse Cry_Rotom cry_reverse Cry_Rotom cry_reverse Cry_Rotom - @ Giratina + @ Origin Forme + cry_reverse Cry_Dialga + cry_reverse Cry_Palkia cry_reverse Cry_Giratina @ Shaymin cry_reverse Cry_ShayminSky @@ -2400,6 +2453,7 @@ gCryTable_Reverse:: cry_reverse Cry_Arceus @ Basculin cry_reverse Cry_Basculin + cry_reverse Cry_Basculin @ Darmanitan cry_reverse Cry_Darmanitan cry_reverse Cry_Darmanitan @@ -2415,6 +2469,7 @@ gCryTable_Reverse:: cry_reverse Cry_TornadusTherian cry_reverse Cry_ThundurusTherian cry_reverse Cry_LandorusTherian + cry_reverse Cry_Bulbasaur //Cry_EnamorusTherian @ Kyurem cry_reverse Cry_KyuremWhite cry_reverse Cry_KyuremBlack diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index c177475d6..4ce03dbed 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -3978,6 +3978,35 @@ Cry_Spectrier:: .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" +*/ .align 2 Cry_VenusaurMega:: @@ -4198,6 +4227,11 @@ Cry_ThundurusTherian:: .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:: diff --git a/src/apprentice.c b/src/apprentice.c index 4103e8f79..ad7568a76 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -376,7 +376,7 @@ static u16 GetRandomAlternateMove(u8 monId) do { id = Random() % (NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES); - shouldUseMove = CanSpeciesLearnTMHM(species, id); + shouldUseMove = CanLearnTeachableMove(species, ItemIdToBattleMoveId(ITEM_TM01 + id)); } while (!shouldUseMove); diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 732dea780..312ff853c 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -130,10 +130,10 @@ static u32 GetWildAiFlags(void) { u8 avgLevel = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL); u32 flags; - + if (IsDoubleBattle()) avgLevel = (GetMonData(&gEnemyParty[0], MON_DATA_LEVEL) + GetMonData(&gEnemyParty[1], MON_DATA_LEVEL)) / 2; - + flags |= AI_FLAG_CHECK_BAD_MOVE; if (avgLevel >= 20) flags |= AI_FLAG_CHECK_VIABILITY; @@ -141,10 +141,12 @@ static u32 GetWildAiFlags(void) flags |= AI_FLAG_PREFER_STRONGEST_MOVE; if (avgLevel >= 80) flags |= AI_FLAG_HP_AWARE; - - if (B_VAR_WILD_AI_FLAGS != 0 && VarGet(B_VAR_WILD_AI_FLAGS) != 0) + +#if B_VAR_WILD_AI_FLAGS != 0 + if (VarGet(B_VAR_WILD_AI_FLAGS) != 0) flags |= VarGet(B_VAR_WILD_AI_FLAGS); - +#endif + return flags; } @@ -166,7 +168,7 @@ void BattleAI_SetupFlags(void) AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags | gTrainers[gTrainerBattleOpponent_B].aiFlags; else AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent_A].aiFlags; - + // check smart wild AI if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_TRAINER)) && IsWildMonSmart()) AI_THINKING_STRUCT->aiFlags |= GetWildAiFlags(); @@ -220,11 +222,11 @@ u8 BattleAI_ChooseMoveOrAction(void) ret = ChooseMoveOrAction_Singles(); else ret = ChooseMoveOrAction_Doubles(); - + // Clear protect structures, some flags may be set during AI calcs // e.g. pranksterElevated from GetMovePriority memset(&gProtectStructs, 0, MAX_BATTLERS_COUNT * sizeof(struct ProtectStruct)); - + gCurrentMove = savedCurrentMove; return ret; } @@ -245,7 +247,7 @@ static void SetBattlerAiData(u8 battlerId) AI_DATA->holdEffectParams[battlerId] = GetBattlerHoldEffectParam(battlerId); AI_DATA->predictedMoves[battlerId] = gLastMoves[battlerId]; AI_DATA->hpPercents[battlerId] = GetHealthPercentage(battlerId); - AI_DATA->moveLimitations[battlerId] = CheckMoveLimitations(battlerId, 0, 0xFF); + AI_DATA->moveLimitations[battlerId] = CheckMoveLimitations(battlerId, 0, MOVE_LIMITATIONS_ALL); } void GetAiLogicData(void) @@ -253,13 +255,13 @@ void GetAiLogicData(void) u32 battlerAtk, battlerDef, i, move; u8 effectiveness; s32 dmg; - + memset(AI_DATA, 0, sizeof(struct AiLogicData)); - + if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER)) && !IsWildMonSmart()) return; - + // get/assume all battler data for (i = 0; i < gBattlersCount; i++) { @@ -267,7 +269,7 @@ void GetAiLogicData(void) SetBattlerAiData(i); } } - + // simulate AI damage for (battlerAtk = 0; battlerAtk < gBattlersCount; battlerAtk++) { @@ -275,26 +277,26 @@ void GetAiLogicData(void) || !IsBattlerAIControlled(battlerAtk)) { continue; } - + for (battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) { if (battlerAtk == battlerDef) continue; - + RecordKnownMove(battlerDef, gLastMoves[battlerDef]); for (i = 0; i < MAX_MON_MOVES; i++) { dmg = 0; effectiveness = AI_EFFECTIVENESS_x0; move = gBattleMons[battlerAtk].moves[i]; - + if (move != 0 && move != 0xFFFF //&& gBattleMoves[move].power != 0 /* we want to get effectiveness of status moves */ && !(AI_DATA->moveLimitations[battlerAtk] & gBitTable[i])) { dmg = AI_CalcDamage(move, battlerAtk, battlerDef, &effectiveness, TRUE); } - + AI_DATA->simulatedDmg[battlerAtk][battlerDef][i] = dmg; AI_DATA->effectiveness[battlerAtk][battlerDef][i] = effectiveness; } @@ -334,7 +336,7 @@ static u8 ChooseMoveOrAction_Singles(void) return AI_CHOICE_WATCH; gActiveBattler = sBattler_AI; - + // If can switch. if (CountUsablePartyMons(sBattler_AI) > 0 && !IsAbilityPreventingEscape(sBattler_AI) @@ -375,7 +377,7 @@ static u8 ChooseMoveOrAction_Singles(void) } } } - + numOfBestMoves = 1; currentMoveArray[0] = AI_THINKING_STRUCT->score[0]; consideredMoveArray[0] = 0; @@ -427,7 +429,7 @@ static u8 ChooseMoveOrAction_Doubles(void) BattleAI_SetupAIData(gBattleStruct->palaceFlags >> 4); else BattleAI_SetupAIData(0xF); - + gBattlerTarget = i; if ((i & BIT_SIDE) != (sBattler_AI & BIT_SIDE)) RecordLastUsedMoveByTarget(); @@ -467,7 +469,7 @@ static u8 ChooseMoveOrAction_Doubles(void) { if (!CanTargetBattler(sBattler_AI, i, gBattleMons[sBattler_AI].moves[j])) continue; - + if (mostViableMovesScores[0] == AI_THINKING_STRUCT->score[j]) { mostViableMovesScores[mostViableMovesNo] = AI_THINKING_STRUCT->score[j]; @@ -486,7 +488,7 @@ static u8 ChooseMoveOrAction_Doubles(void) bestMovePointsForTarget[i] = mostViableMovesScores[0]; // Don't use a move against ally if it has less than 100 points. - if (i == (sBattler_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100) + if (i == BATTLE_PARTNER(sBattler_AI) && bestMovePointsForTarget[i] < 100) { bestMovePointsForTarget[i] = -1; mostViableMovesScores[0] = mostViableMovesScores[0]; // Needed to match. @@ -586,7 +588,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) bool32 isDoubleBattle = IsValidDoubleBattle(battlerAtk); u32 i; u16 predictedMove = AI_DATA->predictedMoves[battlerDef]; - + SetTypeBeforeUsingMove(move, battlerAtk); GET_MOVE_TYPE(move, moveType); @@ -594,7 +596,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) return score; GET_MOVE_TYPE(move, moveType); - + // check non-user target if (!(moveTarget & MOVE_TARGET_USER)) { @@ -604,7 +606,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { RETURN_SCORE_MINUS(20); } - + // check ground immunities if (moveType == TYPE_GROUND && !IsBattlerGrounded(battlerDef) @@ -616,11 +618,11 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { RETURN_SCORE_MINUS(20); } - + // check off screen if (IsSemiInvulnerable(battlerDef, move) && moveEffect != EFFECT_SEMI_INVULNERABLE && AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) RETURN_SCORE_MINUS(20); // if target off screen and we go first, don't use move - + // check if negates type switch (effectiveness) { @@ -632,7 +634,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) RETURN_SCORE_MINUS(10); break; } - + // target ability checks if (!DoesBattlerIgnoreAbilityChecks(AI_DATA->abilities[battlerAtk], move)) { @@ -758,7 +760,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) RETURN_SCORE_MINUS(10); break; } // def ability checks - + // target partner ability checks & not attacking partner if (isDoubleBattle) { @@ -796,35 +798,35 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } } // def partner ability checks } // ignore def ability check - + // gen7+ dark type mons immune to priority->elevated moves from prankster #if B_PRANKSTER_DARK_TYPES >= GEN_7 if (AI_DATA->abilities[battlerAtk] == ABILITY_PRANKSTER && IS_BATTLER_OF_TYPE(battlerDef, TYPE_DARK) && IS_MOVE_STATUS(move) && !(moveTarget & (MOVE_TARGET_OPPONENTS_FIELD | MOVE_TARGET_USER))) RETURN_SCORE_MINUS(10); #endif - + // terrain & effect checks if (AI_IsTerrainAffected(battlerDef, STATUS_FIELD_ELECTRIC_TERRAIN)) { if (moveEffect == EFFECT_SLEEP || moveEffect == EFFECT_YAWN) RETURN_SCORE_MINUS(20); } - + if (AI_IsTerrainAffected(battlerDef, STATUS_FIELD_MISTY_TERRAIN)) { if (IsNonVolatileStatusMoveEffect(moveEffect) || IsConfusionMoveEffect(moveEffect)) RETURN_SCORE_MINUS(20); } - + if (AI_IsTerrainAffected(battlerAtk, STATUS_FIELD_PSYCHIC_TERRAIN) && atkPriority > 0) { RETURN_SCORE_MINUS(20); } } // end check MOVE_TARGET_USER - + // the following checks apply to any target (including user) - + // throat chop check if (gDisableStructs[battlerAtk].throatChopTimer && TestMoveFlags(move, FLAG_SOUND)) return 0; // Can't even select move at all @@ -860,7 +862,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } } } - + // check move effects switch (moveEffect) { @@ -874,7 +876,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_EXPLOSION: if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_WILL_SUICIDE)) score -= 2; - + if (effectiveness == AI_EFFECTIVENESS_x0) { score -= 10; @@ -920,7 +922,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (!BattlerStatCanRise(battlerAtk, AI_DATA->abilities[battlerAtk], STAT_SPATK) || !HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) score -= 10; break; - case EFFECT_SPECIAL_DEFENSE_UP: + case EFFECT_SPECIAL_DEFENSE_UP: case EFFECT_SPECIAL_DEFENSE_UP_2: if (!BattlerStatCanRise(battlerAtk, AI_DATA->abilities[battlerAtk], STAT_SPDEF)) score -= 10; @@ -1230,7 +1232,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_LOW_KICK: // AI_CBM_HighRiskForDamage if (AI_DATA->abilities[battlerDef] == ABILITY_WONDER_GUARD && effectiveness < AI_EFFECTIVENESS_x2) - score -= 10; + score -= 10; break; case EFFECT_COUNTER: case EFFECT_MIRROR_COAT: @@ -1240,7 +1242,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) || DoesSubstituteBlockMove(battlerAtk, BATTLE_PARTNER(battlerDef), predictedMove)) score -= 10; break; - + case EFFECT_ROAR: if (CountUsablePartyMons(battlerDef) == 0) score -= 10; @@ -1273,10 +1275,10 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 10; break; case EFFECT_OHKO: - if (B_SHEER_COLD_IMMUNITY >= GEN_7 - && move == MOVE_SHEER_COLD - && IS_BATTLER_OF_TYPE(battlerDef, TYPE_ICE)) + #if B_SHEER_COLD_IMMUNITY >= GEN_7 + if (move == MOVE_SHEER_COLD && IS_BATTLER_OF_TYPE(battlerDef, TYPE_ICE)) return 0; + #endif if (!ShouldTryOHKO(battlerAtk, battlerDef, AI_DATA->abilities[battlerAtk], AI_DATA->abilities[battlerDef], move)) score -= 10; break; @@ -1304,8 +1306,10 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 8; else if (AI_DATA->hpPercents[battlerAtk] <= 25) score -= 10; - else if (B_SOUND_SUBSTITUTE >= GEN_6 && TestMoveFlagsInMoveset(battlerDef, FLAG_SOUND)) + #if B_SOUND_SUBSTITUTE >= GEN_6 + else if (TestMoveFlagsInMoveset(battlerDef, FLAG_SOUND)) score -= 8; + #endif break; case EFFECT_LEECH_SEED: if (gStatuses3[battlerDef] & STATUS3_LEECHSEED @@ -1317,8 +1321,10 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; case EFFECT_DISABLE: if (gDisableStructs[battlerDef].disableTimer == 0 - && (B_MENTAL_HERB >= GEN_5 && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB) - && !PartnerHasSameMoveEffectWithoutTarget(BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove)) + #if B_MENTAL_HERB >= GEN_5 + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB + #endif + && !PartnerHasSameMoveEffectWithoutTarget(BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove)) { if (AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) // Attacker should go first { @@ -1337,8 +1343,10 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; case EFFECT_ENCORE: if (gDisableStructs[battlerDef].encoreTimer == 0 - && (B_MENTAL_HERB >= GEN_5 && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB) - && !DoesPartnerHaveSameMoveEffect(BATTLE_PARTNER(battlerAtk), battlerDef, move, AI_DATA->partnerMove)) + #if B_MENTAL_HERB >= GEN_5 + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB + #endif + && !DoesPartnerHaveSameMoveEffect(BATTLE_PARTNER(battlerAtk), battlerDef, move, AI_DATA->partnerMove)) { if (AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) // Attacker should go first { @@ -1392,7 +1400,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_SPIKES: if (gSideTimers[GetBattlerSide(battlerDef)].spikesAmount >= 3) score -= 10; - else if (PartnerMoveIsSameNoTarget(BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove) + else if (PartnerMoveIsSameNoTarget(BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove) && gSideTimers[GetBattlerSide(battlerDef)].spikesAmount == 2) score -= 10; // only one mon needs to set up the last layer of Spikes break; @@ -1570,9 +1578,10 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 10; break; } - - if (B_MENTAL_HERB >= GEN_5 && AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_MENTAL_HERB) + #if B_MENTAL_HERB >= GEN_5 + if (AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_MENTAL_HERB) score -= 6; + #endif break; case EFFECT_WILL_O_WISP: if (!AI_CanBurn(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef], BATTLE_PARTNER(battlerAtk), move, AI_DATA->partnerMove)) @@ -1802,7 +1811,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (gBattleMons[battlerAtk].hp > (gBattleMons[battlerAtk].hp + gBattleMons[battlerDef].hp) / 2) score -= 10; break; - + case EFFECT_CONVERSION_2: //TODO break; @@ -1862,7 +1871,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } break; } // move check - + if (decreased) break; if (IsBattlerIncapacitated(battlerDef, AI_DATA->abilities[battlerDef])) @@ -1904,7 +1913,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) IncreaseAllyProtectionViability(&viability, 0xFF); }*/ } - break; + break; case EFFECT_MIRACLE_EYE: if (gStatuses3[battlerDef] & STATUS3_MIRACLE_EYED) score -= 10; @@ -1952,7 +1961,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) || ((AI_DATA->abilities[battlerDef] == ABILITY_CONTRARY) && !IsTargetingPartner(battlerAtk, battlerDef))) // don't want to raise target stats unless its your partner score -= 10; break; - + case EFFECT_PSYCH_UP: // haze stats check { for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) @@ -2116,7 +2125,7 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) u32 atkNegativeStages = CountNegativeStatStages(battlerAtk); u32 defPositiveStages = CountPositiveStatStages(battlerDef); u32 defNegativeStages = CountNegativeStatStages(battlerDef); - + if (atkPositiveStages >= defPositiveStages && atkNegativeStages <= defNegativeStages) score -= 10; break; @@ -2512,22 +2521,24 @@ static s16 AI_CheckBadMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (gBattleMons[battlerAtk].hp <= gBattleMons[battlerAtk].maxHP / 3) score -= 10; break;*/ + case EFFECT_PLACEHOLDER: + return 0; // cannot even select } // move effect checks - + if (score < 0) score = 0; - + return score; } static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) -{ +{ if (IsTargetingPartner(battlerAtk, battlerDef)) return score; - + if (gBattleMoves[move].power == 0) return score; // can't make anything faint with no power - + if (CanIndexMoveFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0) && gBattleMoves[move].effect != EFFECT_EXPLOSION) { // this move can faint the target @@ -2541,10 +2552,10 @@ static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) // this move isn't expected to faint the target if (TestMoveFlags(move, FLAG_HIGH_CRIT)) score += 2; // crit makes it more likely to make them faint - + if (GetMoveDamageResult(move) == MOVE_POWER_OTHER) score--; - + switch (AI_DATA->effectiveness[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex]) { case AI_EFFECTIVENESS_x8: @@ -2561,7 +2572,7 @@ static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; } } - + //AI_TryToFaint_CheckIfDanger if (!WillAIStrikeFirst() && CanTargetFaintAi(battlerDef, battlerAtk)) { // AI_TryToFaint_Danger @@ -2570,7 +2581,7 @@ static s16 AI_TryToFaint(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) else score++; } - + return score; } @@ -2626,8 +2637,8 @@ static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; } } // check partner move effect - - + + // consider our move effect relative to partner state switch (effect) { @@ -2648,8 +2659,8 @@ static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } break; } // our effect relative to partner - - + + // consider global move effects switch (effect) { @@ -2679,8 +2690,8 @@ static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } break; } // global move effect check - - + + // check specific target if (IsTargetingPartner(battlerAtk, battlerDef)) { @@ -2787,11 +2798,11 @@ static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { RETURN_SCORE_PLUS(1); } - break; + break; } } // ability checks } // move power check - + // attacker move effects specifically targeting partner if (!partnerProtecting) { @@ -2904,12 +2915,12 @@ static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; } // attacker move effects } // check partner protecting - + score -= 30; // otherwise, don't target partner } else // checking opponent { - // these checks mostly handled in AI_CheckBadMove and AI_CheckViability + // these checks mostly handled in AI_CheckBadMove and AI_CheckViability switch (effect) { case EFFECT_SKILL_SWAP: @@ -2934,10 +2945,10 @@ static s16 AI_DoubleBattle(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 3; break; } - + // lightning rod, flash fire against enemy handled in AI_CheckBadMove } - + return score; } @@ -2974,11 +2985,13 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) u16 predictedMove = AI_DATA->predictedMoves[battlerDef]; bool32 isDoubleBattle = IsValidDoubleBattle(battlerAtk); u32 i; - + // We only check for moves that have a 20% chance or more for their secondary effect to happen because moves with a smaller chance are rather worthless. We don't want the AI to use those. + bool32 sereneGraceBoost = (AI_DATA->abilities[battlerAtk] == ABILITY_SERENE_GRACE && (gBattleMoves[move].secondaryEffectChance >= 20 && gBattleMoves[move].secondaryEffectChance < 100)); + // Targeting partner, check benefits of doing that instead if (IsTargetingPartner(battlerAtk, battlerDef)) return score; - + // check always hits if (!IS_MOVE_STATUS(move) && gBattleMoves[move].accuracy == 0) { @@ -2987,11 +3000,11 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (AI_RandLessThan(100) && (gBattleMons[battlerDef].statStages[STAT_EVASION] >= 8 || gBattleMons[battlerAtk].statStages[STAT_ACC] <= 4)) score++; } - + // check high crit if (TestMoveFlags(move, FLAG_HIGH_CRIT) && effectiveness >= AI_EFFECTIVENESS_x2 && AI_RandLessThan(128)) score++; - + // check already dead if (!IsBattlerIncapacitated(battlerDef, AI_DATA->abilities[battlerDef]) && CanTargetFaintAi(battlerAtk, battlerDef) @@ -3002,7 +3015,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) else score--; } - + // check damage if (gBattleMoves[move].power != 0 && GetMoveDamageResult(move) == MOVE_POWER_WEAK) score--; @@ -3010,11 +3023,11 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) // check status move preference if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_PREFER_STATUS_MOVES && IS_MOVE_STATUS(move) && effectiveness != AI_EFFECTIVENESS_x0) score++; - + // check thawing moves if ((gBattleMons[battlerAtk].status1 & STATUS1_FREEZE) && TestMoveFlags(move, FLAG_THAW_USER)) score += (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) ? 20 : 10; - + // check burn if (gBattleMons[battlerAtk].status1 & STATUS1_BURN) { @@ -3033,7 +3046,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; } } - + // attacker ability checks switch (AI_DATA->abilities[battlerAtk]) { @@ -3049,8 +3062,8 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score += 8; // prioritize killing target for stat boost } break; - } // ability checks - + } // ability checks + // move effect checks switch (moveEffect) { @@ -3095,7 +3108,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; } } - + if (!AI_RandLessThan(100)) { score--; @@ -3141,7 +3154,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; } } - + if (!AI_RandLessThan(100)) { score--; @@ -3164,7 +3177,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 2; else if (AI_DATA->hpPercents[battlerAtk] <= 70) score -= 2; - else + else score++; break; case EFFECT_EVASION_UP: @@ -3294,7 +3307,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_ATTACK_SPATK_UP: // work up if (AI_DATA->hpPercents[battlerAtk] <= 40 || AI_DATA->abilities[battlerAtk] == ABILITY_CONTRARY) break; - + if (HasMoveWithSplit(battlerAtk, SPLIT_PHYSICAL)) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); else if (HasMoveWithSplit(battlerAtk, SPLIT_SPECIAL)) @@ -3350,7 +3363,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) default: break; } - + if (ShouldRecover(battlerAtk, battlerDef, move, healPercent)) score += 2; } @@ -3432,7 +3445,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score += 2; break; case EFFECT_CONFUSE_HIT: - if (AI_DATA->abilities[battlerAtk] == ABILITY_SERENE_GRACE) + if (sereneGraceBoost) score++; //fallthrough case EFFECT_CONFUSE: @@ -3451,7 +3464,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_SPECIAL_DEFENSE_DOWN_HIT: case EFFECT_ACCURACY_DOWN_HIT: case EFFECT_EVASION_DOWN_HIT: - if (AI_DATA->abilities[battlerAtk] == ABILITY_SERENE_GRACE && AI_DATA->abilities[battlerDef] != ABILITY_CONTRARY) + if (sereneGraceBoost && AI_DATA->abilities[battlerDef] != ABILITY_CONTRARY) score += 2; break; case EFFECT_SPEED_DOWN_HIT: @@ -3459,12 +3472,10 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 2; else if (!AI_RandLessThan(70)) score++; - if (AI_DATA->abilities[battlerAtk] == ABILITY_SERENE_GRACE && AI_DATA->abilities[battlerDef] != ABILITY_CONTRARY) - score++; if (ShouldLowerSpeed(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef])) { - if (AI_DATA->abilities[battlerAtk] == ABILITY_SERENE_GRACE && AI_DATA->abilities[battlerDef] != ABILITY_CONTRARY) - score += 4; + if (sereneGraceBoost && AI_DATA->abilities[battlerDef] != ABILITY_CONTRARY) + score += 5; else score += 2; } @@ -3543,7 +3554,10 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; case EFFECT_DISABLE: if (gDisableStructs[battlerDef].disableTimer == 0 - && (B_MENTAL_HERB >= GEN_5 && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB)) // mental herb + #if B_MENTAL_HERB >= GEN_5 + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB // mental herb + #endif + ) { if (AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) // AI goes first { @@ -3565,7 +3579,10 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) break; case EFFECT_ENCORE: if (gDisableStructs[battlerDef].encoreTimer == 0 - && (B_MENTAL_HERB >= GEN_5 && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB)) // mental herb + #if B_MENTAL_HERB >= GEN_5 + && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_MENTAL_HERB // mental herb + #endif + ) { if (IsEncoreEncouragedEffect(gBattleMoves[gLastMoves[battlerDef]].effect)) score += 3; @@ -3578,7 +3595,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (newHp > healthBenchmark && ShouldAbsorb(battlerAtk, battlerDef, move, AI_DATA->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex])) score += 2; } - break; + break; case EFFECT_SLEEP_TALK: case EFFECT_SNORE: if (!IsWakeupTurn(battlerAtk) && gBattleMons[battlerAtk].status1 & STATUS1_SLEEP) @@ -3595,7 +3612,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score++; break; case EFFECT_SPEED_UP_HIT: - if (AI_DATA->abilities[battlerAtk] == ABILITY_SERENE_GRACE && AI_DATA->abilities[battlerDef] != ABILITY_CONTRARY && !WillAIStrikeFirst()) + if (sereneGraceBoost && AI_DATA->abilities[battlerDef] != ABILITY_CONTRARY && !WillAIStrikeFirst()) score += 3; break; case EFFECT_DESTINY_BOND: @@ -3613,13 +3630,13 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_THIEF: { bool32 canSteal = FALSE; - - #if defined B_TRAINERS_KNOCK_OFF_ITEMS && B_TRAINERS_KNOCK_OFF_ITEMS == TRUE + + #if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE canSteal = TRUE; #endif if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER || GetBattlerSide(battlerAtk) == B_SIDE_PLAYER) canSteal = TRUE; - + if (canSteal && AI_DATA->items[battlerAtk] == ITEM_NONE && AI_DATA->items[battlerDef] != ITEM_NONE && CanBattlerGetOrLoseItem(battlerDef, AI_DATA->items[battlerDef]) @@ -3763,8 +3780,8 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (AI_DATA->abilities[battlerDef] == ABILITY_MAGIC_BOUNCE || CountUsablePartyMons(battlerDef) == 0) break; if (gDisableStructs[battlerAtk].isFirstTurn) - score += 2; - //TODO - track entire opponent party data to determine hazard effectiveness + score += 2; + //TODO - track entire opponent party data to determine hazard effectiveness break; case EFFECT_FORESIGHT: if (AI_DATA->abilities[battlerAtk] == ABILITY_SCRAPPY) @@ -3793,7 +3810,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (HasMoveEffect(battlerDef, EFFECT_MORNING_SUN) || HasMoveEffect(battlerDef, EFFECT_SYNTHESIS) || HasMoveEffect(battlerDef, EFFECT_MOONLIGHT)) - score += 2; + score += 2; } break; case EFFECT_HAIL: @@ -3802,7 +3819,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if ((HasMoveEffect(battlerAtk, EFFECT_AURORA_VEIL) || HasMoveEffect(BATTLE_PARTNER(battlerAtk), EFFECT_AURORA_VEIL)) && ShouldSetScreen(battlerAtk, battlerDef, EFFECT_AURORA_VEIL)) score += 3; - + score++; if (AI_DATA->holdEffects[battlerAtk] == HOLD_EFFECT_ICY_ROCK) score++; @@ -3839,7 +3856,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } break; case EFFECT_ATTACK_UP_HIT: - if (AI_DATA->abilities[battlerAtk] == ABILITY_SERENE_GRACE) + if (sereneGraceBoost) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); break; case EFFECT_FELL_STINGER: @@ -3861,7 +3878,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case 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) @@ -3920,7 +3937,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (HasMoveEffect(battlerAtk, EFFECT_SWALLOW) || HasMoveEffect(battlerAtk, EFFECT_SPIT_UP)) score += 2; - + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_DEF, &score); IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPDEF, &score); break; @@ -3937,20 +3954,20 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) || HasMoveEffect(battlerAtk, EFFECT_PSYCH_UP) || HasMoveEffect(battlerAtk, EFFECT_SPECTRAL_THIEF)) score++; - + if (AI_DATA->abilities[battlerDef] == ABILITY_CONTRARY) score += 2; - + IncreaseConfusionScore(battlerAtk, battlerDef, move, &score); break; case EFFECT_FLATTER: if (HasMoveEffect(battlerAtk, EFFECT_PSYCH_UP) || HasMoveEffect(battlerAtk, EFFECT_SPECTRAL_THIEF)) score += 2; - + if (AI_DATA->abilities[battlerDef] == ABILITY_CONTRARY) score += 2; - + IncreaseConfusionScore(battlerAtk, battlerDef, move, &score); break; case EFFECT_FURY_CUTTER: @@ -3991,7 +4008,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score += 3; break; } - + switch (move) { case MOVE_DEFOG: @@ -4007,7 +4024,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) && AI_WhoStrikesFirst(battlerAtk, BATTLE_PARTNER(battlerAtk), move) == AI_IS_SLOWER) // Partner going first break; // Don't use Defog if partner is going to set up hazards } - + // check defog lowering evasion if (ShouldLowerEvasion(battlerAtk, battlerDef, AI_DATA->abilities[battlerDef])) { @@ -4179,10 +4196,10 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { u16 item = GetUsedHeldItem(battlerAtk); u16 toHeal = (ItemId_GetHoldEffectParam(item) == 10) ? 10 : gBattleMons[battlerAtk].maxHP / ItemId_GetHoldEffectParam(item); - + if (IsStatBoostingBerry(item) && AI_DATA->hpPercents[battlerAtk] > 60) score++; - else if (ShouldRestoreHpBerry(battlerAtk, item) && !CanAIFaintTarget(battlerAtk, battlerDef, 0) + else if (ShouldRestoreHpBerry(battlerAtk, item) && !CanAIFaintTarget(battlerAtk, battlerDef, 0) && ((GetWhoStrikesFirst(battlerAtk, battlerDef, TRUE) == 0 && CanTargetFaintAiWithMod(battlerDef, battlerAtk, 0, 0)) || !CanTargetFaintAiWithMod(battlerDef, battlerAtk, toHeal, 0))) score++; // Recycle healing berry if we can't otherwise faint the target and the target wont kill us after we activate the berry @@ -4229,7 +4246,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { if (AI_DATA->abilities[battlerDef] != AI_DATA->abilities[battlerAtk] && !(gStatuses3[battlerDef] & STATUS3_GASTRO_ACID)) score += 2; - } + } break; case EFFECT_IMPRISON: if (predictedMove != MOVE_NONE && HasMove(battlerAtk, predictedMove)) @@ -4300,7 +4317,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) case EFFECT_SHELL_SMASH: if (AI_DATA->holdEffects[battlerAtk] == HOLD_EFFECT_RESTORE_STATS) score += 1; - + IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPEED, &score); IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); @@ -4407,7 +4424,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (gStatuses3[battlerAtk] & STATUS3_YAWN && IsBattlerGrounded(battlerAtk)) score += 10; //fallthrough - case EFFECT_GRASSY_TERRAIN: + case EFFECT_GRASSY_TERRAIN: case EFFECT_PSYCHIC_TERRAIN: score += 2; if (AI_DATA->holdEffects[battlerAtk] == HOLD_EFFECT_TERRAIN_EXTENDER) @@ -4680,7 +4697,7 @@ static s16 AI_CheckViability(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) //case EFFECT_SKY_DROP //break; } // move effect checks - + return score; } @@ -4690,15 +4707,15 @@ static s16 AI_SetupFirstTurn(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (IsTargetingPartner(battlerAtk, battlerDef) || gBattleResults.battleTurnCounter != 0) return score; - - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING + + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING && AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_SLOWER && CanTargetFaintAi(battlerDef, battlerAtk) && GetMovePriority(battlerAtk, move) == 0) { RETURN_SCORE_MINUS(20); // No point in setting up if you will faint. Should just switch if possible.. } - + // check effects to prioritize first turn switch (gBattleMoves[move].effect) { @@ -4787,7 +4804,7 @@ static s16 AI_SetupFirstTurn(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) default: break; } - + return score; } @@ -4796,10 +4813,10 @@ static s16 AI_Risky(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { if (IsTargetingPartner(battlerAtk, battlerDef)) return score; - + if (TestMoveFlags(move, FLAG_HIGH_CRIT)) score += 2; - + switch (gBattleMoves[move].effect) { case EFFECT_SLEEP: @@ -4826,7 +4843,7 @@ static s16 AI_Risky(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) default: break; } - + return score; } @@ -4835,10 +4852,10 @@ static s16 AI_PreferStrongestMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 sc { if (IsTargetingPartner(battlerAtk, battlerDef)) return score; - + if (GetMoveDamageResult(move) == MOVE_POWER_BEST) score += 2; - + return score; } @@ -4846,14 +4863,14 @@ static s16 AI_PreferStrongestMove(u8 battlerAtk, u8 battlerDef, u16 move, s16 sc static s16 AI_PreferBatonPass(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { u32 i; - + if (IsTargetingPartner(battlerAtk, battlerDef) || CountUsablePartyMons(battlerAtk) == 0 || GetMoveDamageResult(move) != MOVE_POWER_OTHER || !HasMoveEffect(battlerAtk, EFFECT_BATON_PASS) || IsBattlerTrapped(battlerAtk, TRUE)) return score; - + if (IsStatRaisingEffect(gBattleMoves[move].effect)) { if (gBattleResults.battleTurnCounter == 0) @@ -4861,9 +4878,9 @@ static s16 AI_PreferBatonPass(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) else if (AI_DATA->hpPercents[battlerAtk] < 60) score -= 10; else - score++; + score++; } - + // other specific checks switch (gBattleMoves[move].effect) { @@ -4889,12 +4906,12 @@ static s16 AI_PreferBatonPass(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) if (gStatuses3[battlerAtk] & (STATUS3_ROOTED | STATUS3_AQUA_RING)) score += 2; if (gStatuses3[battlerAtk] & STATUS3_LEECHSEED) - score -= 3; + score -= 3; break; default: break; } - + return score; } @@ -4914,11 +4931,11 @@ static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { if (gStatuses3[battlerDef] & STATUS3_HEAL_BLOCK) return 0; - + if (CanTargetFaintAi(FOE(battlerAtk), BATTLE_PARTNER(battlerAtk)) || (CanTargetFaintAi(BATTLE_PARTNER(FOE(battlerAtk)), BATTLE_PARTNER(battlerAtk)))) score--; - + if (AI_DATA->hpPercents[battlerDef] <= 50) score++; } @@ -4957,7 +4974,7 @@ static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) // med hp if (IsStatRaisingEffect(effect) || IsStatLoweringEffect(effect)) score -= 2; - + switch (effect) { case EFFECT_EXPLOSION: @@ -4980,7 +4997,7 @@ static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) // low hp if (IsStatRaisingEffect(effect) || IsStatLoweringEffect(effect)) score -= 2; - + // check other discouraged low hp effects switch (effect) { @@ -5013,7 +5030,7 @@ static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) } } } - + // consider target HP if (CanIndexMoveFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) { @@ -5085,7 +5102,7 @@ static s16 AI_HPAware(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) score -= 2; // don't use status moves if target is at low health } } - + return score; } @@ -5104,7 +5121,7 @@ static s16 AI_Roaming(u8 battlerAtk, u8 battlerDef, u16 move, s16 score) { if (IsBattlerTrapped(battlerAtk, FALSE)) return score; - + AI_Flee(); return score; } diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 13cc82824..f2a2efe55 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -154,7 +154,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) return FALSE; if (gLastLandedMoves[gActiveBattler] == MOVE_UNAVAILABLE) return FALSE; - if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) + if (IS_MOVE_STATUS(gLastLandedMoves[gActiveBattler])) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -245,8 +245,7 @@ static bool8 ShouldSwitchIfNaturalCure(void) BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_SWITCH, 0); return TRUE; } - else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 - && Random() & 1) + else if (IS_MOVE_STATUS(gLastLandedMoves[gActiveBattler]) && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_SWITCH, 0); @@ -350,7 +349,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u16 flags, u8 moduloPercent) return FALSE; if (gLastHitBy[gActiveBattler] == 0xFF) return FALSE; - if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0) + if (IS_MOVE_STATUS(gLastLandedMoves[gActiveBattler])) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -447,10 +446,10 @@ bool32 ShouldSwitch(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { battlerIn1 = gActiveBattler; - if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) battlerIn2 = gActiveBattler; else - battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK); + battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); } else { @@ -538,7 +537,7 @@ void AI_TrySwitchOrUseItem(void) else { battlerIn1 = GetBattlerAtPosition(battlerIdentity); - battlerIn2 = GetBattlerAtPosition(battlerIdentity ^ BIT_FLANK); + battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(battlerIdentity)); } GetAIPartyIndexes(gActiveBattler, &firstId, &lastId); @@ -572,7 +571,7 @@ void AI_TrySwitchOrUseItem(void) } } - BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8); + BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_USE_MOVE, BATTLE_OPPOSITE(gActiveBattler) << 8); } // If there are two(or more) mons to choose from, always choose one that has baton pass @@ -720,10 +719,10 @@ u8 GetMostSuitableMonToSwitchInto(void) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { battlerIn1 = gActiveBattler; - if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)]) + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))]) battlerIn2 = gActiveBattler; else - battlerIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK); + battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))); opposingBattler = BATTLE_OPPOSITE(battlerIn1); if (gAbsentBattlerFlags & gBitTable[opposingBattler]) @@ -731,7 +730,7 @@ u8 GetMostSuitableMonToSwitchInto(void) } else { - opposingBattler = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_SIDE); + opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler))); battlerIn1 = gActiveBattler; battlerIn2 = gActiveBattler; } diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 25c7f3b9d..75964664e 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -600,21 +600,25 @@ bool32 AtMaxHp(u8 battlerId) bool32 IsBattlerTrapped(u8 battler, bool8 checkSwitch) { u8 holdEffect = AI_DATA->holdEffects[battler]; - if ((B_GHOSTS_ESCAPE >= GEN_6 && IS_BATTLER_OF_TYPE(battler, TYPE_GHOST)) - || (checkSwitch && holdEffect == HOLD_EFFECT_SHED_SHELL) - || (!checkSwitch && GetBattlerAbility(battler) == ABILITY_RUN_AWAY) - || (!checkSwitch && holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)) - { + +#if B_GHOSTS_ESCAPE >= GEN_6 + if (IS_BATTLER_OF_TYPE(battler, TYPE_GHOST)) return FALSE; - } - else - { - if (gBattleMons[battler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED) - || IsAbilityPreventingEscape(battler) - || gStatuses3[battler] & (STATUS3_ROOTED | STATUS3_SKY_DROPPED) - || (gFieldStatuses & STATUS_FIELD_FAIRY_LOCK)) - return TRUE; - } +#endif + if (checkSwitch && holdEffect == HOLD_EFFECT_SHED_SHELL) + return FALSE; + else if (!checkSwitch && GetBattlerAbility(battler) == ABILITY_RUN_AWAY) + return FALSE; + else if (!checkSwitch && holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) + return FALSE; + else if (gBattleMons[battler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) + return TRUE; + else if (gStatuses3[battler] & (STATUS3_ROOTED | STATUS3_SKY_DROPPED)) + return TRUE; + else if (gFieldStatuses & STATUS_FIELD_FAIRY_LOCK) + return TRUE; + else if (IsAbilityPreventingEscape(battler)) + return TRUE; return FALSE; } @@ -647,9 +651,11 @@ bool32 IsTruantMonVulnerable(u32 battlerAI, u32 opposingBattler) // move checks bool32 IsAffectedByPowder(u8 battler, u16 ability, u16 holdEffect) { - if ((B_POWDER_GRASS >= GEN_6 && IS_BATTLER_OF_TYPE(battler, TYPE_GRASS)) - || ability == ABILITY_OVERCOAT - || holdEffect == HOLD_EFFECT_SAFETY_GOGGLES) + if (ability == ABILITY_OVERCOAT + #if B_POWDER_GRASS >= GEN_6 + || IS_BATTLER_OF_TYPE(battler, TYPE_GRASS) + #endif + || holdEffect == HOLD_EFFECT_SAFETY_GOGGLES) return FALSE; return TRUE; } @@ -1415,8 +1421,10 @@ bool32 IsMoveEncouragedToHit(u8 battlerAtk, u8 battlerDef, u16 move) if (AI_DATA->abilities[battlerDef] == ABILITY_NO_GUARD || AI_DATA->abilities[battlerAtk] == ABILITY_NO_GUARD) return TRUE; - if (B_TOXIC_NEVER_MISS >= GEN_6 && gBattleMoves[move].effect == EFFECT_TOXIC && IS_BATTLER_OF_TYPE(battlerAtk, TYPE_POISON)) +#if B_TOXIC_NEVER_MISS >= GEN_6 + if (gBattleMoves[move].effect == EFFECT_TOXIC && IS_BATTLER_OF_TYPE(battlerAtk, TYPE_POISON)) return TRUE; +#endif // discouraged from hitting if (AI_WeatherHasEffect() && (gBattleWeather & B_WEATHER_SUN) @@ -1426,10 +1434,12 @@ bool32 IsMoveEncouragedToHit(u8 battlerAtk, u8 battlerDef, u16 move) // increased accuracy but don't always hit if ((AI_WeatherHasEffect() && (((gBattleWeather & B_WEATHER_RAIN) && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE)) - || (((gBattleWeather & B_WEATHER_HAIL) && move == MOVE_BLIZZARD)))) - || (gBattleMoves[move].effect == EFFECT_VITAL_THROW) - || (gBattleMoves[move].accuracy == 0) - || ((B_MINIMIZE_DMG_ACC >= GEN_6) && (gStatuses3[battlerDef] & STATUS3_MINIMIZED) && (gBattleMoves[move].flags & FLAG_DMG_MINIMIZE))) + || (((gBattleWeather & B_WEATHER_HAIL) && move == MOVE_BLIZZARD)))) + || (gBattleMoves[move].effect == EFFECT_VITAL_THROW) + #if B_MINIMIZE_DMG_ACC >= GEN_6 + || ((gStatuses3[battlerDef] & STATUS3_MINIMIZED) && (gBattleMoves[move].flags & FLAG_DMG_MINIMIZE)) + #endif + || (gBattleMoves[move].accuracy == 0)) { return TRUE; } @@ -1461,10 +1471,10 @@ bool32 ShouldTryOHKO(u8 battlerAtk, u8 battlerDef, u16 atkAbility, u16 defAbilit else // test the odds { u16 odds = accuracy + (gBattleMons[battlerAtk].level - gBattleMons[battlerDef].level); - #if B_SHEER_COLD_ACC >= GEN_7 - if (gCurrentMove == MOVE_SHEER_COLD && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_ICE)) - odds -= 10; - #endif + #if B_SHEER_COLD_ACC >= GEN_7 + if (gCurrentMove == MOVE_SHEER_COLD && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_ICE)) + odds -= 10; + #endif if (Random() % 100 + 1 < odds && gBattleMons[battlerAtk].level >= gBattleMons[battlerDef].level) return TRUE; } @@ -2240,10 +2250,15 @@ static u32 GetTrapDamage(u8 battlerId) if (gBattleMons[battlerId].status2 & STATUS2_WRAPPED) { if (holdEffect == HOLD_EFFECT_BINDING_BAND) - damage = gBattleMons[battlerId].maxHP / (B_BINDING_DAMAGE >= GEN_6) ? 6 : 8; + #if B_BINDING_DAMAGE >= GEN_6 + damage = gBattleMons[battlerId].maxHP / 6; else - damage = gBattleMons[battlerId].maxHP / (B_BINDING_DAMAGE >= GEN_6) ? 8 : 16; - + damage = gBattleMons[battlerId].maxHP / 8; + #else + damage = gBattleMons[battlerId].maxHP / 8; + else + damage = gBattleMons[battlerId].maxHP / 16; + #endif if (damage == 0) damage = 1; } @@ -2462,14 +2477,22 @@ bool32 ShouldPivot(u8 battlerAtk, u8 battlerDef, u16 defAbility, u16 move, u8 mo return PIVOT; // Won't get the two turns, pivot if (!IS_MOVE_STATUS(move) && (shouldSwitch - || (AtMaxHp(battlerDef) && (AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_FOCUS_SASH - || (defAbility == ABILITY_STURDY && B_STURDY >= GEN_5) || defAbility == ABILITY_MULTISCALE || defAbility == ABILITY_SHADOW_SHIELD)))) + || (AtMaxHp(battlerDef) && (AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_FOCUS_SASH + #if B_STURDY >= GEN_5 + || defAbility == ABILITY_STURDY + #endif + || defAbility == ABILITY_MULTISCALE + || defAbility == ABILITY_SHADOW_SHIELD)))) return PIVOT; // pivot to break sash/sturdy/multiscale } else if (!hasStatBoost) { if (!IS_MOVE_STATUS(move) && (AtMaxHp(battlerDef) && (AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_FOCUS_SASH - || (defAbility == ABILITY_STURDY && B_STURDY >= GEN_5) || defAbility == ABILITY_MULTISCALE || defAbility == ABILITY_SHADOW_SHIELD))) + #if B_STURDY >= GEN_5 + || (defAbility == ABILITY_STURDY) + #endif + || defAbility == ABILITY_MULTISCALE + || defAbility == ABILITY_SHADOW_SHIELD))) return PIVOT; // pivot to break sash/sturdy/multiscale if (shouldSwitch) @@ -2608,7 +2631,7 @@ bool32 CanKnockOffItem(u8 battler, u16 item) | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE - #if defined B_TRAINERS_KNOCK_OFF_ITEMS + #if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE | BATTLE_TYPE_TRAINER #endif )) && GetBattlerSide(battler) == B_SIDE_PLAYER) @@ -3248,7 +3271,7 @@ s32 CountUsablePartyMons(u8 battlerId) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { battlerOnField1 = gBattlerPartyIndexes[battlerId]; - battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(battlerId) ^ BIT_FLANK)]; + battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(battlerId)))]; } else // In singles there's only one battlerId by side. { diff --git a/src/battle_anim.c b/src/battle_anim.c index e3885ec4e..280616014 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -927,7 +927,7 @@ static void Cmd_clearmonbg(void) if (sMonAnimTaskIdArray[0] != TASK_NONE) gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; if (animBattlerId > 1 && sMonAnimTaskIdArray[1] != TASK_NONE) - gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; + gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE; else animBattlerId = 0; @@ -1034,8 +1034,8 @@ static void Cmd_clearmonbg_static(void) if (IsBattlerSpriteVisible(battlerId)) gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; - if (animBattlerId > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) - gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; + if (animBattlerId > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId))) + gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battlerId)]].invisible = FALSE; else animBattlerId = 0; @@ -1061,7 +1061,7 @@ static void Task_ClearMonBgStatic(u8 taskId) if (IsBattlerSpriteVisible(battlerId)) ResetBattleAnimBg(toBG_2); - if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK)) + if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(BATTLE_PARTNER(battlerId))) ResetBattleAnimBg(toBG_2 ^ 1); DestroyTask(taskId); @@ -1266,10 +1266,10 @@ static void LoadDefaultBg(void) { if (IsContest()) LoadContestBgAfterMoveAnim(); - #if B_TERRAIN_BG_CHANGE == TRUE +#if B_TERRAIN_BG_CHANGE == TRUE else if (gFieldStatuses & STATUS_FIELD_TERRAIN_ANY) DrawTerrainTypeBattleBackground(); - #endif +#endif else DrawMainBattleBackground(); } diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c index 894fd866e..bd91f18d1 100644 --- a/src/battle_anim_bug.c +++ b/src/battle_anim_bug.c @@ -199,7 +199,7 @@ static void AnimMegahornHorn(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - else if (!GetBattlerSide(gBattleAnimTarget)) + else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { StartSpriteAffineAnim(sprite, 1); gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -226,7 +226,7 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; StartSpriteAffineAnim(sprite, 2); } - else if (!GetBattlerSide(gBattleAnimTarget)) + else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -297,7 +297,7 @@ static void AnimStringWrap(struct Sprite *sprite) sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; - if (!GetBattlerSide(gBattleAnimTarget)) + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->y += 8; sprite->callback = AnimStringWrap_Step; diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index becbc8fcf..75e4107e9 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -859,8 +859,8 @@ void AnimTask_InitMementoShadow(u8 taskId) if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { - MoveBattlerSpriteToBG(gBattleAnimAttacker ^ 2, toBG2 ^ 1, TRUE); - gSprites[gBattlerSpriteIds[gBattleAnimAttacker ^ 2]].invisible = FALSE; + MoveBattlerSpriteToBG(BATTLE_PARTNER(gBattleAnimAttacker), toBG2 ^ 1, TRUE); + gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].invisible = FALSE; } DestroyAnimVisualTask(taskId); diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 7348edaf5..ff9495d0e 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -71,7 +71,7 @@ static void AnimProtect_Step(struct Sprite *); static void AnimMilkBottle(struct Sprite *); static void AnimMilkBottle_Step1(struct Sprite *); static void AnimMilkBottle_Step2(struct Sprite *, int, int); -static void AnimSparkingStars(struct Sprite *); +static void AnimSparklingStars(struct Sprite *); static void AnimBubbleBurst(struct Sprite *); static void AnimBubbleBurst_Step(struct Sprite *); static void AnimSleepLetterZ(struct Sprite *); @@ -1696,7 +1696,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate = .anims = gGrantingStarsAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSparkingStars, + .callback = AnimSparklingStars, }; static const union AnimCmd sAnim_BubbleBurst[] = @@ -4290,14 +4290,14 @@ static void AnimItemSteal_Step3(struct Sprite *sprite) sprite->y2 = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); if (sprite->y2 == 0) - PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); if (moveAlongLinearPath(sprite)) { sprite->y2 = 0; sprite->data[0] = 0; sprite->callback = AnimItemSteal_Step2; - PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); } } @@ -5243,7 +5243,7 @@ void AnimGrantingStars(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -static void AnimSparkingStars(struct Sprite *sprite) +static void AnimSparklingStars(struct Sprite *sprite) { u8 battler; if (!gBattleAnimArgs[2]) @@ -5370,7 +5370,7 @@ static void AnimLockOnTarget_Step1(struct Sprite *sprite) sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); sprite->data[5] += 0x100; - PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); break; } @@ -5456,7 +5456,7 @@ static void AnimLockOnTarget_Step4(struct Sprite *sprite) sprite->data[2]++; pal = sprite->oam.paletteNum; LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4); - PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); } else if (sprite->data[1] == 0) { @@ -5918,7 +5918,7 @@ static void AnimSharpenSphere(struct Sprite *sprite) sprite->data[2] = 0; sprite->data[3] = 0; sprite->data[4] = 0; - sprite->data[5] = BattleAnimAdjustPanning(-64); + sprite->data[5] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); sprite->callback = AnimSharpenSphere_Step; } diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index b919a54c4..489c5c747 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1678,7 +1678,7 @@ static void AirCutterProjectileStep1(u8 taskId) gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId; gTasks[taskId].data[0] = gTasks[taskId].data[3]; gTasks[taskId].data[1]++; - PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-63)); + PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER + 1)); if (gTasks[taskId].data[1] > 2) gTasks[taskId].func = AirCutterProjectileStep2; } @@ -1703,7 +1703,7 @@ void AnimTask_AirCutterProjectile(u8 taskId) } else { - if ((gBattlerPositions[gBattleAnimTarget] & BIT_SIDE) == B_SIDE_PLAYER) + if (GET_BATTLER_SIDE2(gBattleAnimTarget) == B_SIDE_PLAYER) { gTasks[taskId].data[4] = 1; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -1875,7 +1875,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite) int i; u16 rand; s16 *ptr; - PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); sprite->x += sprite->x2; sprite->y += sprite->y2; sprite->y2 = 0; @@ -2521,7 +2521,7 @@ static void AnimPencil(struct Sprite *sprite) sprite->data[3] = 16; sprite->data[4] = 0; sprite->data[5] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT) + 2; - sprite->data[6] = BattleAnimAdjustPanning(63); + sprite->data[6] = BattleAnimAdjustPanning(SOUND_PAN_TARGET); sprite->callback = AnimPencil_Step; } @@ -3079,9 +3079,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId) static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) { - u8 tile; - tile = (b & 1); - tile = ((-tile | tile) >> 31) & 32; + u8 tile = (b & 1) ? 32 : 0; sprite->oam.tileNum += tile + (a << 2); sprite->oam.paletteNum = IndexOfSpritePaletteTag(sMusicNotePaletteTagsTable[b >> 1]); } @@ -3828,8 +3826,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite) if (sprite->data[4] > 3) { - int var1 = sprite->data[2]; - sprite->invisible = var1 - (((s32)(var1 + ((u32)var1 >> 31)) >> 1) << 1); + sprite->invisible = sprite->data[2] % 2; DestroyAnimSprite(sprite); } diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 0274c588e..3b9a9a8f8 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1739,7 +1739,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite) sprite->data[2]++; if (sprite->data[3] == 0) { - PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(-64)); + PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); } } } @@ -2023,7 +2023,7 @@ static void TormentAttacker_Step(u8 taskId) y = task->data[3] + task->data[5]; spriteId = CreateSprite(&gThoughtBubbleSpriteTemplate, x, y, 6 - task->data[1]); - PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); if (spriteId != MAX_SPRITES) { @@ -2200,7 +2200,7 @@ static void AnimWishStar(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->x = -16; else - sprite->x = 256; + sprite->x = DISPLAY_WIDTH + 16; sprite->y = 0; sprite->callback = AnimWishStar_Step; @@ -2229,7 +2229,7 @@ static void AnimWishStar_Step(struct Sprite *sprite) } newX = sprite->x + sprite->x2 + 32; - if (newX > 304) + if (newX > DISPLAY_WIDTH + 64) DestroyAnimSprite(sprite); } @@ -2504,7 +2504,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) gTasks[taskId].data[11] = gBattle_BG1_Y; gTasks[taskId].data[0]++; - PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); break; case 1: if (gTasks[taskId].data[4]++ > 0) @@ -2539,7 +2539,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) { gTasks[taskId].data[3] = 0; gTasks[taskId].data[0] = 1; - PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); } break; case 4: @@ -3276,7 +3276,7 @@ static void AnimReversalOrb_Step(struct Sprite *sprite) // Copies the target mon's sprite, and makes a white silhouette that shrinks away. void AnimTask_RolePlaySilhouette(u8 taskId) { - u8 isBackPic; + bool8 isBackPic; u32 personality; u32 otId; u16 species; @@ -3299,7 +3299,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - isBackPic = 0; + isBackPic = FALSE; personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) @@ -3319,7 +3319,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId) } else { - isBackPic = 1; + isBackPic = TRUE; personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) @@ -4949,7 +4949,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) if (gSprites[spriteId].y2 == 0) { - PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); gTasks[taskId].data[10] -= 0x800; gTasks[taskId].data[0]++; } @@ -4971,7 +4971,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) if (gSprites[spriteId].y2 == 0) { - PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); DestroyAnimVisualTask(taskId); } break; @@ -5008,7 +5008,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) sprite->y2 += 10; if (sprite->y2 >= 0) { - PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); sprite->y2 = 0; sprite->data[0]++; } @@ -5018,7 +5018,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) sprite->y2 = -(gSineTable[sprite->data[1]] >> 3); if (sprite->data[1] > 0x7F) { - PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); sprite->data[1] = 0; sprite->y2 = 0; sprite->data[0]++; @@ -5037,7 +5037,7 @@ static void AnimBlockX_Step(struct Sprite *sprite) case 3: if (++sprite->data[1] > 8) { - PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); sprite->data[1] = 0; sprite->data[0]++; } @@ -5201,7 +5201,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) gTasks[taskId].data[1] &= 0xFF; x = gSprites[spriteId].x + gSprites[spriteId].x2; - if ((u16)(x + 32) > 304) + if (x < -32 || x > DISPLAY_WIDTH + 32) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -5284,7 +5284,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } - if ((u16)(x + 32) > 304) + if (x < -32 || x > DISPLAY_WIDTH + 32) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -5331,7 +5331,7 @@ static void AnimUnusedItemBagSteal(struct Sprite *sprite) case 0: if (gBattleAnimArgs[7] == -1) { - PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(63)); + PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16; sprite->data[0] = -32; sprite->data[7]++; diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index b4a950310..aee824b39 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -676,7 +676,7 @@ void AnimZapCannonSpark(struct Sprite *sprite) sprite->data[7] = gBattleAnimArgs[4]; sprite->oam.tileNum += gBattleAnimArgs[6] * 4; sprite->callback = AnimZapCannonSpark_Step; - AnimZapCannonSpark_Step(sprite); + sprite->callback(sprite); } static void AnimZapCannonSpark_Step(struct Sprite *sprite) @@ -1262,7 +1262,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) task->data[4] = 7; task->data[5] = -1; task->data[11] = 12; - task->data[12] = BattleAnimAdjustPanning(task->data[11] - 76); + task->data[12] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); task->data[13] = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[14] = task->data[12]; task->data[15] = (task->data[13] - task->data[12]) / 3; diff --git a/src/battle_anim_fight.c b/src/battle_anim_fight.c index ca1a04402..9ffe2d3c2 100644 --- a/src/battle_anim_fight.c +++ b/src/battle_anim_fight.c @@ -564,7 +564,7 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) if (Random2() & 1) y *= -1; - if ((gBattlerPositions[battler] & BIT_SIDE) == B_SIDE_PLAYER) + if (GET_BATTLER_SIDE2(battler) == B_SIDE_PLAYER) y += 0xFFF0; sprite->x += x; @@ -572,7 +572,7 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[1]; sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1); - if (sprite->data[7] != 64) + if (sprite->data[7] != MAX_SPRITES) { StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0); gSprites[sprite->data[7]].callback = SpriteCallbackDummy; @@ -585,7 +585,7 @@ static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite) { if (sprite->data[0] == 0) { - if (sprite->data[7] != 64) + if (sprite->data[7] != MAX_SPRITES) { FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum); DestroySprite(&gSprites[sprite->data[7]]); diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index bfbc0a697..bc411f6e5 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -1008,7 +1008,7 @@ static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 activeSpritesId u16 y = GetEruptionLaunchRockInitialYPos(spriteId); u16 x = gSprites[spriteId].x; - if(!GetBattlerSide(gBattleAnimAttacker)) + if(GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { x -= 12; sign = 1; @@ -1309,8 +1309,8 @@ void AnimTask_MoveHeatWaveTargets(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1; - task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1; + task->data[12] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1; + task->data[13] = IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget)) + 1; task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET); task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index fb5f2a1bf..59d012f9a 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -524,8 +524,8 @@ void AnimFlyBallAttack_Step(struct Sprite *sprite) } if (sprite->x + sprite->x2 < -32 - || sprite->x + sprite->x2 > DISPLAY_WIDTH + 32 - || sprite->y + sprite->y2 > DISPLAY_HEIGHT) + || sprite->x + sprite->x2 > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT) { gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = sprite->data[5]; DestroyAnimSprite(sprite); @@ -906,8 +906,8 @@ static void AnimWhirlwindLine(struct Sprite * sprite) else InitSpritePosToAnimTarget(sprite, FALSE); - if ((gBattleAnimArgs[2] == ANIM_ATTACKER && !GetBattlerSide(gBattleAnimAttacker)) - || (gBattleAnimArgs[2] == ANIM_TARGET && !GetBattlerSide(gBattleAnimTarget))) + if ((gBattleAnimArgs[2] == ANIM_ATTACKER && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + || (gBattleAnimArgs[2] == ANIM_TARGET && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)) { sprite->x += 8; } @@ -1211,8 +1211,8 @@ void AnimSkyAttackBird_Step(struct Sprite *sprite) sprite->x = sprite->data[4] >> 4; sprite->y = sprite->data[5] >> 4; - if (sprite->x > 285 || sprite->x < -45 - || sprite->y > 157 || sprite->y < -45) + if (sprite->x > DISPLAY_WIDTH + 45 || sprite->x < -45 + || sprite->y > 157 || sprite->y < -45) DestroySpriteAndMatrix(sprite); } diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index f14b35ccb..81cc6760c 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -880,7 +880,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++) { if (battler != gBattleAnimAttacker - && battler != (gBattleAnimAttacker ^ 2) + && battler != BATTLE_PARTNER(gBattleAnimAttacker) && IsBattlerSpriteVisible(battler)) { if (gAnimMoveIndex == MOVE_DARK_VOID diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c index e4a7805a8..e3b4e59d1 100644 --- a/src/battle_anim_ice.c +++ b/src/battle_anim_ice.c @@ -41,7 +41,7 @@ static void AnimThrowIceBall(struct Sprite *); static void InitIceBallParticle(struct Sprite *); static void AnimIceBallParticle(struct Sprite *); static void AnimTask_HazeScrollingFog_Step(u8); -static void AnimTask_LoadMistTiles_Step(u8); +static void AnimTask_MistBallFog_Step(u8); static void AnimTask_Hail2(u8); static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c); static void AvalancheAnim_Step(struct Sprite *sprite); @@ -351,7 +351,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate = .callback = AnimThrowMistBall, }; -static const u8 wMistBlendAmounts[] = +static const u8 sMistBlendAmounts[] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; @@ -779,7 +779,8 @@ static void AnimSwirlingSnowball(struct Sprite *sprite) sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) break; @@ -845,7 +846,8 @@ static void AnimSwirlingSnowball_End(struct Sprite *sprite) sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + if (sprite->x + sprite->x2 > 256 + || sprite->x + sprite->x2 < -16 || sprite->y + sprite->y2 > 256 || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); @@ -899,7 +901,8 @@ void AnimMoveParticleBeyondTarget(struct Sprite *sprite) { sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) break; @@ -929,7 +932,8 @@ static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite) sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; if (sprite->data[0] == 1) { - if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); @@ -1169,7 +1173,7 @@ void AnimThrowMistBall(struct Sprite *sprite) } // Displays misty background in Mist Ball. -void AnimTask_LoadMistTiles(u8 taskId) +void AnimTask_MistBallFog(u8 taskId) { struct BattleAnimBgData animBg; @@ -1192,10 +1196,10 @@ void AnimTask_LoadMistTiles(u8 taskId) LoadPalette(&gFogPalette, animBg.paletteId * 16, 32); gTasks[taskId].data[15] = -1; - gTasks[taskId].func = AnimTask_LoadMistTiles_Step; + gTasks[taskId].func = AnimTask_MistBallFog_Step; } -static void AnimTask_LoadMistTiles_Step(u8 taskId) +static void AnimTask_MistBallFog_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -1206,7 +1210,7 @@ static void AnimTask_LoadMistTiles_Step(u8 taskId) { case 0: gTasks[taskId].data[9] += 1; - gTasks[taskId].data[11] = wMistBlendAmounts[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sMistBlendAmounts[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 5) { @@ -1272,12 +1276,12 @@ static void InitPoisonGasCloudAnim(struct Sprite *sprite) if (GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) < GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2)) sprite->data[7] = 0x8000; - if ((gBattlerPositions[gBattleAnimTarget] & BIT_SIDE) == B_SIDE_PLAYER) + if (GET_BATTLER_SIDE2(gBattleAnimTarget) == B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; - if ((sprite->data[7] & 0x8000) && (gBattlerPositions[gBattleAnimAttacker] & BIT_SIDE) == B_SIDE_PLAYER) + if ((sprite->data[7] & 0x8000) && GET_BATTLER_SIDE2(gBattleAnimAttacker) == B_SIDE_PLAYER) sprite->subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; sprite->data[6] = 1; @@ -1493,14 +1497,14 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, } else { - battlerX = (sHailCoordData[hailStructId].x); - battlerY = (sHailCoordData[hailStructId].y); + battlerX = sHailCoordData[hailStructId].x; + battlerY = sHailCoordData[hailStructId].y; } } else { - battlerX = (sHailCoordData[hailStructId].x); - battlerY = (sHailCoordData[hailStructId].y); + battlerX = sHailCoordData[hailStructId].x; + battlerY = sHailCoordData[hailStructId].y; } spriteX = battlerX - ((battlerY + 8) / 2); id = CreateSprite(&gHailParticleSpriteTemplate, spriteX, -8, 18); @@ -1537,7 +1541,7 @@ static void AnimHailBegin(struct Sprite *sprite) sprite->data[3], sprite->data[4], sprite->subpriority); sprite->data[0] = spriteId; - if (spriteId != 64) + if (spriteId != MAX_SPRITES) { gSprites[sprite->data[0]].callback = AnimHailContinue; gSprites[sprite->data[0]].data[6] = sprite->data[6]; diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index ba4ede017..aa8e4e2ac 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -5,7 +5,6 @@ #include "task.h" #include "trig.h" -// This file's functions. static void AnimTask_ShakeMon_Step(u8 taskId); static void AnimTask_ShakeMon2_Step(u8 taskId); static void AnimTask_ShakeMonInPlace_Step(u8 taskId); @@ -109,7 +108,7 @@ void AnimTask_ShakeMon(u8 taskId) gTasks[taskId].data[4] = gBattleAnimArgs[1]; gTasks[taskId].data[5] = gBattleAnimArgs[2]; gTasks[taskId].func = AnimTask_ShakeMon_Step; - AnimTask_ShakeMon_Step(taskId); + gTasks[taskId].func(taskId); } static void AnimTask_ShakeMon_Step(u8 taskId) @@ -157,17 +156,14 @@ static void AnimTask_ShakeMon_Step(u8 taskId) void AnimTask_ShakeMon2(u8 taskId) { u8 spriteId; - bool8 destroy = FALSE; + bool8 abort = FALSE; u8 battlerId; if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT) { spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (spriteId == SPRITE_NONE) - { - DestroyAnimVisualTask(taskId); - return; - } + abort = TRUE; } else if (gBattleAnimArgs[0] != 8) { @@ -189,7 +185,7 @@ void AnimTask_ShakeMon2(u8 taskId) } if (IsBattlerSpriteVisible(battlerId) == FALSE) - destroy = TRUE; + abort = TRUE; spriteId = gBattlerSpriteIds[battlerId]; } @@ -198,7 +194,7 @@ void AnimTask_ShakeMon2(u8 taskId) spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; } - if (destroy) + if (abort) { DestroyAnimVisualTask(taskId); return; @@ -340,10 +336,8 @@ void AnimTask_ShakeAndSinkMon(u8 taskId) static void AnimTask_ShakeAndSinkMon_Step(u8 taskId) { - s16 x; - u8 spriteId; - spriteId = gTasks[taskId].data[0]; - x = gTasks[taskId].data[1]; + u8 spriteId = gTasks[taskId].data[0]; + s16 x = gTasks[taskId].data[1]; if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) { gTasks[taskId].data[8] = 0; @@ -373,11 +367,8 @@ static void AnimTask_ShakeAndSinkMon_Step(u8 taskId) void AnimTask_TranslateMonElliptical(u8 taskId) { u8 i; - u8 spriteId; - u8 wavePeriod; - - wavePeriod = 1; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + u8 wavePeriod = 1; + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); if (gBattleAnimArgs[4] > 5) gBattleAnimArgs[4] = 5; @@ -750,7 +741,7 @@ static void AnimTask_SlideOffScreen_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gSprites[spriteId].x2 += gTasks[taskId].data[1]; - if (gSprites[spriteId].x2 + gSprites[spriteId].x + 0x20 > 0x130u) + if (gSprites[spriteId].x2 + gSprites[spriteId].x < -32 || gSprites[spriteId].x2 + gSprites[spriteId].x > DISPLAY_WIDTH + 32) { DestroyAnimVisualTask(taskId); return; @@ -844,8 +835,7 @@ static void AnimTask_SwayMonStep(u8 taskId) // arg 4: sprite object mode void AnimTask_ScaleMonAndRestore(u8 taskId) { - u8 spriteId; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]); + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]); PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]); gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = gBattleAnimArgs[1]; @@ -906,13 +896,13 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId) } else { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) { - gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimAttacker); + gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER; } else { - gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimTarget); + gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER; } } if (gTasks[taskId].data[7]) @@ -929,8 +919,7 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId) // Rotates mon to side and back to original position. For Peck and when a held item activates void AnimTask_RotateMonToSideAndRestore(u8 taskId) { - u8 spriteId; - spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); + u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = gBattleAnimArgs[0]; diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 21a3ed902..104c77885 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" +#include "battle_interface.h" #include "bg.h" #include "contest.h" #include "data.h" @@ -89,7 +90,7 @@ static const u8 sCastformBackSpriteYCoords[NUM_CASTFORM_FORMS] = #define TAG_MOVE_EFFECT_MON_1 55125 #define TAG_MOVE_EFFECT_MON_2 55126 -static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] = +static const struct SpriteTemplate sSpriteTemplates_MoveEffectMons[] = { { .tileTag = TAG_MOVE_EFFECT_MON_1, @@ -111,7 +112,7 @@ static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] = } }; -static const struct SpriteSheet sSpriteSheet_MoveEffectMons[] = +static const struct SpriteSheet sSpriteSheets_MoveEffectMons[] = { { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_1, }, { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2, }, @@ -134,10 +135,10 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) { case BATTLER_COORD_X: case BATTLER_COORD_X_2: - retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].x; + retVal = sBattlerCoords[WhichBattleCoords(battlerId)][GetBattlerPosition(battlerId)].x; break; case BATTLER_COORD_Y: - retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y; + retVal = sBattlerCoords[WhichBattleCoords(battlerId)][GetBattlerPosition(battlerId)].y; break; case BATTLER_COORD_Y_PIC_OFFSET: case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT: @@ -278,7 +279,7 @@ u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3) offset = GetBattlerYDelta(battlerId, species); offset -= GetBattlerElevation(battlerId, species); } - y = offset + sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y; + y = offset + sBattlerCoords[WhichBattleCoords(battlerId)][GetBattlerPosition(battlerId)].y; if (a3) { if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) @@ -438,7 +439,7 @@ void SetCallbackToStoredInData6(struct Sprite *sprite) #define sAmplitudeX sAmplitude #define sAmplitudeY data[4] -// TranslateSpriteInWavePattern +// TranslateSpriteInLissajousCurve #define sCirclePosX sCirclePos #define sCircleSpeedX sCircleSpeed #define sCirclePosY data[4] @@ -485,7 +486,7 @@ void TranslateSpriteInGrowingCircle(struct Sprite *sprite) // Unused // Exact shape depends on arguments. Can move in a figure-8-like pattern, or circular, etc. -static void TranslateSpriteInWavePattern(struct Sprite *sprite) +static void TranslateSpriteInLissajousCurve(struct Sprite *sprite) { if (sprite->sDuration) { @@ -493,7 +494,7 @@ static void TranslateSpriteInWavePattern(struct Sprite *sprite) sprite->y2 = Cos(sprite->sCirclePosY, sprite->sAmplitude); sprite->sCirclePosX += sprite->sCircleSpeedX; sprite->sCirclePosY += sprite->sCircleSpeedY; - + if (sprite->sCirclePosX >= 0x100) sprite->sCirclePosX -= 0x100; else if (sprite->sCirclePosX < 0) @@ -895,7 +896,7 @@ u8 GetBattlerSide(u8 battlerId) u8 GetBattlerPosition(u8 battlerId) { - return GET_BATTLER_POSITION(battlerId); + return gBattlerPositions[battlerId]; } u8 GetBattlerAtPosition(u8 position) @@ -1548,13 +1549,13 @@ u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLef return selectedPalettes; } -// Presumably something commented here, just returns arg -u8 AnimDummyReturnArg(u8 battler) +u8 GetSpritePalIdxByBattler(u8 battler) { return battler; } -static u8 GetBattlerAtPosition_(u8 position) +// Unused +static u8 GetSpritePalIdxByPosition(u8 position) { return GetBattlerAtPosition(position); } @@ -1596,20 +1597,20 @@ void AnimSpriteOnMonPos(struct Sprite *sprite) // arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) { - bool8 v1; + bool8 respectMonPicOffsets; u8 coordType; if (!(gBattleAnimArgs[5] & 0xff00)) - v1 = TRUE; + respectMonPicOffsets = TRUE; else - v1 = FALSE; + respectMonPicOffsets = FALSE; if (!(gBattleAnimArgs[5] & 0xff)) coordType = BATTLER_COORD_Y_PIC_OFFSET; else coordType = BATTLER_COORD_Y; - InitSpritePosToAnimAttacker(sprite, v1); + InitSpritePosToAnimAttacker(sprite, respectMonPicOffsets); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; @@ -2141,16 +2142,15 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId) u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId) { u8 spriteId; - u16 sheet = LoadSpriteSheet(&sSpriteSheet_MoveEffectMons[id]); - u16 palette = AllocSpritePalette(sSpriteTemplate_MoveEffectMons[id].paletteTag); + u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[id]); + u16 palette = AllocSpritePalette(sSpriteTemplates_MoveEffectMons[id].paletteTag); if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL) gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); if (!isBackpic) { LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); - LoadSpecialPokePic(&gMonFrontPicTable[species], - gMonSpritesGfxPtr->buffer, + LoadSpecialPokePic(gMonSpritesGfxPtr->buffer, species, personality, TRUE); @@ -2158,8 +2158,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 else { LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20); - LoadSpecialPokePic(&gMonBackPicTable[species], - gMonSpritesGfxPtr->buffer, + LoadSpecialPokePic(gMonSpritesGfxPtr->buffer, species, personality, FALSE); @@ -2169,9 +2168,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); if (!isBackpic) - spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority); else - spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority); if (IsContest()) { @@ -2445,7 +2444,7 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId) dest = (task->tPaletteNum + 16) * 16; src = (gSprites[task->tBattlerSpriteId].oam.paletteNum + 0x10) * 0x10; - + // Set trace's priority based on battler's subpriority task->tPriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); if (task->tPriority == 20 || task->tPriority == 40) @@ -2535,7 +2534,7 @@ void AnimWeatherBallUp(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - if (!GetBattlerSide(gBattleAnimAttacker)) + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) sprite->data[0] = 5; else sprite->data[0] = -10; @@ -2561,7 +2560,7 @@ void AnimWeatherBallDown(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = sprite->x + gBattleAnimArgs[4]; sprite->data[4] = sprite->y + gBattleAnimArgs[5]; - if (!GetBattlerSide(gBattleAnimTarget)) + if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { x = (u16)gBattleAnimArgs[4] + 30; sprite->x += x; diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index b8304f124..0a3d433b4 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -18,6 +18,7 @@ #include "constants/moves.h" #include "constants/hold_effects.h" #include "constants/items.h" +#include "constants/pokemon.h" // function declarations static void SpriteCB_SpriteToCentreOfSide(struct Sprite *sprite); @@ -6522,7 +6523,7 @@ const struct SpriteTemplate gSoulStealZStarSpriteTemplate = //general void AnimTask_IsTargetPartner(u8 taskId) { - if (gBattleAnimTarget == (gBattleAnimAttacker ^ BIT_FLANK)) + if (gBattleAnimTarget == BATTLE_PARTNER(gBattleAnimAttacker)) gBattleAnimArgs[0] = 1; else gBattleAnimArgs[0] = 0; @@ -7892,3 +7893,12 @@ void AnimTask_TerrainPulse(u8 taskId) } DestroyAnimVisualTask(taskId); } + +void AnimTask_AffectionHangedOn(u8 taskId) +{ + int side = GetBattlerSide(gBattleAnimTarget); + struct Pokemon *party = (side == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty; + + gBattleAnimArgs[0] = GetMonFriendshipScore(&party[gBattlerPartyIndexes[gBattleAnimTarget]]); + DestroyAnimVisualTask(taskId); +} diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 51b535af9..2ec5b2600 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -687,7 +687,7 @@ static void AnimDefensiveWall_Step5(struct Sprite *sprite) if (IsBattlerSpriteVisible(battler)) ResetBattleAnimBg(toBG2); - battler = battlerCopy ^ 2; + battler = BATTLE_PARTNER(battlerCopy); if (IsBattlerSpriteVisible(battler)) ResetBattleAnimBg(toBG2 ^ var0); } @@ -935,7 +935,7 @@ static void AnimTask_ImprisonOrbs_Step(u8 taskId) { for (i = 8; i < 13; i++) { - if (task->data[i] != 64) + if (task->data[i] != MAX_SPRITES) DestroySprite(&gSprites[task->data[i]]); } @@ -1035,7 +1035,7 @@ static void AnimTask_SkillSwap_Step(u8 taskId) { task->data[1] = 0; spriteId = CreateSprite(&gSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0); - if (spriteId != 64) + if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = 16; gSprites[spriteId].data[2] = task->data[13]; @@ -1114,12 +1114,10 @@ void AnimTask_ExtrasensoryDistortion(u8 taskId) scanlineParams.dmaDest = ®_BG2HOFS; } - i = task->data[14]; - while (i <= task->data[14] + 64) + for (i = task->data[14]; i <= task->data[14] + 64; i++) { gScanlineEffectRegBuffers[0][i] = task->data[10]; gScanlineEffectRegBuffers[1][i] = task->data[10]; - i++; } scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; @@ -1254,7 +1252,7 @@ void AnimPsychoBoost(struct Sprite *sprite) case 1: if (sprite->affineAnimEnded) { - PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(-64)); + PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); ChangeSpriteAffineAnim(sprite, 1); sprite->data[0]++; } diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index d3ae318df..e1a90b194 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -692,8 +692,8 @@ void AnimTask_Rollout(u8 taskId) task->data[6] = 0; task->data[7] = 0; - pan1 = BattleAnimAdjustPanning(-64); - pan2 = BattleAnimAdjustPanning(63); + pan1 = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); + pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[13] = pan1; task->data[14] = (pan2 - pan1) / task->data[8]; diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 8f47864b1..d96a4cea4 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -104,7 +104,7 @@ void SoundTask_LoopSEAdjustPanning(u8 taskId) gTasks[taskId].data[12] = r9; gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step; - SoundTask_LoopSEAdjustPanning_Step(taskId); + gTasks[taskId].func(taskId); } static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId) @@ -389,7 +389,7 @@ void SoundTask_AdjustPanningVar(u8 taskId) gTasks[taskId].data[11] = sourcePan; gTasks[taskId].func = SoundTask_AdjustPanningVar_Step; - SoundTask_AdjustPanningVar_Step(taskId); + gTasks[taskId].func(taskId); } static void SoundTask_AdjustPanningVar_Step(u8 taskId) diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index 9226a9dab..e3e8f9ac1 100755 --- a/src/battle_anim_throw.c +++ b/src/battle_anim_throw.c @@ -768,8 +768,8 @@ static void LoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battl healthBoxSpriteId = gHealthboxSpriteIds[battler]; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId2 = gSprites[healthBoxSpriteId].data[5]; - *paletteId1 = AllocSpritePalette(0xD709); - *paletteId2 = AllocSpritePalette(0xD70A); + *paletteId1 = AllocSpritePalette(TAG_HEALTHBOX_PALS_1); + *paletteId2 = AllocSpritePalette(TAG_HEALTHBOX_PALS_2); offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100; offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100; @@ -798,10 +798,10 @@ static void FreeHealthboxPalsForLevelUp(u8 battler) spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId2 = gSprites[healthBoxSpriteId].data[5]; - FreeSpritePaletteByTag(0xD709); - FreeSpritePaletteByTag(0xD70A); - paletteId1 = IndexOfSpritePaletteTag(0xD6FF); - paletteId2 = IndexOfSpritePaletteTag(0xD704); + FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_1); + FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_2); + paletteId1 = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PAL); + paletteId2 = IndexOfSpritePaletteTag(TAG_HEALTHBAR_PAL); gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1; gSprites[spriteId1].oam.paletteNum = paletteId1; gSprites[spriteId2].oam.paletteNum = paletteId2; @@ -829,7 +829,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId) if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11]) { gTasks[taskId].data[0] = 0; - paletteNum = IndexOfSpritePaletteTag(0xD709); + paletteNum = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PALS_1); colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2; switch (gTasks[taskId].data[1]) { diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 1462807a3..096912c3b 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -97,7 +97,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId) for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++) { if (battler != animBattlers[0] && battler != animBattlers[1] && IsBattlerSpriteVisible(battler)) - selectedPalettes |= 0x10000 << AnimDummyReturnArg(battler); + selectedPalettes |= 0x10000 << GetSpritePalIdxByBattler(battler); } StartBlendAnimSpriteColor(taskId, selectedPalettes); @@ -536,9 +536,9 @@ static void StatsChangeAnimation_Step2(u8 taskId) gTasks[taskId].func = StatsChangeAnimation_Step3; if (sAnimStatsChangeData->data[0] == 0) - PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64)); + PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER)); else - PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64)); + PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER)); } static void StatsChangeAnimation_Step3(u8 taskId) diff --git a/src/battle_arena.c b/src/battle_arena.c index e0a2c5e74..82f6a47d0 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -38,9 +38,9 @@ static void BufferArenaOpponentName(void); static void SpriteCB_JudgmentIcon(struct Sprite *sprite); static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler); -#define JUDGEMENT_STATE_FINISHED 8 +#define JUDGMENT_STATE_FINISHED 8 -#define TAG_JUDGEMENT_ICON 1000 +#define TAG_JUDGMENT_ICON 1000 enum { ANIM_ICON_X, // Player lost @@ -275,7 +275,7 @@ static const s8 sMindRatings[MOVES_COUNT] = [MOVE_PSYCHO_BOOST] = 1, }; -static const struct OamData sOam_JudgementIcon = +static const struct OamData sOam_JudgmentIcon = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, @@ -292,52 +292,52 @@ static const struct OamData sOam_JudgementIcon = .affineParam = 0 }; -static const union AnimCmd sAnim_JudgementIcon_X[] = +static const union AnimCmd sAnim_JudgmentIcon_X[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd sAnim_JudgementIcon_Triangle[] = +static const union AnimCmd sAnim_JudgmentIcon_Triangle[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END }; -static const union AnimCmd sAnim_JudgementIcon_Circle[] = +static const union AnimCmd sAnim_JudgmentIcon_Circle[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END }; -static const union AnimCmd sAnim_JudgementIcon_Line[] = +static const union AnimCmd sAnim_JudgmentIcon_Line[] = { ANIMCMD_FRAME(12, 1), ANIMCMD_END }; -static const union AnimCmd *const sAnims_JudgementIcon[] = +static const union AnimCmd *const sAnims_JudgmentIcon[] = { - [ANIM_ICON_X] = sAnim_JudgementIcon_X, - [ANIM_ICON_TRIANGLE] = sAnim_JudgementIcon_Triangle, - [ANIM_ICON_CIRCLE] = sAnim_JudgementIcon_Circle, - [ANIM_ICON_LINE] = sAnim_JudgementIcon_Line, + [ANIM_ICON_X] = sAnim_JudgmentIcon_X, + [ANIM_ICON_TRIANGLE] = sAnim_JudgmentIcon_Triangle, + [ANIM_ICON_CIRCLE] = sAnim_JudgmentIcon_Circle, + [ANIM_ICON_LINE] = sAnim_JudgmentIcon_Line, }; static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon = { - .tileTag = TAG_JUDGEMENT_ICON, + .tileTag = TAG_JUDGMENT_ICON, .paletteTag = TAG_NONE, - .oam = &sOam_JudgementIcon, - .anims = sAnims_JudgementIcon, + .oam = &sOam_JudgmentIcon, + .anims = sAnims_JudgmentIcon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_JudgmentIcon, }; -static const struct CompressedSpriteSheet sBattleArenaJudgementSymbolsSpriteSheet[] = +static const struct CompressedSpriteSheet sBattleArenaJudgmentSymbolsSpriteSheet[] = { - {gBattleArenaJudgementSymbolsGfx, 0x200, TAG_JUDGEMENT_ICON}, + {gBattleArenaJudgmentSymbolsGfx, 0x200, TAG_JUDGMENT_ICON}, {0} }; @@ -389,8 +389,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) case 0: BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK); SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL); - LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet); - LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20); + LoadCompressedSpriteSheet(sBattleArenaJudgmentSymbolsSpriteSheet); + LoadCompressedPalette(gBattleArenaJudgmentSymbolsPalette, 0x1F0, 0x20); gBattle_WIN0H = 0xFF; gBattle_WIN0V = 0x70; (*state)++; @@ -417,8 +417,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) BattlePutTextOnWindow(gText_Mind, ARENA_WIN_MIND); BattlePutTextOnWindow(gText_Skill, ARENA_WIN_SKILL); BattlePutTextOnWindow(gText_Body, ARENA_WIN_BODY); - BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); - BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); + BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment); + BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE); (*state)++; } break; @@ -441,8 +441,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 40, ARENA_CATEGORY_MIND, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 40, ARENA_CATEGORY_MIND, B_POSITION_OPPONENT_LEFT); - BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); - BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); + BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment); + BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE); (*state)++; result = ARENA_RESULT_STEP_DONE; break; @@ -450,8 +450,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 56, ARENA_CATEGORY_SKILL, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 56, ARENA_CATEGORY_SKILL, B_POSITION_OPPONENT_LEFT); - BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); - BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); + BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment); + BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE); (*state)++; result = ARENA_RESULT_STEP_DONE; break; @@ -459,8 +459,8 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) PlaySE(SE_ARENA_TIMEUP1); ShowJudgmentSprite(80, 72, ARENA_CATEGORY_BODY, B_POSITION_PLAYER_LEFT); ShowJudgmentSprite(160, 72, ARENA_CATEGORY_BODY, B_POSITION_OPPONENT_LEFT); - BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); - BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); + BattleStringExpandPlaceholdersToDisplayedString(gText_Judgment); + BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TITLE); (*state)++; result = ARENA_RESULT_STEP_DONE; break; @@ -482,11 +482,11 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) } (*state)++; break; - case JUDGEMENT_STATE_FINISHED: - // Finishing this state is the indicator to SpriteCB_JudgmentIcon that its safe to destroy the judgement icon sprites + case JUDGMENT_STATE_FINISHED: + // Finishing this state is the indicator to SpriteCB_JudgmentIcon that its safe to destroy the judgment icon sprites (*state)++; break; - case JUDGEMENT_STATE_FINISHED + 1: + case JUDGMENT_STATE_FINISHED + 1: SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL); HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR); CopyBgTilemapBufferToVram(0); @@ -494,11 +494,11 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state) BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK); (*state)++; break; - case JUDGEMENT_STATE_FINISHED + 2: + case JUDGMENT_STATE_FINISHED + 2: if (!gPaletteFade.active) { SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL); - FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON); + FreeSpriteTilesByTag(TAG_JUDGMENT_ICON); result = ARENA_RESULT_STEP_DONE; (*state)++; } @@ -562,7 +562,7 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler) static void SpriteCB_JudgmentIcon(struct Sprite *sprite) { - if (gBattleCommunication[0] > JUDGEMENT_STATE_FINISHED) + if (gBattleCommunication[0] > JUDGMENT_STATE_FINISHED) DestroySprite(sprite); } diff --git a/src/battle_bg.c b/src/battle_bg.c index 3965be2ea..5ea08c97c 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -575,7 +575,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .paletteNum = 5, .baseBlock = 0x013c, }, - [ARENA_WIN_JUDGEMENT_TITLE] = { + [ARENA_WIN_JUDGMENT_TITLE] = { .bg = 0, .tilemapLeft = 8, .tilemapTop = 11, @@ -584,7 +584,7 @@ static const struct WindowTemplate sBattleArenaWindowTemplates[] = .paletteNum = 5, .baseBlock = 0x0148, }, - [ARENA_WIN_JUDGEMENT_TEXT] = { + [ARENA_WIN_JUDGMENT_TEXT] = { .bg = 0, .tilemapLeft = 2, .tilemapTop = 15, @@ -870,11 +870,11 @@ void LoadBattleTextboxAndBackground(void) CopyBgTilemapBufferToVram(0); LoadCompressedPalette(gBattleTextboxPalette, 0, 0x40); LoadBattleMenuWindowGfx(); - #if B_TERRAIN_BG_CHANGE == TRUE - DrawTerrainTypeBattleBackground(); - #else - DrawMainBattleBackground(); - #endif +#if B_TERRAIN_BG_CHANGE == TRUE + DrawTerrainTypeBattleBackground(); +#else + DrawMainBattleBackground(); +#endif } static void DrawLinkBattleParticipantPokeballs(u8 taskId, u8 multiplayerId, u8 bgId, u8 destX, u8 destY) diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 833925550..0b2bab9e6 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -370,16 +370,13 @@ static void TryShinyAnimAfterMonAnim(void) { TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); } - else + else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) - { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); - FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); - LinkOpponentBufferExecCompleted(); - } + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); + FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); + LinkOpponentBufferExecCompleted(); } } } @@ -392,7 +389,7 @@ static void CompleteOnHealthbarDone(void) if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else { @@ -1752,14 +1749,14 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void) if (gBattleResources->bufferA[gActiveBattler][2] != 0) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++; return; } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0; } } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 6a0ecb297..da1599a90 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -219,7 +219,7 @@ static void Intro_WaitForHealthbox(void) else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { finished = TRUE; } @@ -238,7 +238,7 @@ static void Intro_WaitForHealthbox(void) static void Intro_ShowHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive && gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) @@ -247,10 +247,10 @@ static void Intro_ShowHealthbox(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); @@ -278,7 +278,7 @@ static void CompleteOnHealthbarDone(void) if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else { diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index a503c1c7a..5e21232d9 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -226,7 +226,7 @@ static void Intro_DelayAndEnd(void) static bool32 TwoIntroMons(u32 battlerId) // Double battle with both player pokemon active. { - return (IsDoubleBattle() && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[battlerId ^ BIT_FLANK]])); + return (IsDoubleBattle() && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]])); } static void Intro_WaitForShinyAnimAndHealthbox(void) @@ -244,25 +244,25 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) healthboxAnimDone = TRUE; twoMons = TRUE; } gBattleControllerOpponentHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler]; - gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK]; + gBattleControllerOpponentFlankHealthboxData = &gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)]; if (healthboxAnimDone) { if (twoMons == TRUE) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + && gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } @@ -273,8 +273,8 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) { if (GetBattlerPosition(gActiveBattler) == 3) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim) { FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -308,20 +308,20 @@ static void Intro_TryShinyAnimShowHealthbox(void) if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) || BATTLE_TWO_VS_ONE_OPPONENT) && twoMons - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) - TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim) + TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (twoMons && (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) || BATTLE_TWO_VS_ONE_OPPONENT)) { - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); @@ -332,7 +332,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry && !IsCryPlayingOrClearCrySongs()) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) @@ -361,8 +361,8 @@ static void Intro_TryShinyAnimShowHealthbox(void) { if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { battlerAnimsDone = TRUE; } @@ -372,8 +372,8 @@ static void Intro_TryShinyAnimShowHealthbox(void) { if (twoMons && (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) || BATTLE_TWO_VS_ONE_OPPONENT)) { - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); + SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); @@ -410,7 +410,7 @@ static void CompleteOnHealthbarDone(void) SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else OpponentBufferExecCompleted(); @@ -1588,9 +1588,9 @@ static void OpponentHandleChooseMove(void) gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - } + } if (ShouldUseZMove(gActiveBattler, gBattlerTarget, chosenMove)) - QueueZMove(gActiveBattler, chosenMove); + QueueZMove(gActiveBattler, chosenMove); if (CanMegaEvolve(gActiveBattler)) // If opponent can mega evolve, do it. BtlController_EmitTwoReturnValues(BUFFER_B, 10, (chosenMoveId) | (RET_MEGA_EVOLUTION) | (gBattlerTarget << 8)); else @@ -1617,8 +1617,8 @@ static void OpponentHandleChooseMove(void) do { target = GetBattlerAtPosition(Random() & 2); } while (!CanTargetBattler(gActiveBattler, target, move)); - - #if B_WILD_NATURAL_ENEMIES == TRUE + + #if B_WILD_NATURAL_ENEMIES == TRUE // Don't bother to loop through table if the move can't attack ally if (!(gBattleMoves[move].target & MOVE_TARGET_BOTH)) { @@ -1650,7 +1650,7 @@ static void OpponentHandleChooseMove(void) BtlController_EmitTwoReturnValues(BUFFER_B, 10, (chosenMoveId) | (target << 8)); } else - #endif + #endif BtlController_EmitTwoReturnValues(BUFFER_B, 10, (chosenMoveId) | (target << 8)); } else @@ -1974,14 +1974,14 @@ static void OpponentHandleDrawPartyStatusSummary(void) if (gBattleResources->bufferA[gActiveBattler][2] != 0) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++; return; } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0; } } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 819541495..6e9cdcc25 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -248,7 +248,7 @@ static void HandleInputChooseAction(void) { PlaySE(SE_SELECT); TryHideLastUsedBall(); - + switch (gActionSelectionCursor[gActiveBattler]) { case 0: // Top left @@ -330,12 +330,14 @@ static void HandleInputChooseAction(void) { SwapHpBarsWithHpText(); } - else if (B_ENABLE_DEBUG && gMain.newKeys & SELECT_BUTTON) +#if B_ENABLE_DEBUG == TRUE + else if (gMain.newKeys & SELECT_BUTTON) { BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_DEBUG, 0); PlayerBufferExecCompleted(); } - #if B_LAST_USED_BALL == TRUE +#endif +#if B_LAST_USED_BALL == TRUE else if (JOY_NEW(B_LAST_USED_BALL_BUTTON) && CanThrowLastUsedBall()) { PlaySE(SE_SELECT); @@ -343,7 +345,7 @@ static void HandleInputChooseAction(void) BtlController_EmitTwoReturnValues(BUFFER_B, B_ACTION_THROW_BALL, 0); PlayerBufferExecCompleted(); } - #endif +#endif } static void UnusedEndBounceEffect(void) @@ -614,21 +616,21 @@ static void HandleInputChooseMove(void) { moveTarget = GetBattlerMoveTargetType(gActiveBattler, moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]); } - + if (gBattleStruct->zmove.viewing) { u16 chosenMove = moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]; - + QueueZMove(gActiveBattler, chosenMove); gBattleStruct->zmove.viewing = FALSE; if (gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].split != SPLIT_STATUS) moveTarget = MOVE_TARGET_SELECTED; //damaging z moves always have selected target } - + if (moveTarget & MOVE_TARGET_USER) gMultiUsePlayerCursor = gActiveBattler; else - gMultiUsePlayerCursor = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE); + gMultiUsePlayerCursor = GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gActiveBattler))); if (!gBattleResources->bufferA[gActiveBattler][1]) // not a double battle { @@ -652,28 +654,27 @@ static void HandleInputChooseMove(void) canSelectTarget = 0; } + #if B_SHOW_TARGETS == TRUE // Show all available targets for multi-target moves - if (B_SHOW_TARGETS) + if ((moveTarget & MOVE_TARGET_ALL_BATTLERS) == MOVE_TARGET_ALL_BATTLERS) { - if ((moveTarget & MOVE_TARGET_ALL_BATTLERS) == MOVE_TARGET_ALL_BATTLERS) - { - u32 i = 0; - for (i = 0; i < gBattlersCount; i++) - TryShowAsTarget(i); - - canSelectTarget = 3; - } - else if (moveTarget & (MOVE_TARGET_OPPONENTS_FIELD | MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY)) - { - TryShowAsTarget(gMultiUsePlayerCursor); - TryShowAsTarget(BATTLE_PARTNER(gMultiUsePlayerCursor)); - if (moveTarget & MOVE_TARGET_FOES_AND_ALLY) - TryShowAsTarget(BATTLE_PARTNER(gActiveBattler)); - canSelectTarget = 2; - } + u32 i = 0; + for (i = 0; i < gBattlersCount; i++) + TryShowAsTarget(i); + + canSelectTarget = 3; } + else if (moveTarget & (MOVE_TARGET_OPPONENTS_FIELD | MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY)) + { + TryShowAsTarget(gMultiUsePlayerCursor); + TryShowAsTarget(BATTLE_PARTNER(gMultiUsePlayerCursor)); + if (moveTarget & MOVE_TARGET_FOES_AND_ALLY) + TryShowAsTarget(BATTLE_PARTNER(gActiveBattler)); + canSelectTarget = 2; + } + #endif } - + switch (canSelectTarget) { case 0: @@ -1160,7 +1161,7 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) if (TwoIntroMons(gActiveBattler) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) healthboxAnimDone = TRUE; } else @@ -1171,20 +1172,20 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) // If healthbox and shiny anim are done if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + && gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim) { // Reset shiny anim (even if it didn't occur) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (TwoIntroMons(gActiveBattler)) - HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], BATTLE_PARTNER(gActiveBattler)); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; @@ -1202,21 +1203,21 @@ static void Intro_TryShinyAnimShowHealthbox(void) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); // Start shiny animation if applicable for 2nd pokemon - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) - TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); + if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) + TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]); // Show healthbox after ball anim if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (TwoIntroMons(gActiveBattler) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); @@ -1228,7 +1229,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) // Restore bgm after cry has played and healthbox anim is started if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry && !IsCryPlayingOrClearCrySongs()) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) @@ -1247,8 +1248,8 @@ static void Intro_TryShinyAnimShowHealthbox(void) { if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { battlerAnimsDone = TRUE; } @@ -1266,7 +1267,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) if (bgmRestored && battlerAnimsDone) { if (TwoIntroMons(gActiveBattler) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; @@ -1346,7 +1347,7 @@ static void CompleteOnHealthbarDone(void) if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else { @@ -1399,7 +1400,7 @@ static void Task_GiveExpToMon(u8 taskId) gActiveBattler = savedActiveBattler; if (IsDoubleBattle() == TRUE - && ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])) + && ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])) gTasks[taskId].func = Task_LaunchLvlUpAnim; else gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; @@ -1494,7 +1495,7 @@ static void Task_LaunchLvlUpAnim(u8 taskId) u8 battlerId = gTasks[taskId].tExpTask_battler; u8 monIndex = gTasks[taskId].tExpTask_monId; - if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]) + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]) battlerId ^= BIT_FLANK; InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP); @@ -1511,8 +1512,8 @@ static void Task_UpdateLvlInHealthbox(u8 taskId) GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value. - if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]) - UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]) + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battlerId)], &gPlayerParty[monIndex], HEALTHBOX_ALL); else UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL); @@ -2858,7 +2859,7 @@ static void PlayerHandleChooseMove(void) else { struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[gActiveBattler][4]); - + InitMoveSelectionsVarsAndStrings(); gBattleStruct->mega.playerSelect = FALSE; if (!IsMegaTriggerSpriteActive()) @@ -2867,7 +2868,7 @@ static void PlayerHandleChooseMove(void) CreateMegaTriggerSprite(gActiveBattler, 0); if (!IsZMoveTriggerSpriteActive()) gBattleStruct->zmove.triggerSpriteId = 0xFF; - + GetUsableZMoves(gActiveBattler, moveInfo->moves); gBattleStruct->zmove.viable = IsZMoveUsable(gActiveBattler, gMoveSelectionCursor[gActiveBattler]); CreateZMoveTriggerSprite(gActiveBattler, gBattleStruct->zmove.viable); @@ -2952,7 +2953,7 @@ static void PlayerHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, 0, maxHP); } gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index a868d09c0..d39d745a6 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -233,7 +233,7 @@ static void Intro_WaitForHealthbox(void) else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { finished = TRUE; } @@ -252,7 +252,7 @@ static void Intro_WaitForHealthbox(void) static void Intro_ShowHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive && gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) @@ -261,10 +261,10 @@ static void Intro_ShowHealthbox(void) if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); @@ -292,7 +292,7 @@ static void CompleteOnHealthbarDone(void) if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else { @@ -340,7 +340,7 @@ static void Task_GiveExpToMon(u8 taskId) gActiveBattler = savedActiveBank; if (IsDoubleBattle() == TRUE - && ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[battlerId ^ BIT_FLANK])) + && ((u16)(monId) == gBattlerPartyIndexes[battlerId] || (u16)(monId) == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)])) gTasks[taskId].func = Task_LaunchLvlUpAnim; else gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter; @@ -435,7 +435,7 @@ static void Task_LaunchLvlUpAnim(u8 taskId) u8 battlerId = gTasks[taskId].tExpTask_bank; u8 monIndex = gTasks[taskId].tExpTask_monId; - if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]) + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]) battlerId ^= BIT_FLANK; InitAndLaunchSpecialAnimation(battlerId, battlerId, battlerId, B_ANIM_LVL_UP); @@ -452,8 +452,8 @@ static void Task_UpdateLvlInHealthbox(u8 taskId) GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value - if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[battlerId ^ BIT_FLANK]) - UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL); + if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[BATTLE_PARTNER(battlerId)]) + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(battlerId)], &gPlayerParty[monIndex], HEALTHBOX_ALL); else UpdateHealthboxAttribute(gHealthboxSpriteIds[battlerId], &gPlayerParty[monIndex], HEALTHBOX_ALL); @@ -1528,7 +1528,7 @@ static void PlayerPartnerHandleChooseMove(void) if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } - + if (ShouldUseZMove(gActiveBattler, gBattlerTarget, moveInfo->moves[chosenMoveId])) QueueZMove(gActiveBattler, moveInfo->moves[chosenMoveId]); diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 3f5e1cf7f..6d52f1bf8 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -228,9 +228,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded - && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded) + && gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].animEnded) healthboxAnimDone = TRUE; } @@ -240,13 +240,13 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) return; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim) return; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } @@ -265,19 +265,19 @@ static void Intro_TryShinyAnimShowHealthbox(void) && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) - TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); + if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) + TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); @@ -288,7 +288,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry && !IsCryPlayingOrClearCrySongs()) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) @@ -319,8 +319,8 @@ static void Intro_TryShinyAnimShowHealthbox(void) { if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy - && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy + && gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { battlerAnimsDone = TRUE; } @@ -330,8 +330,8 @@ static void Intro_TryShinyAnimShowHealthbox(void) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); + SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES)); } DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); @@ -376,7 +376,7 @@ static void CompleteOnHealthbarDone(void) if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else { @@ -1692,14 +1692,14 @@ static void RecordedOpponentHandleDrawPartyStatusSummary(void) if (gBattleResources->bufferA[gActiveBattler][2] != 0) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++; return; } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0; } } diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index b02f171f9..ecc8e09de 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -215,27 +215,27 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { healthboxAnimDone = TRUE; } } if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + && gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); if (IsDoubleBattle()) - HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK); + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], BATTLE_PARTNER(gActiveBattler)); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; @@ -251,7 +251,7 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) else { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy - && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) + && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy) { healthboxAnimDone = TRUE; } @@ -278,21 +278,21 @@ static void Intro_TryShinyAnimShowHealthbox(void) && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) - TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); + if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) + TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]); } if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); @@ -303,7 +303,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].healthboxSlideInStarted && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].waitForCry - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].waitForCry + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].waitForCry && !IsCryPlayingOrClearCrySongs()) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored) @@ -327,7 +327,7 @@ static void Intro_TryShinyAnimShowHealthbox(void) && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; @@ -351,7 +351,7 @@ static void CompleteOnHealthbarDone(void) if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else { @@ -1481,7 +1481,7 @@ static void RecordedPlayerHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, 0, maxHP); } gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 9728376df..4f4f2eb6f 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -291,21 +291,21 @@ static void Intro_TryShinyAnimShowHealthbox(void) && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) - TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]); + if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive) + TryShinyAnimation(BATTLE_PARTNER(gActiveBattler), &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]); if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive && gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); + DestroySprite(&gSprites[gBattleControllerData[BATTLE_PARTNER(gActiveBattler)]]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL); + StartHealthboxSlideIn(BATTLE_PARTNER(gActiveBattler)); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]); } DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); @@ -326,13 +326,13 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) healthboxAnimDone = TRUE; if (healthboxAnimDone && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim - && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + && gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); @@ -352,7 +352,7 @@ static void CompleteOnHealthbarDone(void) if (hpValue != -1) { - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, hpValue, gBattleMons[gActiveBattler].maxHP); } else { @@ -1277,7 +1277,7 @@ static void WallyHandleHealthBarUpdate(void) u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); - UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT); + UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], HP_CURRENT, 0, maxHP); } gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 82ce1ebf2..8603678b0 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -9,7 +9,6 @@ #include "link.h" #include "link_rfu.h" #include "party_menu.h" -#include "pokemon.h" #include "recorded_battle.h" #include "task.h" #include "util.h" @@ -923,7 +922,8 @@ void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) +// Unused +static void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) { sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA; sBattleBuffersTransferData[1] = monId; @@ -944,7 +944,8 @@ void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 b PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes); } -void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) +// Unused +static void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) { s32 i; @@ -1017,7 +1018,8 @@ void BtlController_EmitFaintAnimation(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitPaletteFade(u8 bufferId) +// Unused +static void BtlController_EmitPaletteFade(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE; sBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE; @@ -1026,7 +1028,8 @@ void BtlController_EmitPaletteFade(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitSuccessBallThrowAnim(u8 bufferId) +// Unused +static void BtlController_EmitSuccessBallThrowAnim(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM; sBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM; @@ -1042,7 +1045,8 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data) +// Unused +static void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data) { s32 i; @@ -1099,7 +1103,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.battler; - stringInfo->unk1605E = gBattleStruct->field_52; + stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx; stringInfo->hpScale = gBattleStruct->hpScale; stringInfo->itemEffectBattler = gPotentialItemEffectBattler; stringInfo->moveType = gBattleMoves[gCurrentMove].type; @@ -1131,7 +1135,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.battler; - stringInfo->unk1605E = gBattleStruct->field_52; + stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx; for (i = 0; i < MAX_BATTLERS_COUNT; i++) stringInfo->abilities[i] = gBattleMons[i].ability; @@ -1202,7 +1206,8 @@ void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u16 abil PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // Only 7 bytes were written. } -void BtlController_EmitCmd23(u8 bufferId) +// Unused +static void BtlController_EmitCmd23(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_23; sBattleBuffersTransferData[1] = CONTROLLER_23; @@ -1257,7 +1262,8 @@ void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6); } -void BtlController_EmitStatusXor(u8 bufferId, u8 b) +// Unused +static void BtlController_EmitStatusXor(u8 bufferId, u8 b) { sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR; sBattleBuffersTransferData[1] = b; @@ -1277,7 +1283,8 @@ void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4); } -void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) +// Unused +static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) { s32 i; @@ -1294,7 +1301,7 @@ void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data } // Unused -void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data) +static void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data) { s32 i; @@ -1309,7 +1316,8 @@ void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3); } -void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) +// Unused +static void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) { s32 i; @@ -1361,7 +1369,8 @@ void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitClearUnkVar(u8 bufferId) +// Unused +static void BtlController_EmitClearUnkVar(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKVAR; sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKVAR; @@ -1370,14 +1379,16 @@ void BtlController_EmitClearUnkVar(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitSetUnkVar(u8 bufferId, u8 b) +// Unused +static void BtlController_EmitSetUnkVar(u8 bufferId, u8 b) { sBattleBuffersTransferData[0] = CONTROLLER_SETUNKVAR; sBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -void BtlController_EmitClearUnkFlag(u8 bufferId) +// Unused +static void BtlController_EmitClearUnkFlag(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKFLAG; sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKFLAG; @@ -1386,7 +1397,8 @@ void BtlController_EmitClearUnkFlag(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitToggleUnkFlag(u8 bufferId) +// Unused +static void BtlController_EmitToggleUnkFlag(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_TOGGLEUNKFLAG; sBattleBuffersTransferData[1] = CONTROLLER_TOGGLEUNKFLAG; diff --git a/src/battle_dome.c b/src/battle_dome.c index 8b3b29fc1..84b7652a5 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -2747,7 +2747,7 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int mode) int i = 0; int typePower = TYPE_x1; - if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].power == 0) + if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || IS_MOVE_STATUS(move)) return 0; defType1 = gBaseStats[targetSpecies].type1; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 8cd23098f..37dbf0aab 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -259,7 +259,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void) else if (moveTarget == MOVE_TARGET_SELECTED) chosenMoveId |= GetBattlePalaceTarget(); else - chosenMoveId |= (GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE) << 8); + chosenMoveId |= (GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gActiveBattler))) << 8); return chosenMoveId; } @@ -282,7 +282,7 @@ static u8 GetBattlePalaceMoveGroup(u8 battlerId, u16 move) case MOVE_TARGET_RANDOM: case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: - if (gBattleMoves[move].power == 0) + if (IS_MOVE_STATUS(move)) return PALACE_MOVE_GROUP_SUPPORT; else return PALACE_MOVE_GROUP_ATTACK; @@ -315,7 +315,7 @@ static u16 GetBattlePalaceTarget(void) } if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp) - return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8; + return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8; switch (gBattlePalaceNatureToMoveTarget[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)]) { @@ -330,11 +330,11 @@ static u16 GetBattlePalaceTarget(void) else return opposing2 << 8; case PALACE_TARGET_RANDOM: - return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8; + return (BATTLE_OPPOSITE(gActiveBattler & BIT_SIDE) + (Random() & 2)) << 8; } } - return (gActiveBattler ^ BIT_SIDE) << 8; + return BATTLE_OPPOSITE(gActiveBattler) << 8; } // Wait for the pokemon to finish appearing out from the pokeball on send out @@ -578,13 +578,13 @@ static void BattleLoadMonSpriteGfx(struct Pokemon *mon, u32 battlerId, bool32 op position = GetBattlerPosition(battlerId); if (opponent) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[position], species, currentPersonality); } else { - HandleLoadSpecialPokePic(&gMonBackPicTable[species], + HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites.ptr[position], species, currentPersonality); } @@ -715,7 +715,12 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state) else { if (state == 2) - LoadCompressedSpriteSheet(&sSpriteSheets_DoublesPlayerHealthbox[0]); + { + if (WhichBattleCoords(0)) + LoadCompressedSpriteSheet(&sSpriteSheets_DoublesPlayerHealthbox[0]); + else + LoadCompressedSpriteSheet(&sSpriteSheet_SinglesPlayerHealthbox); + } else if (state == 3) LoadCompressedSpriteSheet(&sSpriteSheets_DoublesPlayerHealthbox[1]); else if (state == 4) @@ -860,7 +865,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 castform, bo personalityValue = gContestResources->moveAnim->personality; otId = gContestResources->moveAnim->otId; - HandleLoadSpecialPokePic(&gMonBackPicTable[targetSpecies], + HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites.ptr[position], targetSpecies, gContestResources->moveAnim->targetPersonality); @@ -879,7 +884,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 castform, bo personalityValue = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_PERSONALITY); otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_OT_ID); - HandleLoadSpecialPokePic(&gMonBackPicTable[targetSpecies], + HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites.ptr[position], targetSpecies, gTransformedPersonalities[battlerAtk]); @@ -889,7 +894,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 castform, bo personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_PERSONALITY); otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_OT_ID); - HandleLoadSpecialPokePic(&gMonFrontPicTable[targetSpecies], + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[position], targetSpecies, gTransformedPersonalities[battlerAtk]); @@ -1014,7 +1019,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId) { if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong) { - if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) + if (!gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(battlerId)].lowHpSong) PlaySE(SE_LOW_HEALTH); gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1; } @@ -1027,7 +1032,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId) m4aSongNumStop(SE_LOW_HEALTH); return; } - if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong) + if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(battlerId)].lowHpSong) { m4aSongNumStop(SE_LOW_HEALTH); return; @@ -1041,7 +1046,7 @@ void BattleStopLowHpSound(void) gBattleSpritesDataPtr->battlerData[playerBattler].lowHpSong = 0; if (IsDoubleBattle()) - gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0; + gBattleSpritesDataPtr->battlerData[BATTLE_PARTNER(playerBattler)].lowHpSong = 0; m4aSongNumStop(SE_LOW_HEALTH); } diff --git a/src/battle_interface.c b/src/battle_interface.c index a504cf1c0..5be969105 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -161,7 +161,7 @@ static const u8 *GetHealthboxElementGfxPtr(u8); static u8 *AddTextPrinterAndCreateWindowOnHealthbox(const u8 *, u32, u32, u32, u32 *); static void RemoveWindowOnHealthbox(u32 windowId); -static void UpdateHpTextInHealthboxInDoubles(u8, s16, u8); +static void UpdateHpTextInHealthboxInDoubles(u32 healthboxSpriteId, u32 maxOrCurrent, s16 currHp, s16 maxHp); static void UpdateStatusIconInHealthbox(u8); static void TextIntoHealthboxObject(void *, u8 *, s32); @@ -764,6 +764,15 @@ static void InitLastUsedBallAssets(void) gBattleStruct->ballSpriteIds[1] = MAX_SPRITES; } +// This function is here to cover a specific case - one player's mon in a 2 vs 1 double battle. In this scenario - display singles layout. +u32 WhichBattleCoords(u32 battlerId) // 0 - singles, 1 - doubles +{ + if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_LEFT && gPlayerPartyCount == 1) + return 0; + else + return IsDoubleBattle(); +} + u8 CreateBattlerHealthboxSprites(u8 battlerId) { s16 data6 = 0; @@ -771,7 +780,7 @@ u8 CreateBattlerHealthboxSprites(u8 battlerId) u8 healthbarSpriteId, megaIndicatorSpriteId; struct Sprite *healthBarSpritePtr; - if (!IsDoubleBattle()) + if (WhichBattleCoords(battlerId) == 0) // Singles { if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) { @@ -1024,10 +1033,10 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority, bool32 hideHPBoxes) if (indicatorSpriteId != 0xFF) gSprites[indicatorSpriteId].oam.priority = priority; - #if B_HIDE_HEALTHBOX_IN_ANIMS + #if B_HIDE_HEALTHBOX_IN_ANIMS if (hideHPBoxes && IsBattlerAlive(i)) TryToggleHealboxVisibility(priority, healthboxLeftSpriteId, healthboxRightSpriteId, healthbarSpriteId, indicatorSpriteId); - #endif + #endif } } @@ -1035,7 +1044,7 @@ void GetBattlerHealthboxCoords(u8 battler, s16 *x, s16 *y) { *x = 0, *y = 0; - if (!IsDoubleBattle()) + if (!WhichBattleCoords(battler)) { if (GetBattlerSide(battler) != B_SIDE_PLAYER) *x = 44, *y = 30; @@ -1102,7 +1111,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) if (GetBattlerSide(battler) == B_SIDE_PLAYER) { objVram = (void *)(OBJ_VRAM0); - if (!IsDoubleBattle()) + if (!WhichBattleCoords(battler)) objVram += spriteTileNum + 0x820; else objVram += spriteTileNum + 0x420; @@ -1116,175 +1125,149 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) RemoveWindowOnHealthbox(windowId); } -void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) +static void PrintHpOnHealthbox(u32 spriteId, s16 currHp, s16 maxHp, u32 bgColor, u32 rightTile, u32 leftTile) { - u32 windowId, spriteTileNum; u8 *windowTileData; - u8 text[32]; - void *objVram; + u32 windowId, tilesCount, x, healthboxTileNum; + u8 text[28], *txtPtr; + void *objVram = (void *)(OBJ_VRAM0) + gSprites[spriteId].oam.tileNum * TILE_SIZE_4BPP; - if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER && !IsDoubleBattle()) - { - spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP; - if (maxOrCurrent != HP_CURRENT) // singles, max - { - ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); - windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 2, &windowId); - objVram = (void *)(OBJ_VRAM0); - objVram += spriteTileNum + 0xB40; - HpTextIntoHealthboxObject(objVram, windowTileData, 2); - RemoveWindowOnHealthbox(windowId); - } - else // singles, current - { - ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); - text[3] = CHAR_SLASH; - text[4] = EOS; - windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 2, &windowId); - objVram = (void *)(OBJ_VRAM0); - objVram += spriteTileNum + 0x3E0; - HpTextIntoHealthboxObject(objVram, windowTileData, 1); - objVram = (void *)(OBJ_VRAM0); - objVram += spriteTileNum + 0xB00; - HpTextIntoHealthboxObject(objVram, windowTileData + 0x20, 2); - RemoveWindowOnHealthbox(windowId); - } - } + // To fit 4 digit HP values we need to modify a bit the way hp is printed on Healthbox. + // 6 chars can fit on the right healthbox, the rest goes to the left one + txtPtr = ConvertIntToDecimalStringN(text, currHp, STR_CONV_MODE_RIGHT_ALIGN, 4); + *txtPtr++ = CHAR_SLASH; + txtPtr = ConvertIntToDecimalStringN(txtPtr, maxHp, STR_CONV_MODE_LEFT_ALIGN, 4); + // Print last 6 chars on the right window + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(txtPtr - 6, 0, 5, bgColor, &windowId); + HpTextIntoHealthboxObject(objVram + rightTile, windowTileData, 4); + RemoveWindowOnHealthbox(windowId); + // Print the rest of the chars on the left window + txtPtr[-6] = EOS; + // if max hp is 3 digits print on block closer to the right window, if 4 digits print further from the right window + if (maxHp >= 1000) + x = 9, tilesCount = 3; else + x = 6, tilesCount = 2, leftTile += 0x20; + windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, x, 5, bgColor, &windowId); + HpTextIntoHealthboxObject(objVram + leftTile, windowTileData, tilesCount); + RemoveWindowOnHealthbox(windowId); +} + +// Note: this is only possible to trigger via debug, it was an unused GF function. +static void UpdateOpponentHpTextDoubles(u32 healthboxSpriteId, u32 barSpriteId, s16 value, u8 maxOrCurrent) +{ + u8 text[32], *txtPtr; + u32 i, var; + u32 battlerId = gSprites[healthboxSpriteId].hMain_Battler; + + if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars) // don't print text if only bars are visible { - u8 battler; + memcpy(text, sEmptyWhiteText_TransparentHighlight, sizeof(sEmptyWhiteText_TransparentHighlight)); + if (maxOrCurrent == HP_CURRENT) + var = 0; + else + var = 4; - memcpy(text, sEmptyWhiteText_GrayHighlight, sizeof(sEmptyWhiteText_GrayHighlight)); - battler = gSprites[healthboxSpriteId].hMain_Battler; - if (IsDoubleBattle() == TRUE) - { - UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent); - } - else if (gBattleSpritesDataPtr->battlerData[battler].hpNumbersNoBars) // don't print text if only bars are visible - { - u32 var; - u8 i; + txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3); + if (!maxOrCurrent) + StringCopy(txtPtr, gText_Slash); + RenderTextHandleBold(gMonSpritesGfxPtr->barFontGfx, FONT_BOLD, text); - if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER) + for (i = var; i < var + 3; i++) + { + if (i < 3) { - if (maxOrCurrent == HP_CURRENT) - var = 29; - else - var = 89; + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], + (void *)((OBJ_VRAM0) + 32 * (1 + gSprites[barSpriteId].oam.tileNum + i)), + 0x20); } else { - if (maxOrCurrent == HP_CURRENT) - var = 21; - else - var = 49; + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], + (void *)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[barSpriteId].oam.tileNum)), + 0x20); } + } - ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_LEADING_ZEROS, 3); - RenderTextHandleBold(gMonSpritesGfxPtr->barFontGfx, FONT_BOLD, text); - - for (i = 0; i < 3; i++) - { - CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32], - (void *)((OBJ_VRAM0) + TILE_SIZE_4BPP * (gSprites[healthboxSpriteId].oam.tileNum + var + i)), - 0x20); - } + if (maxOrCurrent == HP_CURRENT) + { + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224], + (void *)((OBJ_VRAM0) + ((gSprites[barSpriteId].oam.tileNum + 4) * TILE_SIZE_4BPP)), + 0x20); + CpuFill32(0, (void *)((OBJ_VRAM0) + (gSprites[barSpriteId].oam.tileNum * TILE_SIZE_4BPP)), 0x20); } } } -static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) +// Same with this one. +static void UpdateOpponentHpTextSingles(u32 healthboxSpriteId, s16 value, u32 maxOrCurrent) { - u32 windowId, spriteTileNum; - u8 *windowTileData; u8 text[32]; - void *objVram; + u32 var, i; + u32 battler = gSprites[healthboxSpriteId].hMain_Battler; + + memcpy(text, sEmptyWhiteText_GrayHighlight, sizeof(sEmptyWhiteText_GrayHighlight)); + if (gBattleSpritesDataPtr->battlerData[battler].hpNumbersNoBars) // don't print text if only bars are visible + { + if (maxOrCurrent == HP_CURRENT) + var = 21; + else + var = 49; + + ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_LEADING_ZEROS, 3); + RenderTextHandleBold(gMonSpritesGfxPtr->barFontGfx, FONT_BOLD, text); + + for (i = 0; i < 3; i++) + { + CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32], + (void *)((OBJ_VRAM0) + TILE_SIZE_4BPP * (gSprites[healthboxSpriteId].oam.tileNum + var + i)), + 0x20); + } + } +} + +void UpdateHpTextInHealthbox(u32 healthboxSpriteId, u32 maxOrCurrent, s16 currHp, s16 maxHp) +{ + u32 battlerId = gSprites[healthboxSpriteId].hMain_Battler; + if (WhichBattleCoords(battlerId)) + { + UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, maxOrCurrent, currHp, maxHp); + } + else // Single Battle + { + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) // Player + { + PrintHpOnHealthbox(healthboxSpriteId, currHp, maxHp, 2, 0xB00, 0x3A0); + } + else // Opponent + { + UpdateOpponentHpTextSingles(healthboxSpriteId, currHp, HP_CURRENT); + UpdateOpponentHpTextSingles(healthboxSpriteId, maxHp, HP_MAX); + } + } +} + +static void UpdateHpTextInHealthboxInDoubles(u32 healthboxSpriteId, u32 maxOrCurrent, s16 currHp, s16 maxHp) +{ + u32 barSpriteId = gSprites[healthboxSpriteId].data[5]; if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER) { if (gBattleSpritesDataPtr->battlerData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible { - spriteTileNum = gSprites[gSprites[healthboxSpriteId].data[5]].oam.tileNum * TILE_SIZE_4BPP; - objVram = (void *)(OBJ_VRAM0) + spriteTileNum; - - if (maxOrCurrent != HP_CURRENT) // doubles, max hp - { - ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); - windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 0, &windowId); - HpTextIntoHealthboxObject((void *)(OBJ_VRAM0) + spriteTileNum + 0xC0, windowTileData, 2); - RemoveWindowOnHealthbox(windowId); - CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END), + PrintHpOnHealthbox(barSpriteId, currHp, maxHp, 0, 0x80, 0x20); + // Clears the end of the healthbar gfx. + CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END), (void *)(OBJ_VRAM0 + 0x680) + (gSprites[healthboxSpriteId].oam.tileNum * TILE_SIZE_4BPP), 0x20); - } - else - { - ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3); - text[3] = CHAR_SLASH; - text[4] = EOS; - windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 0, &windowId); - FillHealthboxObject(objVram, 0, 3); // Erases HP bar leftover. - HpTextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x60) + spriteTileNum, windowTileData, 3); - RemoveWindowOnHealthbox(windowId); - } + // Erases HP bar leftover. + FillHealthboxObject((void *)(OBJ_VRAM0) + (gSprites[barSpriteId].oam.tileNum * TILE_SIZE_4BPP), 0, 2); } } - else + else // Opponent { - u8 battlerId; - - memcpy(text, sEmptyWhiteText_TransparentHighlight, sizeof(sEmptyWhiteText_TransparentHighlight)); - battlerId = gSprites[healthboxSpriteId].hMain_Battler; - - if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars) // don't print text if only bars are visible - { - u8 var = 4; - u8 r7; - u8 *txtPtr; - u8 i; - - if (maxOrCurrent == HP_CURRENT) - var = 0; - - r7 = gSprites[healthboxSpriteId].data[5]; - txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3); - if (!maxOrCurrent) - StringCopy(txtPtr, gText_Slash); - RenderTextHandleBold(gMonSpritesGfxPtr->barFontGfx, FONT_BOLD, text); - - for (i = var; i < var + 3; i++) - { - if (i < 3) - { - CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], - (void *)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)), - 0x20); - } - else - { - CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32], - (void *)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)), - 0x20); - } - } - - if (maxOrCurrent == HP_CURRENT) - { - CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224], - (void *)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * TILE_SIZE_4BPP)), - 0x20); - CpuFill32(0, (void *)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * TILE_SIZE_4BPP)), 0x20); - } - else - { - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) // Impossible to reach part, because the battlerId is from the opponent's side. - { - CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_FRAME_END), - (void *)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * TILE_SIZE_4BPP), - 0x20); - } - } - } + UpdateOpponentHpTextDoubles(healthboxSpriteId, barSpriteId, maxHp, HP_MAX); + UpdateOpponentHpTextDoubles(healthboxSpriteId, barSpriteId, currHp, HP_CURRENT); } } @@ -1355,22 +1338,23 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon) void SwapHpBarsWithHpText(void) { - s32 i; - u8 healthBarSpriteId; + u32 healthBarSpriteId, i; for (i = 0; i < gBattlersCount; i++) { if (gSprites[gHealthboxSpriteIds[i]].callback == SpriteCallbackDummy && GetBattlerSide(i) != B_SIDE_OPPONENT - && (IsDoubleBattle() || GetBattlerSide(i) != B_SIDE_PLAYER)) + && (WhichBattleCoords(i) || GetBattlerSide(i) != B_SIDE_PLAYER)) { + s32 currHp = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP); + s32 maxHp = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP); bool8 noBars; gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars ^= 1; noBars = gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars; if (GetBattlerSide(i) == B_SIDE_PLAYER) { - if (!IsDoubleBattle()) + if (!WhichBattleCoords(i)) continue; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) continue; @@ -1380,8 +1364,7 @@ void SwapHpBarsWithHpText(void) healthBarSpriteId = gSprites[gHealthboxSpriteIds[i]].hMain_HealthBarSpriteId; CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * TILE_SIZE_4BPP), 0x100); - UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT); - UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], HP_BOTH, currHp, maxHp); } else // text to bars { @@ -1404,8 +1387,7 @@ void SwapHpBarsWithHpText(void) healthBarSpriteId = gSprites[gHealthboxSpriteIds[i]].hMain_HealthBarSpriteId; CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[healthBarSpriteId].oam.tileNum * 32), 0x100); - UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT); - UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX); + UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], HP_BOTH, currHp, maxHp); } } else // text to bars @@ -1666,7 +1648,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, { isOpponent = TRUE; - if (!skipPlayer || !IsDoubleBattle()) + if (!skipPlayer || !WhichBattleCoords(battlerId)) bar_X = 104, bar_Y = 40; else bar_X = 104, bar_Y = 16; @@ -2152,7 +2134,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) { TextIntoHealthboxObject((void *)(OBJ_VRAM0 + 0x40 + spriteTileNum), windowTileData, 6); ptr = (void *)(OBJ_VRAM0); - if (!IsDoubleBattle()) + if (!WhichBattleCoords(gSprites[healthboxSpriteId].data[6])) ptr += spriteTileNum + 0x800; else ptr += spriteTileNum + 0x400; @@ -2203,7 +2185,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) { status = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_STATUS); - if (!IsDoubleBattle()) + if (!WhichBattleCoords(battlerId)) tileNumAdder = 0x1A; else tileNumAdder = 0x12; @@ -2259,7 +2241,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2); CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void *)(OBJ_PLTT + pltAdder * 2), 2); CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 96); - if (IsDoubleBattle() == TRUE || GetBattlerSide(battlerId) == B_SIDE_OPPONENT) + if (WhichBattleCoords(battlerId) == 1 || GetBattlerSide(battlerId) == B_SIDE_OPPONENT) { if (!gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars) { @@ -2361,28 +2343,31 @@ static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId) void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId) { - s32 maxHp, currHp; - u8 battlerId = gSprites[healthboxSpriteId].hMain_Battler; + u32 battlerId = gSprites[healthboxSpriteId].hMain_Battler; + s32 maxHp = GetMonData(mon, MON_DATA_MAX_HP); + s32 currHp = GetMonData(mon, MON_DATA_HP); - if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER) + if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) { - u8 isDoubles; + u8 isDoubles = WhichBattleCoords(battlerId); if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL) UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL)); - if (elementId == HEALTHBOX_CURRENT_HP || elementId == HEALTHBOX_ALL) - UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_HP), HP_CURRENT); - if (elementId == HEALTHBOX_MAX_HP || elementId == HEALTHBOX_ALL) - UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_MAX_HP), HP_MAX); + + if (elementId == HEALTHBOX_ALL) + UpdateHpTextInHealthbox(healthboxSpriteId, HP_BOTH, currHp, maxHp); + else if (elementId == HEALTHBOX_MAX_HP) + UpdateHpTextInHealthbox(healthboxSpriteId, HP_MAX, currHp, maxHp); + else if (elementId == HEALTHBOX_CURRENT_HP) + UpdateHpTextInHealthbox(healthboxSpriteId, HP_CURRENT, currHp, maxHp); + if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL) { LoadBattleBarGfx(0); - maxHp = GetMonData(mon, MON_DATA_MAX_HP); - currHp = GetMonData(mon, MON_DATA_HP); SetBattleBarStruct(battlerId, healthboxSpriteId, maxHp, currHp, 0); MoveBattleBar(battlerId, healthboxSpriteId, HEALTH_BAR, 0); } - isDoubles = IsDoubleBattle(); + if (!isDoubles && (elementId == HEALTHBOX_EXP_BAR || elementId == HEALTHBOX_ALL)) { u16 species; @@ -2413,15 +2398,18 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem { if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL) UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL)); - if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars && (elementId == HEALTHBOX_CURRENT_HP || elementId == HEALTHBOX_ALL)) - UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_HP), HP_CURRENT); - if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars && (elementId == HEALTHBOX_MAX_HP || elementId == HEALTHBOX_ALL)) - UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_MAX_HP), HP_MAX); + if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars) + { + if (elementId == HEALTHBOX_ALL) + UpdateHpTextInHealthbox(healthboxSpriteId, HP_BOTH, currHp, maxHp); + else if (elementId == HEALTHBOX_MAX_HP) + UpdateHpTextInHealthbox(healthboxSpriteId, HP_MAX, currHp, maxHp); + else if (elementId == HEALTHBOX_CURRENT_HP) + UpdateHpTextInHealthbox(healthboxSpriteId, HP_CURRENT, currHp, maxHp); + } if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL) { LoadBattleBarGfx(0); - maxHp = GetMonData(mon, MON_DATA_MAX_HP); - currHp = GetMonData(mon, MON_DATA_HP); SetBattleBarStruct(battlerId, healthboxSpriteId, maxHp, currHp, 0); MoveBattleBar(battlerId, healthboxSpriteId, HEALTH_BAR, 0); } @@ -2908,7 +2896,7 @@ static void TextIntoAbilityPopUp(void *dest, u8 *windowTileData, s32 arg2, bool3 #define MAX_CHARS_PRINTED 12 -static void PrintOnAbilityPopUp(const u8 *str, u8 *spriteTileData1, u8 *spriteTileData2, u32 x1, u32 x2, u32 y, u32 color1, u32 color2, u32 color3) +static void PrintOnAbilityPopUp(const u8 *str, u8 *spriteTileData1, u8 *spriteTileData2, u32 x1, u32 x2, u32 y, u32 color1, u32 color2, u32 color3, bool32 alignAbilityChars) { u32 windowId, i; u8 *windowTileData; @@ -2923,6 +2911,15 @@ static void PrintOnAbilityPopUp(const u8 *str, u8 *spriteTileData1, u8 *spriteTi } text1[i] = EOS; + // Because there are two Windows, we need to align the strings, so that the first char in the second window starts right after the last char in the first window. + // Windows are 64 pixels in width. + if (alignAbilityChars && i == MAX_CHARS_PRINTED) + { + u32 width = GetStringWidth(FONT_SMALL, text1, 0); + if (x1 + width < 64) + x1 += 64 - (x1 + width); + } + windowTileData = AddTextPrinterAndCreateWindowOnAbilityPopUp(text1, x1, y, color1, color2, color3, &windowId); TextIntoAbilityPopUp(spriteTileData1, windowTileData, 8, (y == 0)); RemoveWindow(windowId); @@ -2951,7 +2948,8 @@ static void ClearAbilityName(u8 spriteId1, u8 spriteId2) (void*)(OBJ_VRAM0) + (gSprites[spriteId2].oam.tileNum * 32) + 256, 6, 1, 4, - 7, 9, 1); + 7, 9, 1, + FALSE); } static void PrintBattlerOnAbilityPopUp(u8 battlerId, u8 spriteId1, u8 spriteId2) @@ -2988,7 +2986,8 @@ static void PrintBattlerOnAbilityPopUp(u8 battlerId, u8 spriteId1, u8 spriteId2) (void*)(OBJ_VRAM0) + (gSprites[spriteId2].oam.tileNum * 32), 7, 0, 0, - 2, 7, 1); + 2, 7, 1, + FALSE); } static void PrintAbilityOnAbilityPopUp(u32 ability, u8 spriteId1, u8 spriteId2) @@ -2996,9 +2995,10 @@ static void PrintAbilityOnAbilityPopUp(u32 ability, u8 spriteId1, u8 spriteId2) PrintOnAbilityPopUp(gAbilityNames[ability], (void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32) + 256, (void*)(OBJ_VRAM0) + (gSprites[spriteId2].oam.tileNum * 32) + 256, - 6, 1, + 6, 0, 4, - 7, 9, 1); + 7, 9, 1, + TRUE); } #define PIXEL_COORDS_TO_OFFSET(x, y)( \ @@ -3119,10 +3119,11 @@ static void RestoreOverwrittenPixels(u8 *tiles) void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) { +#if B_ABILITY_POP_UP == TRUE const s16 (*coords)[2]; u8 spriteId1, spriteId2, battlerPosition, taskId; - if (!B_ABILITY_POP_UP) + return; if (gBattleScripting.abilityPopupOverwrite != 0) @@ -3189,6 +3190,7 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) PrintBattlerOnAbilityPopUp(battlerId, spriteId1, spriteId2); PrintAbilityOnAbilityPopUp(ability, spriteId1, spriteId2); RestoreOverwrittenPixels((void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32)); +#endif } void UpdateAbilityPopup(u8 battlerId) @@ -3196,7 +3198,7 @@ void UpdateAbilityPopup(u8 battlerId) u8 spriteId1 = gBattleStruct->abilityPopUpSpriteIds[battlerId][0]; u8 spriteId2 = gBattleStruct->abilityPopUpSpriteIds[battlerId][1]; u16 ability = (gBattleScripting.abilityPopupOverwrite != 0) ? gBattleScripting.abilityPopupOverwrite : gBattleMons[battlerId].ability; - + ClearAbilityName(spriteId1, spriteId2); PrintAbilityOnAbilityPopUp(ability, spriteId1, spriteId2); RestoreOverwrittenPixels((void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32)); @@ -3382,7 +3384,7 @@ static void DestroyLastUsedBallGfx(struct Sprite *sprite) } static void SpriteCB_LastUsedBallWin(struct Sprite *sprite) -{ +{ if (sprite->sHide) { if (sprite->x != LAST_BALL_WIN_X_0) @@ -3399,7 +3401,7 @@ static void SpriteCB_LastUsedBallWin(struct Sprite *sprite) } static void SpriteCB_LastUsedBall(struct Sprite *sprite) -{ +{ if (sprite->sHide) { if (sprite->x != LAST_USED_BALL_X_0) diff --git a/src/battle_main.c b/src/battle_main.c index 87f0a0dfc..45039f99a 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -2981,10 +2981,10 @@ static void BattleStartClearSetData(void) gBattleStruct->arenaLostOpponentMons = 0; gBattleStruct->mega.triggerSpriteId = 0xFF; - + gBattleStruct->stickyWebUser = 0xFF; gBattleStruct->appearedInBattle = 0; - + for (i = 0; i < PARTY_SIZE; i++) { gBattleStruct->usedHeldItems[i][B_SIDE_PLAYER] = 0; @@ -3086,7 +3086,7 @@ void SwitchInClearSetData(void) gBattleStruct->lastTakenMoveFrom[gActiveBattler][3] = 0; gBattleStruct->lastMoveFailed &= ~(gBitTable[gActiveBattler]); gBattleStruct->palaceFlags &= ~(gBitTable[gActiveBattler]); - + if (gActiveBattler == gBattleStruct->stickyWebUser) gBattleStruct->stickyWebUser = 0xFF; // Switched into sticky web user slot so reset it @@ -3102,7 +3102,7 @@ void SwitchInClearSetData(void) gBattleResources->flags->flags[gActiveBattler] = 0; gCurrentMove = MOVE_NONE; gBattleStruct->arenaTurnCounter = 0xFF; - + // Reset damage to prevent things like red card activating if the switched-in mon is holding it gSpecialStatuses[gActiveBattler].physicalDmg = 0; gSpecialStatuses[gActiveBattler].specialDmg = 0; @@ -3142,6 +3142,7 @@ void FaintClearSetData(void) gProtectStructs[gActiveBattler].spikyShielded = FALSE; gProtectStructs[gActiveBattler].kingsShielded = FALSE; gProtectStructs[gActiveBattler].banefulBunkered = FALSE; + gProtectStructs[gActiveBattler].quash = FALSE; gProtectStructs[gActiveBattler].obstructed = FALSE; gProtectStructs[gActiveBattler].endured = FALSE; gProtectStructs[gActiveBattler].noValidMoves = FALSE; @@ -3186,7 +3187,7 @@ void FaintClearSetData(void) gBattleStruct->lastTakenMoveFrom[gActiveBattler][3] = 0; gBattleStruct->palaceFlags &= ~(gBitTable[gActiveBattler]); - + if (gActiveBattler == gBattleStruct->stickyWebUser) gBattleStruct->stickyWebUser = 0xFF; // User of sticky web fainted, so reset the stored battler ID @@ -3344,7 +3345,7 @@ static void DoBattleIntro(void) MarkBattlerForControllerExec(gActiveBattler); } } - else // wild mon 2 + else if (IsBattlerAlive(gActiveBattler)) // wild mon 2 if alive { BtlController_EmitLoadMonSprite(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); @@ -3363,10 +3364,11 @@ static void DoBattleIntro(void) } else // Skip party summary since it is a wild battle. { - if (B_FAST_INTRO) - *state = 7; // Don't wait for sprite, print message at the same time. - else - *state = 6; // Wait for sprite to load. + #if B_FAST_INTRO == TRUE + *state = 7; // Don't wait for sprite, print message at the same time. + #else + *state = 6; // Wait for sprite to load. + #endif } break; case 5: // draw party summary in trainer battles @@ -3435,10 +3437,11 @@ static void DoBattleIntro(void) } else { - if (B_FAST_INTRO) - *state = 15; // Wait for text to be printed. - else - *state = 14; // Wait for text and sprite. + #if B_FAST_INTRO == TRUE + *state = 15; // Wait for text to be printed. + #else + *state = 14; // Wait for text and sprite. + #endif } } break; @@ -3476,9 +3479,11 @@ static void DoBattleIntro(void) BtlController_EmitIntroTrainerBallThrow(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); } - if (B_FAST_INTRO && !(gBattleTypeFlags & (BATTLE_TYPE_RECORDED | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_RECORDED_IS_MASTER | BATTLE_TYPE_LINK))) + #if B_FAST_INTRO == TRUE + if (!(gBattleTypeFlags & (BATTLE_TYPE_RECORDED | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_RECORDED_IS_MASTER | BATTLE_TYPE_LINK))) *state = 15; // Print at the same time as trainer sends out second mon. else + #endif (*state)++; break; case 14: // wait for opponent 2 send out @@ -3498,13 +3503,14 @@ static void DoBattleIntro(void) gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); // A hack that makes fast intro work in trainer battles too. - if (B_FAST_INTRO - && gBattleTypeFlags & BATTLE_TYPE_TRAINER + #if B_FAST_INTRO == TRUE + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_RECORDED | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_RECORDED_IS_MASTER | BATTLE_TYPE_LINK)) && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_SIDE]].callback == SpriteCallbackDummy) { return; } + #endif PrepareStringBattle(STRINGID_INTROSENDOUT, gActiveBattler); } @@ -3698,7 +3704,7 @@ static void TryDoEventsBeforeFirstTurn(void) gMoveResultFlags = 0; gRandomTurnNumber = Random(); - + GetAiLogicData(); // get assumed abilities, hold effects, etc of all battlers if (gBattleTypeFlags & BATTLE_TYPE_ARENA) @@ -3906,7 +3912,7 @@ static void HandleTurnActionSelectionState(void) case STATE_TURN_START_RECORD: // Recorded battle related action on start of every turn. RecordedBattle_CopyBattlerMoves(); gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; - + // Do AI score computations here so we can use them in AI_TrySwitchOrUseItem if ((gBattleTypeFlags & BATTLE_TYPE_HAS_AI || IsWildMonSmart()) && IsBattlerAIControlled(gActiveBattler)) { gBattleStruct->aiMoveOrAction[gActiveBattler] = ComputeBattleAiScores(gActiveBattler); @@ -4267,7 +4273,7 @@ static void HandleTurnActionSelectionState(void) if (((gBattleTypeFlags & BATTLE_TYPE_MULTI) || !(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) || (position & BIT_FLANK) != B_FLANK_LEFT - || (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)])) + || (*(&gBattleStruct->absentBattlerFlags) & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))])) { BtlController_EmitLinkStandbyMsg(BUFFER_A, LINK_STANDBY_MSG_STOP_BOUNCE, i); } @@ -4387,9 +4393,9 @@ static void UpdateBattlerPartyOrdersOnSwitch(void) *(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleResources->bufferB[gActiveBattler][2] & 0xF0); *(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 1) = gBattleResources->bufferB[gActiveBattler][3]; - *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0); - *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleResources->bufferB[gActiveBattler][2] & 0xF0) >> 4; - *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleResources->bufferB[gActiveBattler][3]; + *((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0); + *((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleResources->bufferB[gActiveBattler][2] & 0xF0) >> 4; + *((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleResources->bufferB[gActiveBattler][3]; } } @@ -4458,7 +4464,11 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId) // paralysis drop if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS && ability != ABILITY_QUICK_FEET) - speed /= (B_PARALYSIS_SPEED >= GEN_7 ? 2 : 4); + #if B_PARALYSIS_SPEED >= GEN_7 + speed /= 2; + #else + speed /= 4; + #endif return speed; } @@ -4483,8 +4493,10 @@ s8 GetMovePriority(u32 battlerId, u16 move) priority = gBattleMoves[move].priority; if (ability == ABILITY_GALE_WINGS - && gBattleMoves[move].type == TYPE_FLYING - && (B_GALE_WINGS <= GEN_6 || BATTLER_MAX_HP(battlerId))) + #if B_GALE_WINGS >= GEN_7 + && BATTLER_MAX_HP(battlerId) + #endif + && gBattleMoves[move].type == TYPE_FLYING) { priority++; } @@ -4518,6 +4530,9 @@ s8 GetMovePriority(u32 battlerId, u16 move) } } + if (gProtectStructs[battlerId].quash) + priority = -8; + return priority; } @@ -4566,7 +4581,7 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) // QUICK CLAW / CUSTAP - always first // LAGGING TAIL - always last // STALL - always last - + if (gProtectStructs[battler1].quickDraw && !gProtectStructs[battler2].quickDraw) strikesFirst = 0; else if (!gProtectStructs[battler1].quickDraw && gProtectStructs[battler2].quickDraw) @@ -4738,6 +4753,7 @@ static void TurnValuesCleanUp(bool8 var0) gProtectStructs[gActiveBattler].spikyShielded = FALSE; gProtectStructs[gActiveBattler].kingsShielded = FALSE; gProtectStructs[gActiveBattler].banefulBunkered = FALSE; + gProtectStructs[gActiveBattler].quash = FALSE; } else { @@ -5127,10 +5143,10 @@ static void HandleEndTurn_FinishBattle(void) RecordedBattle_SetPlaybackFinished(); BeginFastPaletteFade(3); FadeOutMapMusic(5); - #if B_TRAINERS_KNOCK_OFF_ITEMS + #if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) TryRestoreStolenItems(); - #endif + #endif for (i = 0; i < PARTY_SIZE; i++) { UndoMegaEvolution(i); @@ -5172,7 +5188,10 @@ static void FreeResetData_ReturnToOvOrDoEvolutions(void) | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_WALLY_TUTORIAL)) - && (B_EVOLUTION_AFTER_WHITEOUT >= GEN_6 || gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT)) + #if B_EVOLUTION_AFTER_WHITEOUT <= GEN_5 + && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT) + #endif + ) { gBattleMainFunc = TrySpecialEvolution; } @@ -5457,5 +5476,9 @@ void SetTotemBoost(void) bool32 IsWildMonSmart(void) { - return (B_SMART_WILD_AI_FLAG != 0 && FlagGet(B_SMART_WILD_AI_FLAG)); +#if B_SMART_WILD_AI_FLAG != 0 + return (FlagGet(B_SMART_WILD_AI_FLAG)); +#else + return FALSE; +#endif } diff --git a/src/battle_message.c b/src/battle_message.c index 01e401cf7..feab52ac2 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -625,7 +625,7 @@ static const u8 sText_PkmnBlewAwayToxicSpikes[] = _("{B_ATK_NAME_WITH_PREFIX} bl static const u8 sText_PkmnBlewAwayStickyWeb[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nSticky Web!"); static const u8 sText_PkmnBlewAwayStealthRock[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nStealth Rock!"); static const u8 sText_StickyWebUsed[] = _("A sticky web spreads out on the\nground around {B_DEF_TEAM2} team!"); -static const u8 sText_QuashSuccess[] = _("The opposing {B_ATK_NAME_WITH_PREFIX}'s move was postponed!"); +static const u8 sText_QuashSuccess[] = _("The opposing {B_DEF_NAME_WITH_PREFIX}'s\nmove was postponed!"); static const u8 sText_IonDelugeOn[] = _("A deluge of ions showers\nthe battlefield!"); static const u8 sText_TopsyTurvySwitchedStats[] = _("{B_DEF_NAME_WITH_PREFIX}'s stat changes were\nall reversed!"); static const u8 sText_TerrainBecomesMisty[] = _("Mist swirled about\nthe battlefield!"); @@ -753,9 +753,21 @@ static const u8 sText_TargetTooHeavy[] = _("But the target\nwas too heavy!"); static const u8 sText_MeteorBeamCharging[] = _("{B_ATK_NAME_WITH_PREFIX} is overflowing\nwith space energy!"); static const u8 sText_HeatingUpBeak[] = _("{B_ATK_NAME_WITH_PREFIX} started\nheating up its beak!"); static const u8 sText_CourtChange[] = _("{B_ATK_NAME_WITH_PREFIX} swapped the battle\neffects affecting each side!"); +static const u8 sText_AttackerExpelledThePoison[] = _("{B_ATK_NAME_WITH_PREFIX} managed to\nexpel the poison!"); +static const u8 sText_AttackerShookItselfAwake[] = _("{B_ATK_NAME_WITH_PREFIX} shook itself awake!"); +static const u8 sText_AttackerBrokeThroughParalysis[] = _("{B_ATK_NAME_WITH_PREFIX} gathered all its energy\nto overcome its paralysis!"); +static const u8 sText_AttackerHealedItsBurn[] = _("{B_ATK_NAME_WITH_PREFIX} healed its burn with\nits sheer determination!"); +static const u8 sText_AttackerMeltedTheIce[] = _("{B_ATK_NAME_WITH_PREFIX} melted the ice with\nits fiery determination!"); +static const u8 sText_TargetToughedItOut[] = _("{B_DEF_NAME_WITH_PREFIX} toughed it out\nto show you its best side!"); const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { + [STRINGID_TARGETTOUGHEDITOUT - BATTLESTRINGS_TABLE_START] = sText_TargetToughedItOut, + [STRINGID_ATTACKERMELTEDTHEICE - BATTLESTRINGS_TABLE_START] = sText_AttackerMeltedTheIce, + [STRINGID_ATTACKERHEALEDITSBURN - BATTLESTRINGS_TABLE_START] = sText_AttackerHealedItsBurn, + [STRINGID_ATTACKERBROKETHROUGHPARALYSIS - BATTLESTRINGS_TABLE_START] = sText_AttackerBrokeThroughParalysis, + [STRINGID_ATTACKERSHOOKITSELFAWAKE - BATTLESTRINGS_TABLE_START] = sText_AttackerShookItselfAwake, + [STRINGID_ATTACKEREXPELLEDTHEPOISON - BATTLESTRINGS_TABLE_START] = sText_AttackerExpelledThePoison, [STRINGID_ZPOWERSURROUNDS - BATTLESTRINGS_TABLE_START] = sText_ZPowerSurrounds, [STRINGID_ZMOVEUNLEASHED - BATTLESTRINGS_TABLE_START] = sText_ZPowerUnleashed, [STRINGID_ZMOVERESETSSTATS - BATTLESTRINGS_TABLE_START] = sText_ZMoveResetsStats, @@ -1934,7 +1946,7 @@ const u8 gText_OpponentMon1Name[] = _("{B_OPPONENT_MON1_NAME}"); const u8 gText_Mind[] = _("Mind"); const u8 gText_Skill[] = _("Skill"); const u8 gText_Body[] = _("Body"); -const u8 gText_Judgement[] = _("{B_BUFF1}{CLEAR 13}Judgment{CLEAR 13}{B_BUFF2}"); +const u8 gText_Judgment[] = _("{B_BUFF1}{CLEAR 13}Judgment{CLEAR 13}{B_BUFF2}"); static const u8 sText_TwoTrainersSentPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!\p{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_OPPONENT_MON2_NAME}!"); static const u8 sText_Trainer2SentOutPkmn[] = _("{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_BUFF1}!"); static const u8 sText_TwoTrainersWantToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwant to battle!\p"); @@ -2587,7 +2599,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .bgColor = TEXT_DYNAMIC_COLOR_5, .shadowColor = TEXT_DYNAMIC_COLOR_6, }, - [ARENA_WIN_JUDGEMENT_TITLE] = { + [ARENA_WIN_JUDGMENT_TITLE] = { .fillValue = PIXEL_FILL(0xE), .fontId = FONT_NORMAL, .x = -1, @@ -2599,7 +2611,7 @@ static const struct BattleWindowText sTextOnWindowsInfo_Arena[] = .bgColor = TEXT_DYNAMIC_COLOR_5, .shadowColor = TEXT_DYNAMIC_COLOR_6, }, - [ARENA_WIN_JUDGEMENT_TEXT] = { + [ARENA_WIN_JUDGMENT_TEXT] = { .fillValue = PIXEL_FILL(0x1), .fontId = FONT_NORMAL, .x = 0, @@ -2630,7 +2642,7 @@ void BufferStringBattle(u16 stringID) gLastUsedItem = gBattleMsgDataPtr->lastItem; gLastUsedAbility = gBattleMsgDataPtr->lastAbility; gBattleScripting.battler = gBattleMsgDataPtr->scrActive; - gBattleStruct->field_52 = gBattleMsgDataPtr->unk1605E; + gBattleStruct->scriptPartyIdx = gBattleMsgDataPtr->bakScriptPartyIdx; gBattleStruct->hpScale = gBattleMsgDataPtr->hpScale; gPotentialItemEffectBattler = gBattleMsgDataPtr->itemEffectBattler; gBattleStruct->stringMoveType = gBattleMsgDataPtr->moveType; @@ -2690,7 +2702,7 @@ void BufferStringBattle(u16 stringID) { if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) stringPtr = sText_LegendaryPkmnAppeared; - else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]])) // interesting, looks like they had something planned for wild double battles + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]])) // interesting, looks like they had something planned for wild double battles stringPtr = sText_TwoWildPkmnAppeared; else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) stringPtr = sText_WildPkmnAppearedPause; @@ -2701,7 +2713,7 @@ void BufferStringBattle(u16 stringID) case STRINGID_INTROSENDOUT: // poke first send-out if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && IsValidForBattle(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]])) + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && IsValidForBattle(&gPlayerParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]])) { if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) stringPtr = sText_InGamePartnerSentOutZGoN; @@ -2719,7 +2731,7 @@ void BufferStringBattle(u16 stringID) } else { - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]])) + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && IsValidForBattle(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]])) { if (BATTLE_TWO_VS_ONE_OPPONENT) stringPtr = sText_Trainer1SentOutTwoPkmn; @@ -3390,11 +3402,11 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) dstID++; toCpy++; } - GetMonData(&gEnemyParty[gBattleStruct->field_52], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattleStruct->scriptPartyIdx], MON_DATA_NICKNAME, text); } else { - GetMonData(&gPlayerParty[gBattleStruct->field_52], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattleStruct->scriptPartyIdx], MON_DATA_NICKNAME, text); } StringGet_Nickname(text); toCpy = text; @@ -3838,7 +3850,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) printerTemplate.x = printerTemplate.currentX = alignX; } - if (windowId == ARENA_WIN_JUDGEMENT_TEXT) + if (windowId == ARENA_WIN_JUDGMENT_TEXT) gTextFlags.useAlternateDownArrow = FALSE; else gTextFlags.useAlternateDownArrow = TRUE; @@ -3848,7 +3860,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) else gTextFlags.autoScroll = FALSE; - if (windowId == B_WIN_MSG || windowId == ARENA_WIN_JUDGEMENT_TEXT) + if (windowId == B_WIN_MSG || windowId == ARENA_WIN_JUDGMENT_TEXT) { if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) speed = 1; diff --git a/src/battle_pike.c b/src/battle_pike.c index 229f6211b..3519bb2ce 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -813,6 +813,9 @@ static bool8 DoesAbilityPreventStatus(struct Pokemon *mon, u32 status) u16 ability = GetMonAbility(mon); bool8 ret = FALSE; + if (ability == ABILITY_COMATOSE) + return TRUE; + switch (status) { case STATUS1_FREEZE: @@ -856,8 +859,10 @@ static bool8 DoesTypePreventStatus(u16 species, u32 status) break; case STATUS1_PARALYSIS: if (gBaseStats[species].type1 == TYPE_GROUND || gBaseStats[species].type2 == TYPE_GROUND - || (B_PARALYZE_ELECTRIC >= GEN_6 && - (gBaseStats[species].type1 == TYPE_ELECTRIC || gBaseStats[species].type2 == TYPE_ELECTRIC))) + #if B_PARALYZE_ELECTRIC >= GEN_6 + || gBaseStats[species].type1 == TYPE_ELECTRIC || gBaseStats[species].type2 == TYPE_ELECTRIC + #endif + ) ret = TRUE; break; case STATUS1_BURN: diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index 9fab996da..7a4d981f0 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -1404,20 +1404,20 @@ void TryStoreHeldItemsInPyramidBag(void) { u8 i; struct Pokemon *party = gPlayerParty; - u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems)); + u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities)); u16 heldItem; - memcpy(newItems, gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - memcpy(newQuantities, gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + memcpy(newItems, gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems)); + memcpy(newQuantities, gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities)); for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { heldItem = GetMonData(&party[i], MON_DATA_HELD_ITEM); if (heldItem != ITEM_NONE && !AddBagItem(heldItem, 1)) { // Cant store party held items in pyramid bag because bag is full - memcpy(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - memcpy(gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + memcpy(gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode], newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems)); + memcpy(gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode], newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities)); Free(newItems); Free(newQuantities); gSpecialVar_Result = 1; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 420d5790c..abcd574a5 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -59,6 +59,7 @@ #include "constants/songs.h" #include "constants/trainers.h" #include "battle_util.h" +#include "constants/pokemon.h" extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; @@ -1345,7 +1346,7 @@ static bool32 TryAegiFormChange(void) default: return FALSE; case SPECIES_AEGISLASH: // Shield -> Blade - if (gBattleMoves[gCurrentMove].power == 0) + if (IS_MOVE_STATUS(gCurrentMove)) return FALSE; gBattleMons[gBattlerAttacker].species = SPECIES_AEGISLASH_BLADE; break; @@ -1395,10 +1396,10 @@ static void Cmd_attackcanceler(void) gBattlescriptCurrInstr = BattleScript_MoveEnd; return; } - #if (B_STANCE_CHANGE_FAIL <= GEN_6) +#if B_STANCE_CHANGE_FAIL <= GEN_6 if (TryAegiFormChange()) return; - #endif +#endif if (AtkCanceller_UnableToUseMove()) return; @@ -1422,7 +1423,7 @@ static void Cmd_attackcanceler(void) return; if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0)) return; - if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE + if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & (HITMARKER_ALLOW_NO_PP | HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT)) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { @@ -1430,10 +1431,10 @@ static void Cmd_attackcanceler(void) gMoveResultFlags |= MOVE_RESULT_MISSED; return; } - #if (B_STANCE_CHANGE_FAIL >= GEN_7) +#if B_STANCE_CHANGE_FAIL >= GEN_7 if (TryAegiFormChange()) return; - #endif +#endif gHitMarker &= ~HITMARKER_ALLOW_NO_PP; @@ -1466,7 +1467,6 @@ static void Cmd_attackcanceler(void) && !gProtectStructs[gBattlerAttacker].usesBouncedMove) { PressurePPLose(gBattlerAttacker, gBattlerTarget, MOVE_MAGIC_COAT); - gProtectStructs[gBattlerTarget].bounceMove = FALSE; gProtectStructs[gBattlerTarget].usesBouncedMove = TRUE; gBattleCommunication[MULTISTRING_CHOOSER] = 0; if (BlocksPrankster(gCurrentMove, gBattlerTarget, gBattlerAttacker, TRUE)) @@ -1601,13 +1601,13 @@ static bool32 AccuracyCalcHelper(u16 move) JumpIfMoveFailed(7, move); return TRUE; } - else if (B_TOXIC_NEVER_MISS >= GEN_6 - && gBattleMoves[move].effect == EFFECT_TOXIC - && IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_POISON)) +#if B_TOXIC_NEVER_MISS >= GEN_6 + else if (gBattleMoves[move].effect == EFFECT_TOXIC && IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_POISON)) { JumpIfMoveFailed(7, move); return TRUE; } +#endif // 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)) { @@ -1622,7 +1622,7 @@ static bool32 AccuracyCalcHelper(u16 move) RecordAbilityBattle(gBattlerTarget, ABILITY_NO_GUARD); return TRUE; } - + if (gBattleStruct->zmove.active && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) { JumpIfMoveFailed(7, move); @@ -1639,14 +1639,40 @@ static bool32 AccuracyCalcHelper(u16 move) return TRUE; } - if ((WEATHER_HAS_EFFECT && - ((IsBattlerWeatherAffected(gBattlerTarget, B_WEATHER_RAIN) && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE)) - || ((B_BLIZZARD_HAIL >= GEN_4 && (gBattleWeather & B_WEATHER_HAIL) && move == MOVE_BLIZZARD)))) - || (gBattleMoves[move].effect == EFFECT_VITAL_THROW) - || (gBattleMoves[move].accuracy == 0) - || ((B_MINIMIZE_DMG_ACC >= GEN_6) && (gStatuses3[gBattlerTarget] & STATUS3_MINIMIZED) && (gBattleMoves[move].flags & FLAG_DMG_MINIMIZE))) + if (WEATHER_HAS_EFFECT) + { + if ((IsBattlerWeatherAffected(gBattlerTarget, B_WEATHER_RAIN) && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE))) + { + // thunder/hurricane ignore acc checks in rain unless target is holding utility umbrella + JumpIfMoveFailed(7, move); + return TRUE; + } + #if B_BLIZZARD_HAIL >= GEN_4 + else if ((gBattleWeather & B_WEATHER_HAIL) && move == MOVE_BLIZZARD) + { + // thunder/hurricane ignore acc checks in rain unless target is holding utility umbrella + JumpIfMoveFailed(7, move); + return TRUE; + } + #endif + } + + if (gBattleMoves[move].effect == EFFECT_VITAL_THROW) + { + JumpIfMoveFailed(7, move); + return TRUE; + } + +#if B_MINIMIZE_DMG_ACC >= GEN_6 + if ((gStatuses3[gBattlerTarget] & STATUS3_MINIMIZED) && (gBattleMoves[move].flags & FLAG_DMG_MINIMIZE)) + { + JumpIfMoveFailed(7, move); + return TRUE; + } +#endif + + if (gBattleMoves[move].accuracy == 0) { - // thunder/hurricane ignore acc checks in rain unless target is holding utility umbrella JumpIfMoveFailed(7, move); return TRUE; } @@ -1687,7 +1713,7 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE)) moveAcc = 50; // Check Wonder Skin. - if (defAbility == ABILITY_WONDER_SKIN && gBattleMoves[move].power == 0) + if (defAbility == ABILITY_WONDER_SKIN && IS_MOVE_STATUS(move) && moveAcc > 50) moveAcc = 50; calc = gAccuracyStageRatios[buff].dividend * moveAcc; @@ -1730,6 +1756,13 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u if (gFieldStatuses & STATUS_FIELD_GRAVITY) calc = (calc * 5) / 3; // 1.66 Gravity acc boost +#if B_AFFECTION_MECHANICS == TRUE + // With high affection/friendship there's a chance to evade a move by substracting 10% of its accuracy. + // I can't find exact information about that chance, so I'm just gonna write it as a 20% chance for now. + if (GetMonFriendshipScore(&gPlayerParty[gBattlerPartyIndexes[battlerDef]]) >= FRIENDSHIP_150_TO_199 && (Random() % 100) <= 20) + calc = (calc * 90) / 100; +#endif + return calc; } @@ -1765,7 +1798,7 @@ static void Cmd_accuracycheck(void) gMoveResultFlags |= MOVE_RESULT_MISSED; if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_BLUNDER_POLICY) gBattleStruct->blunderPolicy = TRUE; // Only activates from missing through acc/evasion checks - + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && (moveTarget == MOVE_TARGET_BOTH || moveTarget == MOVE_TARGET_FOES_AND_ALLY)) gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_ATK; @@ -1898,6 +1931,9 @@ s32 CalcCritChanceStage(u8 battlerAtk, u8 battlerDef, u32 move, bool32 recordAbi + (holdEffectAtk == HOLD_EFFECT_SCOPE_LENS) + 2 * (holdEffectAtk == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattlerAttacker].species == SPECIES_CHANSEY) + 2 * BENEFITS_FROM_LEEK(battlerAtk, holdEffectAtk) + #if B_AFFECTION_MECHANICS == TRUE + + 2 * (GetMonFriendshipScore(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]) >= FRIENDSHIP_200_TO_254) + #endif + (abilityAtk == ABILITY_SUPER_LUCK); if (critChance >= ARRAY_COUNT(sCriticalHitChance)) @@ -1966,6 +2002,8 @@ static void Cmd_adjustdamage(void) { u8 holdEffect, param; u32 moveType; + u32 friendshipScore = GetMonFriendshipScore(&gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]); + u32 rand = Random() % 100; GET_MOVE_TYPE(gCurrentMove, moveType); @@ -1981,7 +2019,7 @@ static void Cmd_adjustdamage(void) gPotentialItemEffectBattler = gBattlerTarget; - if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param) + if (holdEffect == HOLD_EFFECT_FOCUS_BAND && rand < param) { RecordItemEffectBattle(gBattlerTarget, holdEffect); gSpecialStatuses[gBattlerTarget].focusBanded = TRUE; @@ -1998,11 +2036,24 @@ static void Cmd_adjustdamage(void) RecordItemEffectBattle(gBattlerTarget, holdEffect); gSpecialStatuses[gBattlerTarget].focusSashed = TRUE; } +#if B_AFFECTION_MECHANICS == TRUE + else if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER && friendshipScore >= FRIENDSHIP_100_TO_149) + { + if ((friendshipScore == FRIENDSHIP_MAX && rand < 25) + || (friendshipScore == FRIENDSHIP_200_TO_254 && rand < 20) + || (friendshipScore == FRIENDSHIP_150_TO_199 && rand < 15) + || (friendshipScore == FRIENDSHIP_100_TO_149 && rand < 10)) + gSpecialStatuses[gBattlerTarget].affectionEndured = TRUE; + } +#endif if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured && !gSpecialStatuses[gBattlerTarget].focusBanded && !gSpecialStatuses[gBattlerTarget].focusSashed +#if B_AFFECTION_MECHANICS == TRUE + && !gSpecialStatuses[gBattlerTarget].affectionEndured +#endif && !gSpecialStatuses[gBattlerTarget].sturdied) goto END; @@ -2023,6 +2074,12 @@ static void Cmd_adjustdamage(void) gMoveResultFlags |= MOVE_RESULT_STURDIED; gLastUsedAbility = ABILITY_STURDY; } +#if B_AFFECTION_MECHANICS == TRUE + else if (gSpecialStatuses[gBattlerTarget].affectionEndured) + { + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED_AFFECTION; + } +#endif END: gBattlescriptCurrInstr++; @@ -2478,6 +2535,16 @@ static void Cmd_resultmessage(void) { stringId = STRINGID_BUTITFAILED; } + #if B_AFFECTION_MECHANICS == TRUE + else if (gMoveResultFlags & MOVE_RESULT_FOE_ENDURED_AFFECTION) + { + gSpecialStatuses[gBattlerTarget].affectionEndured = FALSE; + gMoveResultFlags &= ~MOVE_RESULT_FOE_ENDURED_AFFECTION; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AffectionBasedEndurance; + return; + } + #endif else { gBattleCommunication[MSG_DISPLAY] = 0; @@ -2596,14 +2663,14 @@ static void CheckSetUnburden(u8 battlerId) // battlerStealer steals the item of battlerItem void StealTargetItem(u8 battlerStealer, u8 battlerItem) -{ +{ gLastUsedItem = gBattleMons[battlerItem].item; gBattleMons[battlerItem].item = 0; - + RecordItemEffectBattle(battlerItem, 0); RecordItemEffectBattle(battlerStealer, ItemId_GetHoldEffect(gLastUsedItem)); gBattleMons[battlerStealer].item = gLastUsedItem; - + CheckSetUnburden(battlerItem); gBattleResources->flags->flags[battlerStealer] &= ~RESOURCE_FLAG_UNBURDEN; @@ -2614,9 +2681,9 @@ void StealTargetItem(u8 battlerStealer, u8 battlerItem) gActiveBattler = battlerItem; BtlController_EmitSetMonData(BUFFER_A, REQUEST_HELDITEM_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].item), &gBattleMons[battlerItem].item); // remove target item MarkBattlerForControllerExec(battlerItem); - + gBattleStruct->choicedMove[battlerItem] = 0; - + TrySaveExchangedItem(battlerItem, gLastUsedItem); } @@ -2640,7 +2707,7 @@ void SetMoveEffect(bool32 primary, u32 certain) bool32 mirrorArmorReflected = (GetBattlerAbility(gBattlerTarget) == ABILITY_MIRROR_ARMOR); u32 flags = 0; u16 battlerAbility; - + switch (gBattleScripting.moveEffect) // Set move effects which happen later on { case MOVE_EFFECT_KNOCK_OFF: @@ -2749,7 +2816,7 @@ void SetMoveEffect(bool32 primary, u32 certain) case STATUS1_BURN: if (gCurrentMove == MOVE_BURNING_JEALOUSY && !gProtectStructs[gEffectBattler].statRaised) break; - + if ((battlerAbility == ABILITY_WATER_VEIL || battlerAbility == ABILITY_WATER_BUBBLE) && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)) { @@ -2885,7 +2952,11 @@ void SetMoveEffect(bool32 primary, u32 certain) BattleScriptPush(gBattlescriptCurrInstr + 1); if (sStatusFlagsForMoveEffects[gBattleScripting.moveEffect] == STATUS1_SLEEP) - gBattleMons[gEffectBattler].status1 |= (B_SLEEP_TURNS >= GEN_5) ? ((Random() % 3) + 2) : ((Random() % 4) + 3); + #if B_SLEEP_TURNS >= GEN_5 + gBattleMons[gEffectBattler].status1 |= ((Random() % 3) + 2); + #else + gBattleMons[gEffectBattler].status1 |= ((Random() % 4) + 3); + #endif else gBattleMons[gEffectBattler].status1 |= sStatusFlagsForMoveEffects[gBattleScripting.moveEffect]; @@ -2944,7 +3015,7 @@ void SetMoveEffect(bool32 primary, u32 certain) else { gBattleMons[gEffectBattler].status2 |= STATUS2_CONFUSION_TURN(((Random()) % 4) + 2); // 2-5 turns - + // If the confusion is activating due to being released from Sky Drop, go to "confused due to fatigue" script. // Otherwise, do normal confusion script. if(gCurrentMove == MOVE_SKY_DROP) @@ -2956,7 +3027,7 @@ void SetMoveEffect(bool32 primary, u32 certain) else { BattleScriptPush(gBattlescriptCurrInstr + 1); - gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleScripting.moveEffect]; + gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleScripting.moveEffect]; } } break; @@ -2987,7 +3058,11 @@ void SetMoveEffect(bool32 primary, u32 certain) { gBattleMons[gEffectBattler].status2 |= STATUS2_MULTIPLETURNS; gLockedMoves[gEffectBattler] = gCurrentMove; - gBattleMons[gEffectBattler].status2 |= STATUS2_UPROAR_TURN(B_UPROAR_TURNS >= GEN_5 ? 3 : ((Random() & 3) + 2)); + #if B_UPROAR_TURNS >= GEN_5 + gBattleMons[gEffectBattler].status2 |= STATUS2_UPROAR_TURN(3); + #else + gBattleMons[gEffectBattler].status2 |= STATUS2_UPROAR_TURN((Random() & 3) + 2); + #endif BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleScripting.moveEffect]; @@ -3042,9 +3117,15 @@ void SetMoveEffect(bool32 primary, u32 certain) { gBattleMons[gEffectBattler].status2 |= STATUS2_WRAPPED; if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_GRIP_CLAW) - gDisableStructs[gEffectBattler].wrapTurns = (B_BINDING_TURNS >= GEN_5) ? 7 : 5; + #if B_BINDING_TURNS >= GEN_5 + gDisableStructs[gEffectBattler].wrapTurns = 7; else - gDisableStructs[gEffectBattler].wrapTurns = (B_BINDING_TURNS >= GEN_5) ? ((Random() % 2) + 4) : ((Random() % 4) + 2); + gDisableStructs[gEffectBattler].wrapTurns = (Random() % 2) + 4; + #else + gDisableStructs[gEffectBattler].wrapTurns = 5; + else + gDisableStructs[gEffectBattler].wrapTurns = (Random() % 4) + 2; + #endif gBattleStruct->wrappedMove[gEffectBattler] = gCurrentMove; gBattleStruct->wrappedBy[gEffectBattler] = gBattlerAttacker; @@ -3091,7 +3172,7 @@ void SetMoveEffect(bool32 primary, u32 certain) flags = affectsUser; if (mirrorArmorReflected && !affectsUser) flags |= STAT_CHANGE_ALLOW_PTR; - + if (ChangeStatBuffs(SET_STAT_BUFF_VALUE(1) | STAT_BUFF_NEGATIVE, gBattleScripting.moveEffect - MOVE_EFFECT_ATK_MINUS_1 + 1, flags | STAT_CHANGE_UPDATE_MOVE_EFFECT, gBattlescriptCurrInstr + 1)) @@ -3459,8 +3540,11 @@ void SetMoveEffect(bool32 primary, u32 certain) gBattlescriptCurrInstr++; break; case MOVE_EFFECT_INCINERATE: - if ((B_INCINERATE_GEMS >= GEN_6 && GetBattlerHoldEffect(gEffectBattler, FALSE) == HOLD_EFFECT_GEMS) - || (gBattleMons[gEffectBattler].item >= FIRST_BERRY_INDEX && gBattleMons[gEffectBattler].item <= LAST_BERRY_INDEX)) + if ((gBattleMons[gEffectBattler].item >= FIRST_BERRY_INDEX && gBattleMons[gEffectBattler].item <= LAST_BERRY_INDEX) + #if B_INCINERATE_GEMS >= GEN_6 + || (GetBattlerHoldEffect(gEffectBattler, FALSE) == HOLD_EFFECT_GEMS) + #endif + ) { gLastUsedItem = gBattleMons[gEffectBattler].item; gBattleMons[gEffectBattler].item = 0; @@ -3482,14 +3566,14 @@ void SetMoveEffect(bool32 primary, u32 certain) gBattleMons[gEffectBattler].item = 0; CheckSetUnburden(gEffectBattler); gActiveBattler = gEffectBattler; - + BtlController_EmitSetMonData(BUFFER_A, REQUEST_HELDITEM_BATTLE, 0, sizeof(gBattleMons[gEffectBattler].item), &gBattleMons[gEffectBattler].item); MarkBattlerForControllerExec(gActiveBattler); - + // attacker temporarily gains their item gBattleStruct->changedItems[gBattlerAttacker] = gBattleMons[gBattlerAttacker].item; gBattleMons[gBattlerAttacker].item = gLastUsedItem; - + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_MoveEffectBugBite; } @@ -4004,13 +4088,20 @@ static void Cmd_getexp(void) gBattleMoveDamage = 0; // only give exp share bonus in later gens if the mon wasn't sent out - if ((holdEffect == HOLD_EFFECT_EXP_SHARE) && ((gBattleMoveDamage == 0) || (B_SPLIT_EXP < GEN_6))) + #if B_SPLIT_EXP < GEN_6 + if (holdEffect == HOLD_EFFECT_EXP_SHARE) gBattleMoveDamage += gExpShareExp; + #else + if (holdEffect == HOLD_EFFECT_EXP_SHARE && gBattleMoveDamage == 0) + gBattleMoveDamage += gExpShareExp; + #endif if (holdEffect == HOLD_EFFECT_LUCKY_EGG) gBattleMoveDamage = (gBattleMoveDamage * 150) / 100; - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && B_TRAINER_EXP_MULTIPLIER <= GEN_7) + #if B_TRAINER_EXP_MULTIPLIER <= GEN_7 + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) gBattleMoveDamage = (gBattleMoveDamage * 150) / 100; - #if (B_SCALED_EXP >= GEN_5) && (B_SCALED_EXP != GEN_6) + #endif + #if (B_SCALED_EXP >= GEN_5) && (B_SCALED_EXP != GEN_6) { // Note: There is an edge case where if a pokemon receives a large amount of exp, it wouldn't be properly calculated // because of multiplying by scaling factor(the value would simply be larger than an u32 can hold). Hence u64 is needed. @@ -4019,7 +4110,11 @@ static void Cmd_getexp(void) value /= sExperienceScalingFactors[gBattleMons[gBattlerFainted].level + GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_LEVEL) + 10]; gBattleMoveDamage = value + 1; } - #endif + #endif + #if B_AFFECTION_MECHANICS == TRUE + if (GetMonFriendshipScore(&gPlayerParty[gBattleStruct->expGetterMonId]) >= FRIENDSHIP_50_TO_99) + gBattleMoveDamage = (gBattleMoveDamage * 120) / 100; + #endif if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterMonId])) { @@ -4720,14 +4815,14 @@ static void Cmd_playanimation(void) gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); argumentPtr = T2_READ_PTR(gBattlescriptCurrInstr + 3); - #if B_TERRAIN_BG_CHANGE == FALSE +#if B_TERRAIN_BG_CHANGE == FALSE if (animId == B_ANIM_RESTORE_BG) { // workaround for .if not working gBattlescriptCurrInstr += 7; return; } - #endif +#endif if (animId == B_ANIM_STATS_CHANGE || animId == B_ANIM_SNATCH_MOVE @@ -4989,6 +5084,20 @@ static bool32 TryKnockOffBattleScript(u32 battlerDef) return FALSE; } +static u32 GetNextTarget(u32 moveTarget) +{ + u32 i; + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + { + if (i != gBattlerAttacker + && IsBattlerAlive(i) + && !(gBattleStruct->targetsDone[gBattlerAttacker] & gBitTable[i]) + && (GetBattlerSide(i) != GetBattlerSide(gBattlerAttacker) || moveTarget == MOVE_TARGET_FOES_AND_ALLY)) + break; + } + return i; +} + static void Cmd_moveend(void) { s32 i; @@ -5035,7 +5144,11 @@ static void Cmd_moveend(void) i = gBattlerAttacker; gBattlerAttacker = gBattlerTarget; gBattlerTarget = i; // gBattlerTarget and gBattlerAttacker are swapped in order to activate Defiant, if applicable - gBattleScripting.moveEffect = (B_KINGS_SHIELD_LOWER_ATK >= GEN_8) ? MOVE_EFFECT_ATK_MINUS_1 : MOVE_EFFECT_ATK_MINUS_2; + #if B_KINGS_SHIELD_LOWER_ATK >= GEN_8 + gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_1; + #else + gBattleScripting.moveEffect = MOVE_EFFECT_ATK_MINUS_2; + #endif BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_KingsShieldEffect; effect = 1; @@ -5257,13 +5370,13 @@ static void Cmd_moveend(void) if (gBattleStruct->skyDropTargets[targetId] == i) break; } - + // Set gBattlerAttacker to the battler id of the target gBattlerAttacker = targetId; - + // Jump to "confused due to fatigue" script gBattlescriptCurrInstr = BattleScript_ThrashConfuses; - + // Clear skyDropTargets data gBattleStruct->skyDropTargets[i] = 0xFF; gBattleStruct->skyDropTargets[targetId] = 0xFF; @@ -5380,7 +5493,8 @@ static void Cmd_moveend(void) if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) gProtectStructs[gBattlerAttacker].targetAffected = TRUE; - + + gBattleStruct->targetsDone[gBattlerAttacker] |= gBitTable[gBattlerTarget]; if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !gProtectStructs[gBattlerAttacker].chargingTurn @@ -5388,28 +5502,12 @@ static void Cmd_moveend(void) || moveTarget == MOVE_TARGET_FOES_AND_ALLY) && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { - u8 battlerId; + u32 nextTarget = GetNextTarget(moveTarget); + gHitMarker |= HITMARKER_NO_PPDEDUCT; - if (moveTarget == MOVE_TARGET_FOES_AND_ALLY) + if (nextTarget != MAX_BATTLERS_COUNT) { - gHitMarker |= HITMARKER_NO_PPDEDUCT; - for (battlerId = gBattlerTarget + 1; battlerId < gBattlersCount; battlerId++) - { - if (battlerId == gBattlerAttacker) - continue; - if (IsBattlerAlive(battlerId)) - break; - } - } - else - { - battlerId = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); - gHitMarker |= HITMARKER_NO_ATTACKSTRING; - } - - if (IsBattlerAlive(battlerId)) - { - gBattleStruct->moveTarget[gBattlerAttacker] = gBattlerTarget = battlerId; // Fix for moxie spread moves + gBattleStruct->moveTarget[gBattlerAttacker] = gBattlerTarget = nextTarget; // Fix for moxie spread moves gBattleScripting.moveendState = 0; MoveValuesCleanUp(); gBattleScripting.moveEffect = gBattleScripting.savedMoveEffect; @@ -5417,11 +5515,31 @@ static void Cmd_moveend(void) gBattlescriptCurrInstr = BattleScript_FlushMessageBox; return; } - else + // Check if the move used was actually a bounced move. If so, we need to go back to the original attacker and make sure, its move hits all 2 or 3 pokemon. + else if (gProtectStructs[gBattlerAttacker].usesBouncedMove) { - gHitMarker |= HITMARKER_NO_ATTACKSTRING; - gHitMarker &= ~HITMARKER_NO_PPDEDUCT; + u8 originalBounceTarget = gBattlerAttacker; + gBattlerAttacker = gBattleStruct->attackerBeforeBounce; + gBattleStruct->targetsDone[gBattlerAttacker] |= gBitTable[originalBounceTarget]; + gBattleStruct->targetsDone[originalBounceTarget] = 0; + + nextTarget = GetNextTarget(moveTarget); + if (nextTarget != MAX_BATTLERS_COUNT) + { + // We found another target for the original move user. + gBattleStruct->moveTarget[gBattlerAttacker] = gBattlerTarget = nextTarget; + gBattleScripting.moveendState = 0; + gBattleScripting.animTurn = 0; + gBattleScripting.animTargetsHit = 0; + MoveValuesCleanUp(); + BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); + gBattlescriptCurrInstr = BattleScript_FlushMessageBox; + return; + } } + + gHitMarker |= HITMARKER_NO_ATTACKSTRING; + gHitMarker &= ~HITMARKER_NO_PPDEDUCT; } RecordLastUsedMoveBy(gBattlerAttacker, gCurrentMove); gBattleScripting.moveendState++; @@ -5482,7 +5600,7 @@ static void Cmd_moveend(void) && GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_RED_CARD && (gSpecialStatuses[battler].physicalDmg != 0 || gSpecialStatuses[battler].specialDmg != 0) && CanBattlerSwitch(gBattlerAttacker)) - { + { gLastUsedItem = gBattleMons[battler].item; gActiveBattler = gBattleStruct->savedBattlerTarget = gBattleScripting.battler = battler; // Battler with red card gEffectBattler = gBattlerAttacker; @@ -5554,7 +5672,7 @@ static void Cmd_moveend(void) // Battle scripting is super brittle so we shall do the item exchange now (if possible) if (GetBattlerAbility(gBattlerAttacker) != ABILITY_STICKY_HOLD) StealTargetItem(gBattlerTarget, gBattlerAttacker); // Target takes attacker's item - + gEffectBattler = gBattlerAttacker; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_Pickpocket; // Includes sticky hold check to print separate string @@ -5605,17 +5723,19 @@ static void Cmd_moveend(void) BattleScriptPushCursor(); if (gBattleTypeFlags & BATTLE_TYPE_TRAINER || GetBattlerSide(i) == B_SIDE_PLAYER) { - if (B_ABILITY_POP_UP) - gBattlescriptCurrInstr = BattleScript_EmergencyExit; - else - gBattlescriptCurrInstr = BattleScript_EmergencyExitNoPopUp; + #if B_ABILITY_POP_UP == TRUE + gBattlescriptCurrInstr = BattleScript_EmergencyExit; + #else + gBattlescriptCurrInstr = BattleScript_EmergencyExitNoPopUp; + #endif } else { - if (B_ABILITY_POP_UP) - gBattlescriptCurrInstr = BattleScript_EmergencyExitWild; - else - gBattlescriptCurrInstr = BattleScript_EmergencyExitWildNoPopUp; + #if B_ABILITY_POP_UP == TRUE + gBattlescriptCurrInstr = BattleScript_EmergencyExitWild; + #else + gBattlescriptCurrInstr = BattleScript_EmergencyExitWildNoPopUp; + #endif } return; } @@ -5628,13 +5748,14 @@ static void Cmd_moveend(void) if (gSpecialStatuses[gBattlerAttacker].dancerOriginalTarget) *(gBattleStruct->moveTarget + gBattlerAttacker) = gSpecialStatuses[gBattlerAttacker].dancerOriginalTarget & 0x3; - #if B_RAMPAGE_CANCELLING >= GEN_5 + #if B_RAMPAGE_CANCELLING >= GEN_5 if (gBattleMoves[gCurrentMove].effect == EFFECT_RAMPAGE // If we're rampaging && (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) // And it is unusable && (gBattleMons[gBattlerAttacker].status2 & STATUS2_LOCK_CONFUSE) != STATUS2_LOCK_CONFUSE_TURN(1)) // And won't end this turn CancelMultiTurnMoves(gBattlerAttacker); // Cancel it - #endif + #endif + gBattleStruct->targetsDone[gBattlerAttacker] = 0; gProtectStructs[gBattlerAttacker].usesBouncedMove = FALSE; gProtectStructs[gBattlerAttacker].targetAffected = FALSE; gBattleStruct->ateBoost[gBattlerAttacker] = 0; @@ -6219,7 +6340,7 @@ static void Cmd_openpartyscreen(void) *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = PARTY_SIZE; gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]); - BtlController_EmitChoosePokemon(BUFFER_A, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]); + BtlController_EmitChoosePokemon(BUFFER_A, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + BATTLE_PARTNER(gActiveBattler)), ABILITY_NONE, gBattleStruct->battlerPartyOrders[gActiveBattler]); MarkBattlerForControllerExec(gActiveBattler); gBattlescriptCurrInstr += 6; @@ -6240,7 +6361,7 @@ static void Cmd_openpartyscreen(void) } else { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(battlerId) ^ BIT_SIDE); + gActiveBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battlerId))); if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) gActiveBattler ^= BIT_FLANK; @@ -6296,9 +6417,9 @@ static void Cmd_switchhandleorder(void) *(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleResources->bufferB[gActiveBattler][2] & 0xF0); *(gActiveBattler * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 1) = gBattleResources->bufferB[gActiveBattler][3]; - *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0); - *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleResources->bufferB[gActiveBattler][2] & 0xF0) >> 4; - *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleResources->bufferB[gActiveBattler][3]; + *((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) &= (0xF0); + *((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleResources->bufferB[gActiveBattler][2] & 0xF0) >> 4; + *((BATTLE_PARTNER(gActiveBattler)) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleResources->bufferB[gActiveBattler][3]; } else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { @@ -6438,7 +6559,7 @@ static void Cmd_switchineffects(void) else { // There is a hack here to ensure the truant counter will be 0 when the battler's next turn starts. - // The truant counter is not updated in the case where a mon switches in after a lost judgement in the battle arena. + // The truant counter is not updated in the case where a mon switches in after a lost judgment in the battle arena. if (GetBattlerAbility(gActiveBattler) == ABILITY_TRUANT && gCurrentActionFuncId != B_ACTION_USE_MOVE && !gDisableStructs[gActiveBattler].truantSwitchInHack) @@ -7109,7 +7230,7 @@ static void Cmd_removeitem(void) // Popped Air Balloon cannot be restored by any means. if (GetBattlerHoldEffect(gActiveBattler, TRUE) != HOLD_EFFECT_AIR_BALLOON) gBattleStruct->usedHeldItems[gBattlerPartyIndexes[gActiveBattler]][GetBattlerSide(gActiveBattler)] = itemId; // Remember if switched out - + gBattleMons[gActiveBattler].item = ITEM_NONE; CheckSetUnburden(gActiveBattler); @@ -7467,7 +7588,7 @@ static void Cmd_hpthresholds(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - opposingBattler = gActiveBattler ^ BIT_SIDE; + opposingBattler = BATTLE_OPPOSITE(gActiveBattler); result = gBattleMons[opposingBattler].hp * 100 / gBattleMons[opposingBattler].maxHP; if (result == 0) @@ -7495,7 +7616,7 @@ static void Cmd_hpthresholds2(void) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { gActiveBattler = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - opposingBattler = gActiveBattler ^ BIT_SIDE; + opposingBattler = BATTLE_OPPOSITE(gActiveBattler); hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBattler)); result = (hpSwitchout - gBattleMons[opposingBattler].hp) * 100 / hpSwitchout; @@ -8037,8 +8158,9 @@ static void Cmd_various(void) CancelMultiTurnMoves(gActiveBattler); break; case VARIOUS_SET_MAGIC_COAT_TARGET: + gBattleStruct->attackerBeforeBounce = gActiveBattler; gBattlerAttacker = gBattlerTarget; - side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; + side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (IsAffectedByFollowMe(gBattlerAttacker, side, gCurrentMove)) gBattlerTarget = gSideTimers[side].followmeTarget; else @@ -8103,7 +8225,7 @@ static void Cmd_various(void) break; case VARIOUS_ARENA_JUDGMENT_WINDOW: i = BattleArena_ShowJudgmentWindow(&gBattleCommunication[0]); - + // BattleArena_ShowJudgmentWindow's last state was an intermediate step. // Return without advancing the current instruction so that it will be called again. if (i == ARENA_RESULT_RUNNING) @@ -8147,10 +8269,10 @@ static void Cmd_various(void) break; case VARIOUS_ARENA_JUDGMENT_STRING: BattleStringExpandPlaceholdersToDisplayedString(gRefereeStringsTable[gBattlescriptCurrInstr[1]]); - BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TEXT); + BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGMENT_TEXT); break; case VARIOUS_ARENA_WAIT_STRING: - if (IsTextPrinterActive(ARENA_WIN_JUDGEMENT_TEXT)) + if (IsTextPrinterActive(ARENA_WIN_JUDGMENT_TEXT)) return; break; case VARIOUS_WAIT_CRY: @@ -8361,11 +8483,11 @@ static void Cmd_various(void) && !NoAliveMonsForEitherParty() && CompareStat(gBattlerAttacker, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN)) { - if (B_FELL_STINGER_STAT_RAISE >= GEN_7) - SET_STATCHANGER(STAT_ATK, 3, FALSE); - else - SET_STATCHANGER(STAT_ATK, 2, FALSE); - + #if B_FELL_STINGER_STAT_RAISE >= GEN_7 + SET_STATCHANGER(STAT_ATK, 3, FALSE); + #else + SET_STATCHANGER(STAT_ATK, 2, FALSE); + #endif PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); BattleScriptPush(gBattlescriptCurrInstr + 3); gBattlescriptCurrInstr = BattleScript_FellStingerRaisesStat; @@ -8395,7 +8517,7 @@ static void Cmd_various(void) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); else if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); - else if (gBattleMoves[gBattleMons[gBattlerTarget].moves[gBattleStruct->chosenMovePositions[gBattlerTarget]]].power == 0) + else if (IS_MOVE_STATUS(gBattleMons[gBattlerTarget].moves[gBattleStruct->chosenMovePositions[gBattlerTarget]])) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); else gBattlescriptCurrInstr += 7; @@ -8454,28 +8576,14 @@ static void Cmd_various(void) } return; case VARIOUS_TRY_QUASH: - if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) + if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) // It's true if foe is faster, has a bigger priority, or switches { - gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); + gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // This replaces the current battlescript with the "fail" script. } - else + else // If the condition is not true, it means we are faster than the foe, so we can set the quash bit { - for (i = 0; i < gBattlersCount; i++) - data[i] = gBattlerByTurnOrder[i]; - for (i = 0; i < gBattlersCount; i++) - { - if (data[i] == gBattlerTarget) - { - for (j = i + 1; j < gBattlersCount; j++) - data[i++] = data[j]; - } - else - { - gBattlerByTurnOrder[i] = data[i]; - } - } - gBattlerByTurnOrder[gBattlersCount - 1] = gBattlerTarget; - gBattlescriptCurrInstr += 7; + gProtectStructs[gBattlerTarget].quash = TRUE; + gBattlescriptCurrInstr += 7; // and then we proceed with the rest of our battlescript } return; case VARIOUS_INVERT_STAT_STAGES: @@ -8493,7 +8601,7 @@ static void Cmd_various(void) case VARIOUS_TRY_ME_FIRST: if (GetBattlerTurnOrderNum(gBattlerAttacker) > GetBattlerTurnOrderNum(gBattlerTarget)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); - else if (gBattleMoves[gBattleMons[gBattlerTarget].moves[gBattleStruct->chosenMovePositions[gBattlerTarget]]].power == 0) + else if (IS_MOVE_STATUS(gBattleMons[gBattlerTarget].moves[gBattleStruct->chosenMovePositions[gBattlerTarget]])) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); else { @@ -8568,7 +8676,7 @@ static void Cmd_various(void) } return; case VARIOUS_TRY_SOAK: - if (gBattleMons[gBattlerTarget].type1 == gBattleMoves[gCurrentMove].type + if (gBattleMons[gBattlerTarget].type1 == gBattleMoves[gCurrentMove].type && gBattleMons[gBattlerTarget].type2 == gBattleMoves[gCurrentMove].type) { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); @@ -9096,7 +9204,7 @@ static void Cmd_various(void) case VARIOUS_MAKE_INVISIBLE: if (gBattleControllerExecFlags) break; - + BtlController_EmitSpriteInvisibility(BUFFER_A, TRUE); MarkBattlerForControllerExec(gActiveBattler); break; @@ -9137,10 +9245,10 @@ static void Cmd_various(void) BtlController_EmitSetMonData(BUFFER_A, REQUEST_PPMOVE1_BATTLE + i, 0, sizeof(gBattleMons[gActiveBattler].pp[i]), &gBattleMons[gActiveBattler].pp[i]); MarkBattlerForControllerExec(gActiveBattler); } - + if (gBattleMons[gActiveBattler].pp[i] == 0 && gBattleStruct->skyDropTargets[gActiveBattler] == 0xFF) CancelMultiTurnMoves(gActiveBattler); - + gBattlescriptCurrInstr += 7; // continue } else @@ -9214,19 +9322,19 @@ static void Cmd_various(void) return; case VARIOUS_SET_SKY_DROP: gStatuses3[gBattlerTarget] |= (STATUS3_SKY_DROPPED | STATUS3_ON_AIR); - /* skyDropTargets holds the information of who is in a particular instance of Sky Drop. + /* skyDropTargets holds the information of who is in a particular instance of Sky Drop. This is needed in the case that multiple Pokemon use Sky Drop in the same turn or if the target of a Sky Drop faints while in the air.*/ gBattleStruct->skyDropTargets[gBattlerAttacker] = gBattlerTarget; gBattleStruct->skyDropTargets[gBattlerTarget] = gBattlerAttacker; - + // End any multiturn effects caused by the target except STATUS2_LOCK_CONFUSE gBattleMons[gBattlerTarget].status2 &= ~(STATUS2_MULTIPLETURNS); gBattleMons[gBattlerTarget].status2 &= ~(STATUS2_UPROAR); gBattleMons[gBattlerTarget].status2 &= ~(STATUS2_BIDE); gDisableStructs[gBattlerTarget].rolloutTimer = 0; gDisableStructs[gBattlerTarget].furyCutterCounter = 0; - + // End any Follow Me/Rage Powder effects caused by the target if (gSideTimers[GetBattlerSide(gBattlerTarget)].followmeTimer != 0 && gSideTimers[GetBattlerSide(gBattlerTarget)].followmeTarget == gBattlerTarget) gSideTimers[GetBattlerSide(gBattlerTarget)].followmeTimer = 0; @@ -9239,12 +9347,12 @@ static void Cmd_various(void) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); else { - gBattleStruct->skyDropTargets[gBattlerAttacker] = 0xFF; + gBattleStruct->skyDropTargets[gBattlerAttacker] = 0xFF; gBattleStruct->skyDropTargets[gBattlerTarget] = 0xFF; gStatuses3[gBattlerTarget] &= ~(STATUS3_SKY_DROPPED | STATUS3_ON_AIR); gBattlescriptCurrInstr += 7; } - + // Confuse target if they were in the middle of Petal Dance/Outrage/Thrash when targeted. if (gBattleMons[gBattlerTarget].status2 & STATUS2_LOCK_CONFUSE) gBattleScripting.moveEffect = (MOVE_EFFECT_CONFUSION | MOVE_EFFECT_CERTAIN); @@ -9258,7 +9366,7 @@ static void Cmd_various(void) // Clear skyDropTargets data gBattleStruct->skyDropTargets[gBattleStruct->skyDropTargets[gEffectBattler]] = 0xFF; gBattleStruct->skyDropTargets[gEffectBattler] = 0xFF; - + // If the target was in the middle of Outrage/Thrash/etc. when targeted by Sky Drop, confuse them on release and do proper animation if (gBattleMons[gEffectBattler].status2 & STATUS2_LOCK_CONFUSE && CanBeConfused(gEffectBattler)) { @@ -9331,7 +9439,7 @@ static void Cmd_various(void) count++; } } - + if (count == 0) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); // Rototiller fails else @@ -9368,19 +9476,19 @@ static void Cmd_various(void) gBattlescriptCurrInstr += 4; return; } - + gBattleScripting.battler = gEffectBattler = gBattlerTarget = gActiveBattler; // Cover all berry effect battlerId cases. e.g. ChangeStatBuffs uses target ID // Do move end berry effects for just a single battler, instead of looping through all battlers if (ItemBattleEffects(ITEMEFFECT_BATTLER_MOVE_END, gActiveBattler, FALSE)) return; - + if (gBattlescriptCurrInstr[3]) { gBattleMons[gActiveBattler].item = gBattleStruct->changedItems[gActiveBattler]; gBattleStruct->changedItems[gActiveBattler] = ITEM_NONE; gBattleResources->flags->flags[gActiveBattler] &= ~RESOURCE_FLAG_UNBURDEN; } - + gBattlescriptCurrInstr += 4; return; case VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL: @@ -9552,7 +9660,7 @@ static void Cmd_various(void) return; case VARIOUS_CAN_TAR_SHOT_WORK: // Tar Shot will fail if it's already been used on the target and its speed can't be lowered further - if (!gDisableStructs[gActiveBattler].tarShot + if (!gDisableStructs[gActiveBattler].tarShot && CompareStat(gActiveBattler, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN)) gBattlescriptCurrInstr += 7; else @@ -9650,7 +9758,7 @@ static void Cmd_various(void) case VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM: gBattleMons[gActiveBattler].item = gLastUsedItem; break; - case VARIOUS_SET_BEAK_BLAST: + case VARIOUS_SET_BEAK_BLAST: gProtectStructs[gBattlerAttacker].beakBlastCharge = TRUE; break; case VARIOUS_SWAP_SIDE_STATUSES: @@ -9944,13 +10052,16 @@ static void Cmd_manipulatedamage(void) gBattleMoveDamage *= -1; break; case DMG_RECOIL_FROM_MISS: + #if B_RECOIL_IF_MISS_DMG >= GEN_5 + gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; + #elif B_RECOIL_IF_MISS_DMG == GEN_4 + if ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleMoveDamage) + gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; + #else gBattleMoveDamage /= 2; + #endif if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if (B_RECOIL_IF_MISS_DMG >= GEN_5) - gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2; - if ((B_RECOIL_IF_MISS_DMG <= GEN_4) && ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleMoveDamage)) - gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2; break; case DMG_DOUBLED: gBattleMoveDamage *= 2; @@ -10268,7 +10379,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gActiveBattler = gBattlerAttacker; else gActiveBattler = gBattlerTarget; - + activeBattlerAbility = GetBattlerAbility(gActiveBattler); gSpecialStatuses[gActiveBattler].changedStatsBattlerId = gBattlerAttacker; @@ -10432,7 +10543,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gBattleTextBuff2[index++] = STRINGID_STATFELL; gBattleTextBuff2[index++] = STRINGID_STATFELL >> 8; gBattleTextBuff2[index] = B_BUFF_EOS; - + if (gBattleMons[gActiveBattler].statStages[statId] == MIN_STAT_STAGE) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STAT_WONT_DECREASE; @@ -10569,24 +10680,24 @@ static void Cmd_setmultihitcounter(void) { gMultiHitCounter = 5; } - else if (B_MULTI_HIT_CHANCE >= GEN_5) - { - // 2 and 3 hits: 33.3% - // 4 and 5 hits: 16.7% - gMultiHitCounter = Random() % 4; - if (gMultiHitCounter > 2) - { - gMultiHitCounter = (Random() % 3); - if (gMultiHitCounter < 2) - gMultiHitCounter = 2; - else - gMultiHitCounter = 3; - } - else - gMultiHitCounter += 3; - } else { + #if B_MULTI_HIT_CHANCE >= GEN_5 + // Based on Gen 5's odds + // 35% for 2 hits + // 35% for 3 hits + // 15% for 4 hits + // 15% for 5 hits + gMultiHitCounter = Random() % 100; + if (gMultiHitCounter < 35) + gMultiHitCounter = 2; + else if (gMultiHitCounter < 35 + 35) + gMultiHitCounter = 3; + else if (gMultiHitCounter < 35 + 35 + 15) + gMultiHitCounter = 4; + else + gMultiHitCounter = 5; + #else // 2 and 3 hits: 37.5% // 4 and 5 hits: 12.5% gMultiHitCounter = Random() % 4; @@ -10594,6 +10705,7 @@ static void Cmd_setmultihitcounter(void) gMultiHitCounter = (Random() % 4) + 2; else gMultiHitCounter += 2; + #endif } } @@ -10619,9 +10731,9 @@ static void Cmd_forcerandomswitch(void) struct Pokemon *party = NULL; s32 validMons = 0; s32 minNeeded; - + bool32 redCardForcedSwitch = FALSE; - + // Red card checks against wild pokemon. If we have reached here, the player has a mon to switch into // Red card swaps attacker with target to get the animation correct, so here we check attacker which is really the target. Thanks GF... if (gBattleScripting.switchCase == B_SWITCH_RED_CARD @@ -10664,7 +10776,7 @@ static void Cmd_forcerandomswitch(void) && GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) || redCardForcedSwitch ) - { + { if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) party = gPlayerParty; else @@ -10677,7 +10789,7 @@ static void Cmd_forcerandomswitch(void) monsCount = 6; minNeeded = 2; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; - battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; + battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } else if ((gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) @@ -10696,7 +10808,7 @@ static void Cmd_forcerandomswitch(void) monsCount = PARTY_SIZE / 2; minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; - battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; + battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK)) @@ -10714,7 +10826,7 @@ static void Cmd_forcerandomswitch(void) monsCount = PARTY_SIZE / 2; minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; - battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; + battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) { @@ -10741,7 +10853,7 @@ static void Cmd_forcerandomswitch(void) minNeeded = 1; } battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; - battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; + battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -10750,7 +10862,7 @@ static void Cmd_forcerandomswitch(void) monsCount = PARTY_SIZE; minNeeded = 2; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; - battler1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK]; + battler1PartyId = gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerTarget)]; } else { @@ -10803,7 +10915,7 @@ static void Cmd_forcerandomswitch(void) || (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)) { SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0); - SwitchPartyOrderLinkMulti(gBattlerTarget ^ BIT_FLANK, i, 1); + SwitchPartyOrderLinkMulti(BATTLE_PARTNER(gBattlerTarget), i, 1); } if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) @@ -10987,10 +11099,10 @@ static void Cmd_tryKO(void) else { u16 odds = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattlerAttacker].level - gBattleMons[gBattlerTarget].level); - #if B_SHEER_COLD_ACC >= GEN_7 - if (gCurrentMove == MOVE_SHEER_COLD && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_ICE)) - odds -= 10; - #endif + #if B_SHEER_COLD_ACC >= GEN_7 + if (gCurrentMove == MOVE_SHEER_COLD && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_ICE)) + odds -= 10; + #endif if (Random() % 100 + 1 < odds && gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) lands = TRUE; } @@ -11008,6 +11120,13 @@ static void Cmd_tryKO(void) gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBattlerTarget].item; } + #if B_AFFECTION_MECHANICS == TRUE + else if (gSpecialStatuses[gBattlerTarget].affectionEndured) + { + gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; + gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED_AFFECTION; + } + #endif else { gBattleMoveDamage = gBattleMons[gBattlerTarget].hp; @@ -11172,7 +11291,7 @@ static void Cmd_updatestatusicon(void) } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { BtlController_EmitStatusIconUpdate(BUFFER_A, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2); @@ -11354,10 +11473,11 @@ static void Cmd_dmgtolevel(void) static void Cmd_psywavedamageeffect(void) { s32 randDamage; - if (B_PSYWAVE_DMG >= GEN_6) - randDamage = (Random() % 101); - else - randDamage = (Random() % 11) * 10; +#if B_PSYWAVE_DMG >= GEN_6 + randDamage = (Random() % 101); +#else + randDamage = (Random() % 11) * 10; +#endif gBattleMoveDamage = gBattleMons[gBattlerAttacker].level * (randDamage + 50) / 100; gBattlescriptCurrInstr++; } @@ -11428,12 +11548,13 @@ static void Cmd_disablelastusedattack(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].moves[i]) gDisableStructs[gBattlerTarget].disabledMove = gBattleMons[gBattlerTarget].moves[i]; - if (B_DISABLE_TURNS == GEN_3) - gDisableStructs[gBattlerTarget].disableTimer = (Random() & 3) + 2; - else if (B_DISABLE_TURNS == GEN_4) - gDisableStructs[gBattlerTarget].disableTimer = (Random() & 3) + 4; - else - gDisableStructs[gBattlerTarget].disableTimer = 4; + #if B_DISABLE_TURNS == GEN_3 + gDisableStructs[gBattlerTarget].disableTimer = (Random() & 3) + 2; + #elif B_DISABLE_TURNS == GEN_4 + gDisableStructs[gBattlerTarget].disableTimer = (Random() & 3) + 4; + #else + gDisableStructs[gBattlerTarget].disableTimer = 4; + #endif gDisableStructs[gBattlerTarget].disableTimerStartValue = gDisableStructs[gBattlerTarget].disableTimer; // used to save the random amount of turns? gBattlescriptCurrInstr += 5; } @@ -11711,7 +11832,11 @@ static void Cmd_settailwind(void) { gSideStatuses[side] |= SIDE_STATUS_TAILWIND; gSideTimers[side].tailwindBattlerId = gBattlerAttacker; - gSideTimers[side].tailwindTimer = (B_TAILWIND_TURNS >= GEN_5) ? 4 : 3; + #if B_TAILWIND_TURNS >= GEN_5 + gSideTimers[side].tailwindTimer = 4; + #else + gSideTimers[side].tailwindTimer = 3; + #endif gBattlescriptCurrInstr += 5; } else @@ -11810,7 +11935,7 @@ static void Cmd_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] |= B_MSG_BELL_SOUNDPROOF_ATTACKER; } - gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); + gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) @@ -11860,7 +11985,7 @@ static void Cmd_healpartystatus(void) gBattleMons[gBattlerAttacker].status1 = 0; gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])) { @@ -11899,7 +12024,7 @@ static void Cmd_cursetarget(void) static void Cmd_trysetspikes(void) { - u8 targetSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; + u8 targetSide = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (gSideTimers[targetSide].spikesAmount == 3) { @@ -12189,7 +12314,7 @@ static void Cmd_maxattackhalvehp(void) if (!(gBattleMons[gBattlerAttacker].maxHP / 2)) halfHp = 1; - + // Belly Drum fails if the user's current HP is less than half its maximum, or if the user's Attack is already at +6 (even if the user has Contrary). if (gBattleMons[gBattlerAttacker].statStages[STAT_ATK] < MAX_STAT_STAGE && gBattleMons[gBattlerAttacker].hp > halfHp) @@ -12607,7 +12732,7 @@ static void Cmd_settaunt(void) static void Cmd_trysethelpinghand(void) { - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gBattlerTarget]) @@ -12634,7 +12759,7 @@ static void Cmd_tryswapitems(void) | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SECRET_BASE | BATTLE_TYPE_RECORDED_LINK - #if B_TRAINERS_KNOCK_OFF_ITEMS + #if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE | BATTLE_TYPE_TRAINER #endif )))) @@ -12685,7 +12810,7 @@ static void Cmd_tryswapitems(void) gBattleMons[gBattlerAttacker].item = ITEM_NONE; gBattleMons[gBattlerTarget].item = oldItemAtk; - + RecordItemEffectBattle(gBattlerAttacker, 0); RecordItemEffectBattle(gBattlerTarget, ItemId_GetHoldEffect(oldItemAtk)); @@ -12704,7 +12829,7 @@ static void Cmd_tryswapitems(void) PREPARE_ITEM_BUFFER(gBattleTextBuff1, *newItemAtk) PREPARE_ITEM_BUFFER(gBattleTextBuff2, oldItemAtk) - + if (!(sideAttacker == sideTarget && IsPartnerMonFromSameTrainer(gBattlerAttacker))) { // if targeting your own side and you aren't in a multi battle, don't save items as stolen @@ -12773,15 +12898,15 @@ static void Cmd_trywish(void) break; case 1: // heal effect PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattlerTarget, gWishFutureKnock.wishPartyId[gBattlerTarget]) - #if B_WISH_HP_SOURCE >= GEN_5 - if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) - gBattleMoveDamage = max(1, GetMonData(&gPlayerParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); - else - gBattleMoveDamage = max(1, GetMonData(&gEnemyParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); - #else - gBattleMoveDamage = max(1, gBattleMons[gBattlerTarget].maxHP / 2); - #endif - + #if B_WISH_HP_SOURCE >= GEN_5 + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) + gBattleMoveDamage = max(1, GetMonData(&gPlayerParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); + else + gBattleMoveDamage = max(1, GetMonData(&gEnemyParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); + #else + gBattleMoveDamage = max(1, gBattleMons[gBattlerTarget].maxHP / 2); + #endif + gBattleMoveDamage *= -1; if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2); @@ -13177,48 +13302,43 @@ u16 GetSecretPowerMoveEffect(void) } } else - { + { switch (gBattleTerrain) { - case BATTLE_TERRAIN_GRASS: - #if B_SECRET_POWER_EFFECT >= GEN_4 - moveEffect = MOVE_EFFECT_SLEEP; - #else - moveEffect = MOVE_EFFECT_POISON; - #endif - break; + #if B_SECRET_POWER_EFFECT >= GEN_6 + case BATTLE_TERRAIN_GRASS: moveEffect = MOVE_EFFECT_SLEEP; break; + case BATTLE_TERRAIN_UNDERWATER: moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; + case BATTLE_TERRAIN_POND: moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; + case BATTLE_TERRAIN_MOUNTAIN: moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; + case BATTLE_TERRAIN_PUDDLE: moveEffect = MOVE_EFFECT_SPD_MINUS_1; break; + #elif B_SECRET_POWER_EFFECT >= GEN_5 + case BATTLE_TERRAIN_GRASS: moveEffect = MOVE_EFFECT_SLEEP; break; + case BATTLE_TERRAIN_UNDERWATER: moveEffect = MOVE_EFFECT_DEF_MINUS_1; break; + case BATTLE_TERRAIN_POND: moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; + case BATTLE_TERRAIN_MOUNTAIN: moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; + case BATTLE_TERRAIN_PUDDLE: moveEffect = MOVE_EFFECT_SPD_MINUS_1; break; + #elif B_SECRET_POWER_EFFECT >= GEN_4 + case BATTLE_TERRAIN_GRASS: moveEffect = MOVE_EFFECT_SLEEP; break; + case BATTLE_TERRAIN_UNDERWATER: moveEffect = MOVE_EFFECT_DEF_MINUS_1; break; + case BATTLE_TERRAIN_POND: moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; + case BATTLE_TERRAIN_MOUNTAIN: moveEffect = MOVE_EFFECT_FLINCH; break; + case BATTLE_TERRAIN_PUDDLE: moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; + #else + case BATTLE_TERRAIN_GRASS: moveEffect = MOVE_EFFECT_POISON; break; + case BATTLE_TERRAIN_UNDERWATER: moveEffect = MOVE_EFFECT_DEF_MINUS_1; break; + case BATTLE_TERRAIN_POND: moveEffect = MOVE_EFFECT_SPD_MINUS_1; break; + case BATTLE_TERRAIN_MOUNTAIN: moveEffect = MOVE_EFFECT_CONFUSION; break; + case BATTLE_TERRAIN_PUDDLE: moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; + #endif case BATTLE_TERRAIN_LONG_GRASS: moveEffect = MOVE_EFFECT_SLEEP; break; case BATTLE_TERRAIN_SAND: moveEffect = MOVE_EFFECT_ACC_MINUS_1; break; - case BATTLE_TERRAIN_UNDERWATER: - #if B_SECRET_POWER_EFFECT >= GEN_6 - moveEffect = MOVE_EFFECT_ATK_MINUS_1; - #else - moveEffect = MOVE_EFFECT_DEF_MINUS_1; - #endif - break; case BATTLE_TERRAIN_WATER: moveEffect = MOVE_EFFECT_ATK_MINUS_1; break; - case BATTLE_TERRAIN_POND: - #if B_SECRET_POWER_EFFECT >= GEN_4 - moveEffect = MOVE_EFFECT_ATK_MINUS_1; - #else - moveEffect = MOVE_EFFECT_SPD_MINUS_1; - #endif - break; - case BATTLE_TERRAIN_MOUNTAIN: - #if B_SECRET_POWER_EFFECT >= GEN_5 - moveEffect = MOVE_EFFECT_ACC_MINUS_1; - #elif B_SECRET_POWER_EFFECT == GEN_4 - moveEffect = MOVE_EFFECT_FLINCH; - #else - moveEffect = MOVE_EFFECT_CONFUSION; - #endif - break; case BATTLE_TERRAIN_CAVE: case BATTLE_TERRAIN_BURIAL_GROUND: case BATTLE_TERRAIN_SPACE: @@ -13230,13 +13350,6 @@ u16 GetSecretPowerMoveEffect(void) case BATTLE_TERRAIN_SWAMP: moveEffect = MOVE_EFFECT_SPD_MINUS_1; break; - case BATTLE_TERRAIN_PUDDLE: - #if B_SECRET_POWER_EFFECT >= GEN_5 - moveEffect = MOVE_EFFECT_SPD_MINUS_1; - #else - moveEffect = MOVE_EFFECT_ACC_MINUS_1; - #endif - break; case BATTLE_TERRAIN_SNOW: case BATTLE_TERRAIN_ICE: moveEffect = MOVE_EFFECT_FREEZE; @@ -13273,10 +13386,7 @@ static void Cmd_pickup(void) species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); - if (GetMonData(&gPlayerParty[i], MON_DATA_ABILITY_NUM)) - ability = gBaseStats[species].abilities[1]; - else - ability = gBaseStats[species].abilities[0]; + ability = gBaseStats[species].abilities[GetMonData(&gPlayerParty[i], MON_DATA_ABILITY_NUM)]; if (ability == ABILITY_PICKUP && species != SPECIES_NONE @@ -13312,10 +13422,7 @@ static void Cmd_pickup(void) if (lvlDivBy10 > 9) lvlDivBy10 = 9; - if (GetMonData(&gPlayerParty[i], MON_DATA_ABILITY_NUM)) - ability = gBaseStats[species].abilities[1]; - else - ability = gBaseStats[species].abilities[0]; + ability = gBaseStats[species].abilities[GetMonData(&gPlayerParty[i], MON_DATA_ABILITY_NUM)]; if (ability == ABILITY_PICKUP && species != SPECIES_NONE @@ -13400,7 +13507,7 @@ static void Cmd_settypebasedhalvers(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEAKEN_ELECTRIC; worked = TRUE; } - #else + #else if (!(gStatuses4[gBattlerAttacker] & STATUS4_MUD_SPORT)) { gStatuses4[gBattlerAttacker] |= STATUS4_MUD_SPORT; @@ -13422,7 +13529,7 @@ static void Cmd_settypebasedhalvers(void) #else if (!(gStatuses4[gBattlerAttacker] & STATUS4_WATER_SPORT)) { - gStatuses4[gBattlerAttacker] |= v; + gStatuses4[gBattlerAttacker] |= STATUS4_WATER_SPORT; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEAKEN_FIRE; worked = TRUE; } @@ -13439,23 +13546,25 @@ bool32 DoesSubstituteBlockMove(u8 battlerAtk, u8 battlerDef, u32 move) { if (!(gBattleMons[battlerDef].status2 & STATUS2_SUBSTITUTE)) return FALSE; - else if (gBattleMoves[move].flags & FLAG_SOUND && B_SOUND_SUBSTITUTE >= GEN_6) +#if B_SOUND_SUBSTITUTE >= GEN_6 + else if (gBattleMoves[move].flags & FLAG_SOUND) + return FALSE; +#endif + else if (gBattleMoves[move].flags & FLAG_HIT_IN_SUBSTITUTE) return FALSE; else if (GetBattlerAbility(battlerAtk) == ABILITY_INFILTRATOR) return FALSE; - else if (gBattleMoves[move].flags & FLAG_HIT_IN_SUBSTITUTE) - return FALSE; else return TRUE; } bool32 DoesDisguiseBlockMove(u8 battlerAtk, u8 battlerDef, u32 move) { - if (GetBattlerAbility(battlerDef) != ABILITY_DISGUISE - || gBattleMons[battlerDef].species != SPECIES_MIMIKYU + if (gBattleMons[battlerDef].species != SPECIES_MIMIKYU || gBattleMons[battlerDef].status2 & STATUS2_TRANSFORMED - || gBattleMoves[move].power == 0 - || gHitMarker & HITMARKER_IGNORE_DISGUISE) + || IS_MOVE_STATUS(move) + || gHitMarker & HITMARKER_IGNORE_DISGUISE + || GetBattlerAbility(battlerDef) != ABILITY_DISGUISE) return FALSE; else return TRUE; @@ -13537,7 +13646,7 @@ static void Cmd_settypetoterrain(void) // Unused static void Cmd_pursuitdoubles(void) { - gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK); + gActiveBattler = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) @@ -13575,20 +13684,20 @@ static void Cmd_removelightscreenreflect(void) { u8 side; bool32 failed; - - #if B_BRICK_BREAK >= GEN_4 - // From Gen 4 onwards, Brick Break can remove screens on the user's side if used on an ally - side = GetBattlerSide(gBattlerTarget); - #else - side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; - #endif - - #if B_BRICK_BREAK >= GEN_5 - failed = (gMoveResultFlags & MOVE_RESULT_NO_EFFECT); - #else - failed = FALSE; - #endif - + +#if B_BRICK_BREAK >= GEN_4 +// From Gen 4 onwards, Brick Break can remove screens on the user's side if used on an ally + side = GetBattlerSide(gBattlerTarget); +#else + side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; +#endif + +#if B_BRICK_BREAK >= GEN_5 + failed = (gMoveResultFlags & MOVE_RESULT_NO_EFFECT); +#else + failed = FALSE; +#endif + if (!failed && (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer @@ -13647,7 +13756,7 @@ static void Cmd_handleballthrow(void) { u32 odds, i; u8 catchRate; - + gLastThrownBall = gLastUsedItem; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) catchRate = gBattleStruct->safariCatchFactor * 1275 / 100; @@ -13667,79 +13776,82 @@ static void Cmd_handleballthrow(void) { case ITEM_ULTRA_BALL: ballMultiplier = 20; + break; + #if B_SPORT_BALL_MODIFIER <= GEN_7 + case ITEM_SPORT_BALL: + #endif case ITEM_GREAT_BALL: case ITEM_SAFARI_BALL: - case ITEM_SPORT_BALL: ballMultiplier = 15; + break; case ITEM_NET_BALL: if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_WATER) || IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_BUG)) - #if B_NET_BALL_MODIFIER >= GEN_7 - ballMultiplier = 50; - #else - ballMultiplier = 30; - #endif + #if B_NET_BALL_MODIFIER >= GEN_7 + ballMultiplier = 35; + #else + ballMultiplier = 30; + #endif break; case ITEM_DIVE_BALL: + if (GetCurrentMapType() == MAP_TYPE_UNDERWATER #if B_DIVE_BALL_MODIFIER >= GEN_4 - if (GetCurrentMapType() == MAP_TYPE_UNDERWATER || gIsFishingEncounter || gIsSurfingEncounter) - ballMultiplier = 35; - #else - if (GetCurrentMapType() == MAP_TYPE_UNDERWATER) - ballMultiplier = 35; + || gIsFishingEncounter || gIsSurfingEncounter #endif + ) + ballMultiplier = 35; break; case ITEM_NEST_BALL: - #if B_NEST_BALL_MODIFIER >= GEN_6 - //((41 - Pokémon's level) ÷ 10)× if Pokémon's level is between 1 and 29, 1× otherwise. - if (gBattleMons[gBattlerTarget].level < 30) - ballMultiplier = 41 - gBattleMons[gBattlerTarget].level; - #elif B_NEST_BALL_MODIFIER == GEN_5 - //((41 - Pokémon's level) ÷ 10)×, minimum 1× - if (gBattleMons[gBattlerTarget].level < 31) - ballMultiplier = 41 - gBattleMons[gBattlerTarget].level; - #else - //((40 - Pokémon's level) ÷ 10)×, minimum 1× - if (gBattleMons[gBattlerTarget].level < 40) - { - ballMultiplier = 40 - gBattleMons[gBattlerTarget].level; - if (ballMultiplier <= 9) - ballMultiplier = 10; - } - #endif + #if B_NEST_BALL_MODIFIER >= GEN_6 + //((41 - Pokémon's level) ÷ 10)× if Pokémon's level is between 1 and 29, 1× otherwise. + if (gBattleMons[gBattlerTarget].level < 30) + ballMultiplier = 41 - gBattleMons[gBattlerTarget].level; + #elif B_NEST_BALL_MODIFIER == GEN_5 + //((41 - Pokémon's level) ÷ 10)×, minimum 1× + if (gBattleMons[gBattlerTarget].level < 31) + ballMultiplier = 41 - gBattleMons[gBattlerTarget].level; + #else + //((40 - Pokémon's level) ÷ 10)×, minimum 1× + if (gBattleMons[gBattlerTarget].level < 40) + { + ballMultiplier = 40 - gBattleMons[gBattlerTarget].level; + if (ballMultiplier <= 9) + ballMultiplier = 10; + } + #endif break; case ITEM_REPEAT_BALL: - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), FLAG_GET_CAUGHT)) - #if B_REPEAT_BALL_MODIFIER >= GEN_7 - ballMultiplier = 35; - #else - ballMultiplier = 30; - #endif - break; - case ITEM_TIMER_BALL: - #if B_TIMER_BALL_MODIFIER >= GEN_5 - ballMultiplier = (gBattleResults.battleTurnCounter * 3) + 10; + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), FLAG_GET_CAUGHT)) + #if B_REPEAT_BALL_MODIFIER >= GEN_7 + ballMultiplier = 35; #else - ballMultiplier = gBattleResults.battleTurnCounter + 10; + ballMultiplier = 30; #endif + break; + case ITEM_TIMER_BALL: + #if B_TIMER_BALL_MODIFIER >= GEN_5 + ballMultiplier = (gBattleResults.battleTurnCounter * 3) + 10; + #else + ballMultiplier = gBattleResults.battleTurnCounter + 10; + #endif if (ballMultiplier > 40) ballMultiplier = 40; break; case ITEM_DUSK_BALL: RtcCalcLocalTime(); if ((gLocalTime.hours >= 20 && gLocalTime.hours <= 3) || gMapHeader.cave || gMapHeader.mapType == MAP_TYPE_UNDERGROUND) - #if B_DUSK_BALL_MODIFIER >= GEN_7 - ballMultiplier = 30; - #else - ballMultiplier = 35; - #endif + #if B_DUSK_BALL_MODIFIER >= GEN_7 + ballMultiplier = 30; + #else + ballMultiplier = 35; + #endif break; case ITEM_QUICK_BALL: if (gBattleResults.battleTurnCounter == 0) - #if B_QUICK_BALL_MODIFIER >= GEN_5 - ballMultiplier = 50; - #else - ballMultiplier = 40; - #endif + #if B_QUICK_BALL_MODIFIER >= GEN_5 + ballMultiplier = 50; + #else + ballMultiplier = 40; + #endif break; case ITEM_LEVEL_BALL: if (gBattleMons[gBattlerAttacker].level >= 4 * gBattleMons[gBattlerTarget].level) @@ -13751,11 +13863,11 @@ static void Cmd_handleballthrow(void) break; case ITEM_LURE_BALL: if (gIsFishingEncounter) - #if B_LURE_BALL_MODIFIER >= GEN_7 - ballMultiplier = 50; - #else - ballMultiplier = 30; - #endif + #if B_LURE_BALL_MODIFIER >= GEN_7 + ballMultiplier = 50; + #else + ballMultiplier = 30; + #endif break; case ITEM_MOON_BALL: for (i = 0; i < EVOS_PER_MON; i++) @@ -13781,44 +13893,44 @@ static void Cmd_handleballthrow(void) break; case ITEM_HEAVY_BALL: i = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1); - #if B_HEAVY_BALL_MODIFIER >= GEN_7 - if (i < 1000) - ballAddition = -20; - else if (i < 2000) - ballAddition = 0; - else if (i < 3000) - ballAddition = 20; - else - ballAddition = 30; - #elif B_HEAVY_BALL_MODIFIER >= GEN_4 - if (i < 2048) - ballAddition = -20; - else if (i < 3072) - ballAddition = 20; - else if (i < 4096) - ballAddition = 30; - else - ballAddition = 40; - #else - if (i < 1024) - ballAddition = -20; - else if (i < 2048) - ballAddition = 0; - else if (i < 3072) - ballAddition = 20; - else if (i < 4096) - ballAddition = 30; - else - ballAddition = 40; - #endif + #if B_HEAVY_BALL_MODIFIER >= GEN_7 + if (i < 1000) + ballAddition = -20; + else if (i < 2000) + ballAddition = 0; + else if (i < 3000) + ballAddition = 20; + else + ballAddition = 30; + #elif B_HEAVY_BALL_MODIFIER >= GEN_4 + if (i < 2048) + ballAddition = -20; + else if (i < 3072) + ballAddition = 20; + else if (i < 4096) + ballAddition = 30; + else + ballAddition = 40; + #else + if (i < 1024) + ballAddition = -20; + else if (i < 2048) + ballAddition = 0; + else if (i < 3072) + ballAddition = 20; + else if (i < 4096) + ballAddition = 30; + else + ballAddition = 40; + #endif break; case ITEM_DREAM_BALL: - #if B_DREAM_BALL_MODIFIER >= GEN_8 - if (gBattleMons[gBattlerTarget].status1 & STATUS1_SLEEP || GetBattlerAbility(gBattlerTarget) == ABILITY_COMATOSE) - ballMultiplier = 40; - #else - ballMultiplier = 10; - #endif + #if B_DREAM_BALL_MODIFIER >= GEN_8 + if (gBattleMons[gBattlerTarget].status1 & STATUS1_SLEEP || GetBattlerAbility(gBattlerTarget) == ABILITY_COMATOSE) + ballMultiplier = 40; + #else + ballMultiplier = 10; + #endif break; case ITEM_BEAST_BALL: ballMultiplier = 1; @@ -13870,13 +13982,13 @@ static void Cmd_handleballthrow(void) u8 shakes; u8 maxShakes; - gBattleSpritesDataPtr->animationData->isCriticalCapture = 0; - gBattleSpritesDataPtr->animationData->criticalCaptureSuccess = 0; + gBattleSpritesDataPtr->animationData->isCriticalCapture = FALSE; + gBattleSpritesDataPtr->animationData->criticalCaptureSuccess = FALSE; if (CriticalCapture(odds)) { maxShakes = BALL_1_SHAKE; // critical capture doesn't guarantee capture - gBattleSpritesDataPtr->animationData->isCriticalCapture = 1; + gBattleSpritesDataPtr->animationData->isCriticalCapture = TRUE; } else { @@ -13900,7 +14012,7 @@ static void Cmd_handleballthrow(void) if (shakes == maxShakes) // mon caught, copy of the code above { if (IsCriticalCapture()) - gBattleSpritesDataPtr->animationData->criticalCaptureSuccess = 1; + gBattleSpritesDataPtr->animationData->criticalCaptureSuccess = TRUE; UndoFormChange(gBattlerPartyIndexes[gBattlerTarget], GET_BATTLER_SIDE(gBattlerTarget), FALSE); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; @@ -14210,13 +14322,11 @@ static const u16 sTelekinesisBanList[] = { SPECIES_DIGLETT, SPECIES_DUGTRIO, -// #ifdef NEW_POKEMON SPECIES_DIGLETT_ALOLAN, SPECIES_DUGTRIO_ALOLAN, SPECIES_SANDYGAST, SPECIES_PALOSSAND, SPECIES_GENGAR_MEGA, -// #endif }; bool32 IsTelekinesisBannedSpecies(u16 species) @@ -14354,33 +14464,33 @@ static void Cmd_metalburstdamagecalculator(void) static bool32 CriticalCapture(u32 odds) { - #if B_CRITICAL_CAPTURE == TRUE - u32 numCaught = GetNationalPokedexCount(FLAG_GET_CAUGHT); +#if B_CRITICAL_CAPTURE == TRUE + u32 numCaught = GetNationalPokedexCount(FLAG_GET_CAUGHT); - if (numCaught <= (NATIONAL_DEX_COUNT * 30) / 650) - odds = 0; - else if (numCaught <= (NATIONAL_DEX_COUNT * 150) / 650) - odds /= 2; - else if (numCaught <= (NATIONAL_DEX_COUNT * 300) / 650) - ; // odds = (odds * 100) / 100; - else if (numCaught <= (NATIONAL_DEX_COUNT * 450) / 650) - odds = (odds * 150) / 100; - else if (numCaught <= (NATIONAL_DEX_COUNT * 600) / 650) - odds *= 2; - else - odds = (odds * 250) / 100; + if (numCaught <= (NATIONAL_DEX_COUNT * 30) / 650) + odds = 0; + else if (numCaught <= (NATIONAL_DEX_COUNT * 150) / 650) + odds /= 2; + else if (numCaught <= (NATIONAL_DEX_COUNT * 300) / 650) + ; // odds = (odds * 100) / 100; + else if (numCaught <= (NATIONAL_DEX_COUNT * 450) / 650) + odds = (odds * 150) / 100; + else if (numCaught <= (NATIONAL_DEX_COUNT * 600) / 650) + odds *= 2; + else + odds = (odds * 250) / 100; - #ifdef ITEM_CATCHING_CHARM - if (CheckBagHasItem(ITEM_CATCHING_CHARM, 1)) - odds = (odds * (100 + B_CATCHING_CHARM_BOOST)) / 100; - #endif - - odds /= 6; - if ((Random() % 255) < odds) - return TRUE; - - return FALSE; - #else - return FALSE; + #ifdef ITEM_CATCHING_CHARM + if (CheckBagHasItem(ITEM_CATCHING_CHARM, 1)) + odds = (odds * (100 + B_CATCHING_CHARM_BOOST)) / 100; #endif + + odds /= 6; + if ((Random() % 255) < odds) + return TRUE; + + return FALSE; +#else + return FALSE; +#endif } diff --git a/src/battle_tv.c b/src/battle_tv.c index b6647b116..19d3eba8d 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -1435,7 +1435,7 @@ static void TrySetBattleSeminarShow(void) return; else if (gBattleTypeFlags & (BATTLE_TYPE_PALACE | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)) return; - else if (gBattleMoves[gBattleMons[gBattlerAttacker].moves[gMoveSelectionCursor[gBattlerAttacker]]].power == 0) + else if (IS_MOVE_STATUS(gBattleMons[gBattlerAttacker].moves[gMoveSelectionCursor[gBattlerAttacker]])) return; i = 0; @@ -1496,7 +1496,7 @@ static void TrySetBattleSeminarShow(void) static bool8 ShouldCalculateDamage(u16 moveId, s32 *dmg, u16 *powerOverride) { - if (gBattleMoves[moveId].power == 0) + if (IS_MOVE_STATUS(moveId)) { *dmg = 0; return FALSE; diff --git a/src/battle_util.c b/src/battle_util.c index 38414c0e7..16d6d4770 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -45,6 +45,7 @@ #include "constants/species.h" #include "constants/trainers.h" #include "constants/weather.h" +#include "constants/pokemon.h" extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; @@ -57,6 +58,7 @@ functions instead of at the top of the file with the other declarations. static bool32 TryRemoveScreens(u8 battler); static bool32 IsUnnerveAbilityOnOpposingSide(u8 battlerId); +static u8 GetFlingPowerFromItemId(u16 itemId); extern const u8 *const gBattleScriptsForMoveEffects[]; extern const u8 *const gBattlescriptsForRunningByItem[]; @@ -294,7 +296,7 @@ void HandleAction_UseMove(void) { gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; } - + // check z move used if (gBattleStruct->zmove.toBeUsed[gBattlerAttacker] != MOVE_NONE && !IS_MOVE_STATUS(gCurrentMove)) { @@ -314,7 +316,7 @@ void HandleAction_UseMove(void) GET_MOVE_TYPE(gChosenMove, moveType); // choose target - side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; + side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (IsAffectedByFollowMe(gBattlerAttacker, side, gCurrentMove) && moveTarget == MOVE_TARGET_SELECTED && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)) @@ -380,13 +382,13 @@ void HandleAction_UseMove(void) { if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); } else { - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE); + gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker))); if (!IsBattlerAlive(gBattlerTarget)) - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); } } } @@ -395,7 +397,7 @@ void HandleAction_UseMove(void) u16 battlerAbility; gActiveBattler = gBattlerByTurnOrder[var]; battlerAbility = GetBattlerAbility(gActiveBattler); - + RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability); if (battlerAbility == ABILITY_LIGHTNING_ROD) gSpecialStatuses[gActiveBattler].lightningRodRedirected = TRUE; @@ -425,7 +427,7 @@ void HandleAction_UseMove(void) if (gAbsentBattlerFlags & gBitTable[gBattlerTarget] && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); } } else if (moveTarget == MOVE_TARGET_ALLY) @@ -453,13 +455,13 @@ void HandleAction_UseMove(void) { if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); } else { - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE); + gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker))); if (!IsBattlerAlive(gBattlerTarget)) - gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK); + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); } } } @@ -909,7 +911,7 @@ void HandleAction_ActionFinished(void) gBattleCommunication[4] = 0; gBattleScripting.multihitMoveEffect = 0; gBattleResources->battleScriptsStack->size = 0; - + #if B_RECALC_TURN_AFTER_ACTIONS >= GEN_8 // 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 @@ -930,7 +932,7 @@ void HandleAction_ActionFinished(void) { if (GetWhoStrikesFirst(battler1, battler2, TRUE)) // If the actions chosen are switching, we recalc order but ignoring the moves SwapTurnOrder(i, j); - } + } } } #endif @@ -1463,20 +1465,20 @@ void CancelMultiTurnMoves(u8 battler) // Clear battler's semi-invulnerable bits if they are not held by Sky Drop. if (!(gStatuses3[battler] & STATUS3_SKY_DROPPED)) gStatuses3[battler] &= ~(STATUS3_SEMI_INVULNERABLE); - + // Check to see if this Pokemon was in the middle of using Sky Drop. If so, release the target. if (gBattleStruct->skyDropTargets[battler] != 0xFF && !(gStatuses3[battler] & STATUS3_SKY_DROPPED)) { // Get the target's battler id u8 otherSkyDropper = gBattleStruct->skyDropTargets[battler]; - + // Clears sky_dropped and on_air statuses gStatuses3[otherSkyDropper] &= ~(STATUS3_SKY_DROPPED | STATUS3_ON_AIR); - + // Makes both attacker and target's sprites visible gSprites[gBattlerSpriteIds[battler]].invisible = FALSE; gSprites[gBattlerSpriteIds[otherSkyDropper]].invisible = FALSE; - + // If target was sky dropped in the middle of Outrage/Thrash/Petal Dance, // confuse them upon release and display "confused by fatigue" message & animation. // Don't do this if this CancelMultiTurnMoves is caused by falling asleep via Yawn. @@ -1764,7 +1766,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } } - if (!gBattleStruct->zmove.active && gDisableStructs[gActiveBattler].tauntTimer != 0 && gBattleMoves[move].power == 0) + if (!gBattleStruct->zmove.active && gDisableStructs[gActiveBattler].tauntTimer != 0 && IS_MOVE_STATUS(move)) { gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) @@ -1859,7 +1861,7 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedBelchInPalace; + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedStuffCheeksInPalace; gProtectStructs[gActiveBattler].palaceUnableToUseMove = TRUE; } else @@ -1876,6 +1878,7 @@ u8 TrySetCantSelectMoveBattleScript(void) gLastUsedItem = gBattleMons[gActiveBattler].item; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveChoiceItemInPalace; gProtectStructs[gActiveBattler].palaceUnableToUseMove = TRUE; } else @@ -1884,12 +1887,13 @@ u8 TrySetCantSelectMoveBattleScript(void) limitations++; } } - else if (holdEffect == HOLD_EFFECT_ASSAULT_VEST && gBattleMoves[move].power == 0 && move != MOVE_ME_FIRST) + else if (holdEffect == HOLD_EFFECT_ASSAULT_VEST && IS_MOVE_STATUS(move) && move != MOVE_ME_FIRST) { gCurrentMove = move; gLastUsedItem = gBattleMons[gActiveBattler].item; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveAssaultVestInPalace; gProtectStructs[gActiveBattler].palaceUnableToUseMove = TRUE; } else @@ -1905,6 +1909,7 @@ u8 TrySetCantSelectMoveBattleScript(void) gLastUsedItem = gBattleMons[gActiveBattler].item; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveGorillaTacticsInPalace; gProtectStructs[gActiveBattler].palaceUnableToUseMove = TRUE; } else @@ -1927,10 +1932,24 @@ u8 TrySetCantSelectMoveBattleScript(void) } } + if (gBattleMoves[move].effect == EFFECT_PLACEHOLDER) + { + if (gBattleTypeFlags & BATTLE_TYPE_PALACE) + { + gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedPlaceholderInPalace; + gProtectStructs[gActiveBattler].palaceUnableToUseMove = TRUE; + } + else + { + gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedPlaceholder; + limitations++; + } + } + return limitations; } -u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check) +u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u16 check) { u8 holdEffect = GetBattlerHoldEffect(battlerId, TRUE); u16 *choicedMove = &gBattleStruct->choicedMove[battlerId]; @@ -1941,49 +1960,52 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check) for (i = 0; i < MAX_MON_MOVES; i++) { // No move - if (gBattleMons[battlerId].moves[i] == MOVE_NONE && check & MOVE_LIMITATION_ZEROMOVE) + if (check & MOVE_LIMITATION_ZEROMOVE && gBattleMons[battlerId].moves[i] == MOVE_NONE) unusableMoves |= gBitTable[i]; // No PP - else if (gBattleMons[battlerId].pp[i] == 0 && check & MOVE_LIMITATION_PP) + else if (check & MOVE_LIMITATION_PP && gBattleMons[battlerId].pp[i] == 0) + unusableMoves |= gBitTable[i]; + // Placeholder + else if (check & MOVE_LIMITATION_PLACEHOLDER && gBattleMoves[gBattleMons[battlerId].moves[i]].effect == EFFECT_PLACEHOLDER) unusableMoves |= gBitTable[i]; // Disable - else if (gBattleMons[battlerId].moves[i] == gDisableStructs[battlerId].disabledMove && check & MOVE_LIMITATION_DISABLED) + else if (check & MOVE_LIMITATION_DISABLED && gBattleMons[battlerId].moves[i] == gDisableStructs[battlerId].disabledMove) unusableMoves |= gBitTable[i]; // Torment - else if (gBattleMons[battlerId].moves[i] == gLastMoves[battlerId] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[battlerId].status2 & STATUS2_TORMENT) + else if (check & MOVE_LIMITATION_TORMENTED && gBattleMons[battlerId].moves[i] == gLastMoves[battlerId] && gBattleMons[battlerId].status2 & STATUS2_TORMENT) unusableMoves |= gBitTable[i]; // Taunt - else if (gDisableStructs[battlerId].tauntTimer && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[battlerId].moves[i]].power == 0) + else if (check & MOVE_LIMITATION_TAUNT && gDisableStructs[battlerId].tauntTimer && IS_MOVE_STATUS(gBattleMons[battlerId].moves[i])) unusableMoves |= gBitTable[i]; // Imprison - else if (GetImprisonedMovesCount(battlerId, gBattleMons[battlerId].moves[i]) && check & MOVE_LIMITATION_IMPRISON) + else if (check & MOVE_LIMITATION_IMPRISON && GetImprisonedMovesCount(battlerId, gBattleMons[battlerId].moves[i])) unusableMoves |= gBitTable[i]; // Encore - else if (gDisableStructs[battlerId].encoreTimer && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i]) + else if (check & MOVE_LIMITATION_ENCORE && gDisableStructs[battlerId].encoreTimer && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i]) unusableMoves |= gBitTable[i]; // Choice Items - else if (HOLD_EFFECT_CHOICE(holdEffect) && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != gBattleMons[battlerId].moves[i]) + else if (check & MOVE_LIMITATION_CHOICE_ITEM && HOLD_EFFECT_CHOICE(holdEffect) && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != gBattleMons[battlerId].moves[i]) unusableMoves |= gBitTable[i]; // Assault Vest - else if (holdEffect == HOLD_EFFECT_ASSAULT_VEST && gBattleMoves[gBattleMons[battlerId].moves[i]].power == 0 && gBattleMons[battlerId].moves[i] != MOVE_ME_FIRST) + else if (check & MOVE_LIMITATION_ASSAULT_VEST && holdEffect == HOLD_EFFECT_ASSAULT_VEST && IS_MOVE_STATUS(gBattleMons[battlerId].moves[i]) && gBattleMons[battlerId].moves[i] != MOVE_ME_FIRST) unusableMoves |= gBitTable[i]; // Gravity - else if (IsGravityPreventingMove(gBattleMons[battlerId].moves[i])) + else if (check & MOVE_LIMITATION_GRAVITY && IsGravityPreventingMove(gBattleMons[battlerId].moves[i])) unusableMoves |= gBitTable[i]; // Heal Block - else if (IsHealBlockPreventingMove(battlerId, gBattleMons[battlerId].moves[i])) + else if (check & MOVE_LIMITATION_HEAL_BLOCK && IsHealBlockPreventingMove(battlerId, gBattleMons[battlerId].moves[i])) unusableMoves |= gBitTable[i]; // Belch - else if (IsBelchPreventingMove(battlerId, gBattleMons[battlerId].moves[i])) + else if (check & MOVE_LIMITATION_BELCH && IsBelchPreventingMove(battlerId, gBattleMons[battlerId].moves[i])) unusableMoves |= gBitTable[i]; // Throat Chop - else if (gDisableStructs[battlerId].throatChopTimer && gBattleMoves[gBattleMons[battlerId].moves[i]].flags & FLAG_SOUND) + else if (check & MOVE_LIMITATION_THROAT_CHOP && gDisableStructs[battlerId].throatChopTimer && gBattleMoves[gBattleMons[battlerId].moves[i]].flags & FLAG_SOUND) unusableMoves |= gBitTable[i]; // Stuff Cheeks - else if (gBattleMons[battlerId].moves[i] == MOVE_STUFF_CHEEKS && ItemId_GetPocket(gBattleMons[gActiveBattler].item) != POCKET_BERRIES) + else if (check & MOVE_LIMITATION_STUFF_CHEEKS && gBattleMons[battlerId].moves[i] == MOVE_STUFF_CHEEKS && ItemId_GetPocket(gBattleMons[gActiveBattler].item) != POCKET_BERRIES) unusableMoves |= gBitTable[i]; // Gorilla Tactics - else if (GetBattlerAbility(battlerId) == ABILITY_GORILLA_TACTICS && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != gBattleMons[battlerId].moves[i]) + else if (check & MOVE_LIMITATION_CHOICE_ITEM && GetBattlerAbility(battlerId) == ABILITY_GORILLA_TACTICS && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != gBattleMons[battlerId].moves[i]) unusableMoves |= gBitTable[i]; } return unusableMoves; @@ -2083,6 +2105,26 @@ void TryToRevertMimicry(void) } } +u32 GetMonFriendshipScore(struct Pokemon *pokemon) +{ + u32 friendshipScore = GetMonData(pokemon, MON_DATA_FRIENDSHIP); + + if (friendshipScore == MAX_FRIENDSHIP) + return FRIENDSHIP_MAX; + if (friendshipScore >= 200) + return FRIENDSHIP_200_TO_254; + if (friendshipScore >= 150) + return FRIENDSHIP_150_TO_199; + if (friendshipScore >= 100) + return FRIENDSHIP_100_TO_149; + if (friendshipScore >= 50) + return FRIENDSHIP_50_TO_99; + if (friendshipScore >= 1) + return FRIENDSHIP_1_TO_49; + + return FRIENDSHIP_NONE; +} + enum { ENDTURN_ORDER, @@ -2111,6 +2153,7 @@ enum ENDTURN_ION_DELUGE, ENDTURN_FAIRY_LOCK, ENDTURN_RETALIATE, + ENDTURN_STATUS_HEAL, ENDTURN_FIELD_COUNT, }; @@ -2341,6 +2384,7 @@ u8 DoFieldEndTurnEffects(void) if (effect == 0) { gBattleStruct->turnCountersTracker++; + gBattleStruct->turnSideTracker = 0; } break; case ENDTURN_RAIN: @@ -2557,6 +2601,22 @@ u8 DoFieldEndTurnEffects(void) gSideTimers[B_SIDE_OPPONENT].retaliateTimer--; gBattleStruct->turnCountersTracker++; break; + case ENDTURN_STATUS_HEAL: + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) + { + #if B_AFFECTION_MECHANICS == TRUE + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER + && GetMonFriendshipScore(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]) >= FRIENDSHIP_150_TO_199 + && (Random() % 100 < 20)) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + BattleScriptExecute(BattleScript_AffectionBasedStatusHeal); + break; + } + #endif + } + gBattleStruct->turnCountersTracker++; + break; case ENDTURN_FIELD_COUNT: effect++; break; @@ -2770,8 +2830,11 @@ u8 DoBattlerEndTurnEffects(void) && gBattleMons[gActiveBattler].hp != 0) { MAGIC_GUARD_CHECK; - - gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (B_BURN_DAMAGE >= GEN_7 ? 16 : 8); + #if B_BURN_DAMAGE >= GEN_7 + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; + #else + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; + #endif if (ability == ABILITY_HEATPROOF) { if (gBattleMoveDamage > (gBattleMoveDamage / 2) + 1) // Record ability if the burn takes less damage than it normally would. @@ -2832,9 +2895,15 @@ u8 DoBattlerEndTurnEffects(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleStruct->wrappedMove[gActiveBattler]); gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; if (GetBattlerHoldEffect(gBattleStruct->wrappedBy[gActiveBattler], TRUE) == HOLD_EFFECT_BINDING_BAND) - gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / ((B_BINDING_DAMAGE >= GEN_6) ? 6 : 8); + #if B_BINDING_DAMAGE >= GEN_6 + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 6; else - gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / ((B_BINDING_DAMAGE >= GEN_6) ? 8 : 16); + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; + #else + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; + else + gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; + #endif if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -3025,7 +3094,11 @@ u8 DoBattlerEndTurnEffects(void) } else { - gBattleMons[gActiveBattler].status1 |= (B_SLEEP_TURNS >= GEN_5) ? ((Random() % 3) + 2) : ((Random() % 4) + 3); + #if B_SLEEP_TURNS >= GEN_5 + gBattleMons[gActiveBattler].status1 |= ((Random() % 3) + 2); + #else + gBattleMons[gActiveBattler].status1 |= ((Random() % 4) + 3); + #endif BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); BattleScriptExecute(BattleScript_YawnMakesAsleep); @@ -3181,7 +3254,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) BattleScriptExecute(BattleScript_MonTookFutureAttack); if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 - && gWishFutureKnock.futureSightCounter[gActiveBattler ^ BIT_FLANK] == 0) + && gWishFutureKnock.futureSightCounter[BATTLE_PARTNER(gActiveBattler)] == 0) { gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] &= ~SIDE_STATUS_FUTUREATTACK; } @@ -3290,7 +3363,7 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 3; else gBattleStruct->faintedActionsState = 1; - #if B_FAINT_SWITCH_IN >= GEN_4 + #if B_FAINT_SWITCH_IN >= GEN_4 // Don't switch mons until all pokemon performed their actions or the battle's over. if (gBattleOutcome == 0 && !NoAliveMonsForEitherParty() @@ -3299,10 +3372,10 @@ bool8 HandleFaintedMonActions(void) gAbsentBattlerFlags |= gBitTable[gBattlerFainted]; return FALSE; } - #endif + #endif break; case 3: - #if B_FAINT_SWITCH_IN >= GEN_4 + #if B_FAINT_SWITCH_IN >= GEN_4 // Don't switch mons until all pokemon performed their actions or the battle's over. if (gBattleOutcome == 0 && !NoAliveMonsForEitherParty() @@ -3310,7 +3383,7 @@ bool8 HandleFaintedMonActions(void) { return FALSE; } - #endif + #endif gBattleStruct->faintedActionsBattlerId = 0; gBattleStruct->faintedActionsState++; // fall through @@ -3545,7 +3618,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleStruct->atkCancellerTracker++; break; case CANCELLER_TAUNTED: // taunt - if (gDisableStructs[gBattlerAttacker].tauntTimer && gBattleMoves[gCurrentMove].power == 0) + if (gDisableStructs[gBattlerAttacker].tauntTimer && IS_MOVE_STATUS(gCurrentMove)) { gProtectStructs[gBattlerAttacker].usedTauntedMove = TRUE; CancelMultiTurnMoves(gBattlerAttacker); @@ -3572,7 +3645,12 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleMons[gBattlerAttacker].status2 -= STATUS2_CONFUSION_TURN(1); if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION) { - if (Random() % ((B_CONFUSION_SELF_DMG_CHANCE >= GEN_7) ? 3 : 2) == 0) // confusion dmg + // confusion dmg + #if B_CONFUSION_SELF_DMG_CHANCE >= GEN_7 + if (Random() % 3 == 0) + #else + if (Random() % 2 == 0) + #endif { gBattleCommunication[MULTISTRING_CHOOSER] = TRUE; gBattlerTarget = gBattlerAttacker; @@ -3675,8 +3753,11 @@ u8 AtkCanceller_UnableToUseMove(void) case CANCELLER_POWDER_MOVE: if ((gBattleMoves[gCurrentMove].flags & FLAG_POWDER) && (gBattlerAttacker != gBattlerTarget)) { - if ((B_POWDER_GRASS >= GEN_6 && IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_GRASS)) - || GetBattlerAbility(gBattlerTarget) == ABILITY_OVERCOAT) + #if B_POWDER_GRASS >= GEN_6 + if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_GRASS) || GetBattlerAbility(gBattlerTarget) == ABILITY_OVERCOAT) + #else + if (GetBattlerAbility(gBattlerTarget) == ABILITY_OVERCOAT) + #endif { gBattlerAbility = gBattlerTarget; effect = 1; @@ -3729,7 +3810,7 @@ u8 AtkCanceller_UnableToUseMove(void) 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) { @@ -4018,20 +4099,21 @@ bool32 TryChangeBattleWeather(u8 battler, u32 weatherEnumId, bool32 viaAbility) { u16 battlerAbility = GetBattlerAbility(battler); - if (viaAbility && B_ABILITY_WEATHER <= GEN_5 - && !(gBattleWeather & sWeatherFlagsInfo[weatherEnumId][1])) + if (gBattleWeather & B_WEATHER_PRIMAL_ANY + && battlerAbility != ABILITY_DESOLATE_LAND + && battlerAbility != ABILITY_PRIMORDIAL_SEA + && battlerAbility != ABILITY_DELTA_STREAM) + { + return FALSE; + } +#if B_ABILITY_WEATHER <= GEN_5 + else if (viaAbility && !(gBattleWeather & sWeatherFlagsInfo[weatherEnumId][1])) { gBattleWeather = (sWeatherFlagsInfo[weatherEnumId][0] | sWeatherFlagsInfo[weatherEnumId][1]); ShouldChangeFormInWeather(battler); return TRUE; } - else if (gBattleWeather & B_WEATHER_PRIMAL_ANY - && battlerAbility != ABILITY_DESOLATE_LAND - && battlerAbility != ABILITY_PRIMORDIAL_SEA - && battlerAbility != ABILITY_DELTA_STREAM) - { - return FALSE; - } +#endif else if (!(gBattleWeather & (sWeatherFlagsInfo[weatherEnumId][0] | sWeatherFlagsInfo[weatherEnumId][1]))) { gBattleWeather = (sWeatherFlagsInfo[weatherEnumId][0]); @@ -4230,7 +4312,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move BattleScriptPushCursorAndCallback(BattleScript_OverworldTerrain); effect++; } - #if B_THUNDERSTORM_TERRAIN == TRUE + #if B_THUNDERSTORM_TERRAIN == TRUE else if (GetCurrentWeather() == WEATHER_RAIN_THUNDERSTORM && !(gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN)) { // overworld weather started rain, so just do electric terrain anim @@ -4239,7 +4321,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move BattleScriptPushCursorAndCallback(BattleScript_OverworldTerrain); effect++; } - #endif + #endif break; case ABILITYEFFECT_SWITCH_IN_WEATHER: if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) @@ -4761,7 +4843,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (gDisableStructs[battler].isFirstTurn != 2) { u32 validToRaise = 0, validToLower = 0; - u32 statsNum = (B_MOODY_ACC_EVASION != GEN_8) ? NUM_BATTLE_STATS : NUM_STATS; + #if B_MOODY_ACC_EVASION < GEN_8 + u32 statsNum = NUM_BATTLE_STATS; + #else + u32 statsNum = NUM_STATS; + #endif for (i = STAT_ATK; i < statsNum; i++) { @@ -4969,7 +5055,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move effect = 2, statId = STAT_ATK; break; case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE && !((gBattleMons[battler].status1 & STATUS1_FREEZE) && B_FLASH_FIRE_FROZEN <= GEN_4)) + if (moveType == TYPE_FIRE + #if B_FLASH_FIRE_FROZEN <= GEN_4 + && !(gBattleMons[battler].status1 & STATUS1_FREEZE) + #endif + ) { if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE)) { @@ -4998,7 +5088,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move if (effect == 1) // Drain Hp ability. { -#if B_HEAL_BLOCKING >= GEN_5 +#if B_HEAL_BLOCKING >= GEN_5 if (BATTLER_MAX_HP(battler) || gStatuses3[battler] & STATUS3_HEAL_BLOCK) #else if (BATTLER_MAX_HP(battler)) @@ -5795,7 +5885,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move { if (gBattleMons[i].ability == ABILITY_TRACE && (gBattleResources->flags->flags[i] & RESOURCE_FLAG_TRACED)) { - u8 side = (GetBattlerPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon + u8 side = (BATTLE_OPPOSITE(GetBattlerPosition(i))) & BIT_SIDE; // side of the opposing pokemon u8 target1 = GetBattlerAtPosition(side); u8 target2 = GetBattlerAtPosition(side + BIT_FLANK); @@ -5995,15 +6085,15 @@ u32 IsAbilityOnFieldExcept(u32 battlerId, u32 ability) u32 IsAbilityPreventingEscape(u32 battlerId) { u32 id; - #if B_GHOSTS_ESCAPE >= GEN_6 - if (IS_BATTLER_OF_TYPE(battlerId, TYPE_GHOST)) - return 0; - #endif - #if B_SHADOW_TAG_ESCAPE >= GEN_4 - if ((id = IsAbilityOnOpposingSide(battlerId, ABILITY_SHADOW_TAG)) && GetBattlerAbility(battlerId) != ABILITY_SHADOW_TAG) - #else - if (id = IsAbilityOnOpposingSide(battlerId, ABILITY_SHADOW_TAG)) - #endif +#if B_GHOSTS_ESCAPE >= GEN_6 + if (IS_BATTLER_OF_TYPE(battlerId, TYPE_GHOST)) + return 0; +#endif +#if B_SHADOW_TAG_ESCAPE >= GEN_4 + if ((id = IsAbilityOnOpposingSide(battlerId, ABILITY_SHADOW_TAG)) && GetBattlerAbility(battlerId) != ABILITY_SHADOW_TAG) +#else + if ((id = IsAbilityOnOpposingSide(battlerId, ABILITY_SHADOW_TAG))) +#endif return id; if ((id = IsAbilityOnOpposingSide(battlerId, ABILITY_ARENA_TRAP)) && IsBattlerGrounded(battlerId)) return id; @@ -6017,7 +6107,11 @@ bool32 CanBattlerEscape(u32 battlerId) // no ability check { if (GetBattlerHoldEffect(battlerId, TRUE) == HOLD_EFFECT_SHED_SHELL) return TRUE; - else if ((B_GHOSTS_ESCAPE >= GEN_6 && !IS_BATTLER_OF_TYPE(battlerId, TYPE_GHOST)) && gBattleMons[battlerId].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) +#if B_GHOSTS_ESCAPE >= GEN_6 + else if (IS_BATTLER_OF_TYPE(battlerId, TYPE_GHOST)) + return TRUE; +#endif + else if (gBattleMons[battlerId].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED)) return FALSE; else if (gStatuses3[battlerId] & STATUS3_ROOTED) return FALSE; @@ -6115,13 +6209,16 @@ bool32 CanBeBurned(u8 battlerId) bool32 CanBeParalyzed(u8 battlerId) { u16 ability = GetBattlerAbility(battlerId); - if ((B_PARALYZE_ELECTRIC >= GEN_6 && IS_BATTLER_OF_TYPE(battlerId, TYPE_ELECTRIC)) - || gSideStatuses[GetBattlerSide(battlerId)] & SIDE_STATUS_SAFEGUARD - || ability == ABILITY_LIMBER - || ability == ABILITY_COMATOSE - || gBattleMons[battlerId].status1 & STATUS1_ANY - || IsAbilityStatusProtected(battlerId) - || IsBattlerTerrainAffected(battlerId, STATUS_FIELD_MISTY_TERRAIN)) + if ( + #if B_PARALYZE_ELECTRIC >= GEN_6 + IS_BATTLER_OF_TYPE(battlerId, TYPE_ELECTRIC) || + #endif + gSideStatuses[GetBattlerSide(battlerId)] & SIDE_STATUS_SAFEGUARD + || ability == ABILITY_LIMBER + || ability == ABILITY_COMATOSE + || gBattleMons[battlerId].status1 & STATUS1_ANY + || IsAbilityStatusProtected(battlerId) + || IsBattlerTerrainAffected(battlerId, STATUS_FIELD_MISTY_TERRAIN)) return FALSE; return TRUE; } @@ -6183,11 +6280,11 @@ bool32 HasEnoughHpToEatBerry(u32 battlerId, u32 hpFraction, u32 itemId) static u8 HealConfuseBerry(u32 battlerId, u32 itemId, u8 flavorId, bool32 end2) { + if (HasEnoughHpToEatBerry(battlerId, CONFUSE_BERRY_HP_FRACTION, itemId) #if B_HEAL_BLOCKING >= GEN_5 - if (HasEnoughHpToEatBerry(battlerId, CONFUSE_BERRY_HP_FRACTION, itemId) && !(gStatuses3[battlerId] & STATUS3_HEAL_BLOCK)) -#else - if (HasEnoughHpToEatBerry(battlerId, CONFUSE_BERRY_HP_FRACTION, itemId)) + && !(gStatuses3[battlerId] & STATUS3_HEAL_BLOCK) #endif + ) { PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, flavorId); @@ -6375,12 +6472,11 @@ u8 TryHandleSeed(u8 battler, u32 terrainFlag, u8 statId, u16 itemId, bool32 exec static u8 ItemHealHp(u32 battlerId, u32 itemId, bool32 end2, bool32 percentHeal) { -#if B_HEAL_BLOCKING >= GEN_5 - if (HasEnoughHpToEatBerry(battlerId, 2, itemId) && !(gStatuses3[battlerId] & STATUS3_HEAL_BLOCK) -#else - if (HasEnoughHpToEatBerry(battlerId, 2, itemId) -#endif - && !(gBattleScripting.overrideBerryRequirements && gBattleMons[battlerId].hp == gBattleMons[battlerId].maxHP)) + if (!(gBattleScripting.overrideBerryRequirements && gBattleMons[battlerId].hp == gBattleMons[battlerId].maxHP) + #if B_HEAL_BLOCKING >= GEN_5 + && !(gStatuses3[battlerId] & STATUS3_HEAL_BLOCK) + #endif + && HasEnoughHpToEatBerry(battlerId, 2, itemId)) { if (percentHeal) gBattleMoveDamage = (gBattleMons[battlerId].maxHP * GetBattlerHoldEffectParam(battlerId) / 100) * -1; @@ -6425,46 +6521,46 @@ static bool32 GetMentalHerbEffect(u8 battlerId) StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); ret = TRUE; } - #if B_MENTAL_HERB >= GEN_5 - // Check taunt - if (gDisableStructs[battlerId].tauntTimer != 0) - { - gDisableStructs[battlerId].tauntTimer = gDisableStructs[battlerId].tauntTimer2 = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_TAUNT; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_TAUNT); - ret = TRUE; - } - // Check encore - if (gDisableStructs[battlerId].encoreTimer != 0) - { - gDisableStructs[battlerId].encoredMove = 0; - gDisableStructs[battlerId].encoreTimerStartValue = gDisableStructs[battlerId].encoreTimer = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_ENCORE; // STRINGID_PKMNENCOREENDED - ret = TRUE; - } - // Check torment - if (gBattleMons[battlerId].status2 & STATUS2_TORMENT) - { - gBattleMons[battlerId].status2 &= ~STATUS2_TORMENT; - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_TORMENT; - ret = TRUE; - } - // Check heal block - if (gStatuses3[battlerId] & STATUS3_HEAL_BLOCK) - { - gStatuses3[battlerId] &= ~STATUS3_HEAL_BLOCK; - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_HEALBLOCK; - ret = TRUE; - } - // Check disable - if (gDisableStructs[battlerId].disableTimer != 0) - { - gDisableStructs[battlerId].disableTimer = gDisableStructs[battlerId].disableTimerStartValue = 0; - gDisableStructs[battlerId].disabledMove = 0; - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_DISABLE; - ret = TRUE; - } - #endif +#if B_MENTAL_HERB >= GEN_5 + // Check taunt + if (gDisableStructs[battlerId].tauntTimer != 0) + { + gDisableStructs[battlerId].tauntTimer = gDisableStructs[battlerId].tauntTimer2 = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_TAUNT; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_TAUNT); + ret = TRUE; + } + // Check encore + if (gDisableStructs[battlerId].encoreTimer != 0) + { + gDisableStructs[battlerId].encoredMove = 0; + gDisableStructs[battlerId].encoreTimerStartValue = gDisableStructs[battlerId].encoreTimer = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_ENCORE; // STRINGID_PKMNENCOREENDED + ret = TRUE; + } + // Check torment + if (gBattleMons[battlerId].status2 & STATUS2_TORMENT) + { + gBattleMons[battlerId].status2 &= ~STATUS2_TORMENT; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_TORMENT; + ret = TRUE; + } + // Check heal block + if (gStatuses3[battlerId] & STATUS3_HEAL_BLOCK) + { + gStatuses3[battlerId] &= ~STATUS3_HEAL_BLOCK; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_HEALBLOCK; + ret = TRUE; + } + // Check disable + if (gDisableStructs[battlerId].disableTimer != 0) + { + gDisableStructs[battlerId].disableTimer = gDisableStructs[battlerId].disableTimerStartValue = 0; + gDisableStructs[battlerId].disabledMove = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MENTALHERBCURE_DISABLE; + ret = TRUE; + } +#endif return ret; } @@ -6515,48 +6611,39 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) BattleScriptExecute(BattleScript_WhiteHerbEnd2); } break; + #if B_BERRIES_INSTANT >= GEN_4 case HOLD_EFFECT_CONFUSE_SPICY: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY, TRUE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY, TRUE); break; case HOLD_EFFECT_CONFUSE_DRY: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY, TRUE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY, TRUE); break; case HOLD_EFFECT_CONFUSE_SWEET: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET, TRUE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET, TRUE); break; case HOLD_EFFECT_CONFUSE_BITTER: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER, TRUE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER, TRUE); break; case HOLD_EFFECT_CONFUSE_SOUR: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR, TRUE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR, TRUE); break; case HOLD_EFFECT_ATTACK_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK, TRUE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK, TRUE); break; case HOLD_EFFECT_DEFENSE_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF, TRUE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF, TRUE); break; case HOLD_EFFECT_SPEED_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED, TRUE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED, TRUE); break; case HOLD_EFFECT_SP_ATTACK_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK, TRUE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK, TRUE); break; case HOLD_EFFECT_SP_DEFENSE_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF, TRUE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF, TRUE); break; case HOLD_EFFECT_CRITICAL_UP: - if (B_BERRIES_INSTANT >= GEN_4 && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY) && HasEnoughHpToEatBerry(battlerId, GetBattlerHoldEffectParam(battlerId), gLastUsedItem)) + if (!(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY) && HasEnoughHpToEatBerry(battlerId, GetBattlerHoldEffectParam(battlerId), gLastUsedItem)) { gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2); @@ -6564,11 +6651,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_RANDOM_STAT_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = RandomStatRaiseBerry(battlerId, gLastUsedItem, TRUE); + effect = RandomStatRaiseBerry(battlerId, gLastUsedItem, TRUE); break; case HOLD_EFFECT_CURE_PAR: - if (B_BERRIES_INSTANT >= GEN_4 && gBattleMons[battlerId].status1 & STATUS1_PARALYSIS && !UnnerveOn(battlerId, gLastUsedItem)) + if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS && !UnnerveOn(battlerId, gLastUsedItem)) { gBattleMons[battlerId].status1 &= ~STATUS1_PARALYSIS; BattleScriptExecute(BattleScript_BerryCurePrlzEnd2); @@ -6576,7 +6662,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_PSN: - if (B_BERRIES_INSTANT >= GEN_4 && gBattleMons[battlerId].status1 & STATUS1_PSN_ANY && !UnnerveOn(battlerId, gLastUsedItem)) + if (gBattleMons[battlerId].status1 & STATUS1_PSN_ANY && !UnnerveOn(battlerId, gLastUsedItem)) { gBattleMons[battlerId].status1 &= ~(STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER); BattleScriptExecute(BattleScript_BerryCurePsnEnd2); @@ -6584,7 +6670,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_BRN: - if (B_BERRIES_INSTANT >= GEN_4 && gBattleMons[battlerId].status1 & STATUS1_BURN && !UnnerveOn(battlerId, gLastUsedItem)) + if (gBattleMons[battlerId].status1 & STATUS1_BURN && !UnnerveOn(battlerId, gLastUsedItem)) { gBattleMons[battlerId].status1 &= ~STATUS1_BURN; BattleScriptExecute(BattleScript_BerryCureBrnEnd2); @@ -6592,7 +6678,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_FRZ: - if (B_BERRIES_INSTANT >= GEN_4 && gBattleMons[battlerId].status1 & STATUS1_FREEZE && !UnnerveOn(battlerId, gLastUsedItem)) + if (gBattleMons[battlerId].status1 & STATUS1_FREEZE && !UnnerveOn(battlerId, gLastUsedItem)) { gBattleMons[battlerId].status1 &= ~STATUS1_FREEZE; BattleScriptExecute(BattleScript_BerryCureFrzEnd2); @@ -6600,7 +6686,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_SLP: - if (B_BERRIES_INSTANT >= GEN_4 && gBattleMons[battlerId].status1 & STATUS1_SLEEP && !UnnerveOn(battlerId, gLastUsedItem)) + if (gBattleMons[battlerId].status1 & STATUS1_SLEEP && !UnnerveOn(battlerId, gLastUsedItem)) { gBattleMons[battlerId].status1 &= ~STATUS1_SLEEP; gBattleMons[battlerId].status2 &= ~STATUS2_NIGHTMARE; @@ -6609,7 +6695,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CURE_STATUS: - if (B_BERRIES_INSTANT >= GEN_4 && (gBattleMons[battlerId].status1 & STATUS1_ANY || gBattleMons[battlerId].status2 & STATUS2_CONFUSION) && !UnnerveOn(battlerId, gLastUsedItem)) + if ((gBattleMons[battlerId].status1 & STATUS1_ANY || gBattleMons[battlerId].status2 & STATUS2_CONFUSION) && !UnnerveOn(battlerId, gLastUsedItem)) { i = 0; if (gBattleMons[battlerId].status1 & STATUS1_PSN_ANY) @@ -6654,13 +6740,12 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_RESTORE_HP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = ItemHealHp(battlerId, gLastUsedItem, TRUE, FALSE); + effect = ItemHealHp(battlerId, gLastUsedItem, TRUE, FALSE); break; case HOLD_EFFECT_RESTORE_PCT_HP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = ItemHealHp(battlerId, gLastUsedItem, TRUE, TRUE); + effect = ItemHealHp(battlerId, gLastUsedItem, TRUE, TRUE); break; + #endif case HOLD_EFFECT_AIR_BALLOON: effect = ITEM_EFFECT_OTHER; gBattleScripting.battler = battlerId; @@ -7021,62 +7106,52 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) DO_ITEMEFFECT_MOVE_END: switch (battlerHoldEffect) { + #if B_HP_BERRIES >= GEN_4 case HOLD_EFFECT_MICLE_BERRY: - if (B_HP_BERRIES >= GEN_4) - effect = TrySetMicleBerry(battlerId, gLastUsedItem, FALSE); + effect = TrySetMicleBerry(battlerId, gLastUsedItem, FALSE); break; case HOLD_EFFECT_RESTORE_HP: - if (B_HP_BERRIES >= GEN_4) - effect = ItemHealHp(battlerId, gLastUsedItem, FALSE, FALSE); + effect = ItemHealHp(battlerId, gLastUsedItem, FALSE, FALSE); break; + #endif + #if B_BERRIES_INSTANT >= GEN_4 case HOLD_EFFECT_RESTORE_PCT_HP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = ItemHealHp(battlerId, gLastUsedItem, FALSE, TRUE); + effect = ItemHealHp(battlerId, gLastUsedItem, FALSE, TRUE); break; case HOLD_EFFECT_CONFUSE_SPICY: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY, FALSE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SPICY, FALSE); break; case HOLD_EFFECT_CONFUSE_DRY: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY, FALSE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_DRY, FALSE); break; case HOLD_EFFECT_CONFUSE_SWEET: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET, FALSE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SWEET, FALSE); break; case HOLD_EFFECT_CONFUSE_BITTER: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER, FALSE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_BITTER, FALSE); break; case HOLD_EFFECT_CONFUSE_SOUR: - if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR, FALSE); + effect = HealConfuseBerry(battlerId, gLastUsedItem, FLAVOR_SOUR, FALSE); break; case HOLD_EFFECT_ATTACK_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK, FALSE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_ATK, FALSE); break; case HOLD_EFFECT_DEFENSE_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF, FALSE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_DEF, FALSE); break; case HOLD_EFFECT_SPEED_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED, FALSE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPEED, FALSE); break; case HOLD_EFFECT_SP_ATTACK_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK, FALSE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPATK, FALSE); break; case HOLD_EFFECT_SP_DEFENSE_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF, FALSE); + effect = StatRaiseBerry(battlerId, gLastUsedItem, STAT_SPDEF, FALSE); break; case HOLD_EFFECT_RANDOM_STAT_UP: - if (B_BERRIES_INSTANT >= GEN_4) - effect = RandomStatRaiseBerry(battlerId, gLastUsedItem, FALSE); + effect = RandomStatRaiseBerry(battlerId, gLastUsedItem, FALSE); break; + #endif case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS && !UnnerveOn(battlerId, gLastUsedItem)) { @@ -7210,10 +7285,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) switch (atkHoldEffect) { case HOLD_EFFECT_FLINCH: - #if B_SERENE_GRACE_BOOST >= GEN_5 - if (GetBattlerAbility(gBattlerAttacker) == ABILITY_SERENE_GRACE) - atkHoldEffectParam *= 2; - #endif + #if B_SERENE_GRACE_BOOST >= GEN_5 + if (GetBattlerAbility(gBattlerAttacker) == ABILITY_SERENE_GRACE) + atkHoldEffectParam *= 2; + #endif if (gBattleMoveDamage != 0 // Need to have done damage && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED @@ -7557,7 +7632,7 @@ u32 GetMoveTarget(u16 move, u8 setTarget) switch (moveTarget) { case MOVE_TARGET_SELECTED: - side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; + side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (IsAffectedByFollowMe(gBattlerAttacker, side, move)) { targetBattler = gSideTimers[side].followmeTarget; @@ -7587,18 +7662,18 @@ u32 GetMoveTarget(u16 move, u8 setTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gBattlerAttacker))); if (!IsBattlerAlive(targetBattler)) targetBattler ^= BIT_FLANK; break; case MOVE_TARGET_RANDOM: - side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; + side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (IsAffectedByFollowMe(gBattlerAttacker, side, move)) targetBattler = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) targetBattler = SetRandomTarget(gBattlerAttacker); else - targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gBattlerAttacker))); break; case MOVE_TARGET_USER_OR_SELECTED: case MOVE_TARGET_USER: @@ -7759,9 +7834,12 @@ u32 GetBattlerHoldEffect(u8 battlerId, bool32 checkNegating) gPotentialItemEffectBattler = battlerId; - if (B_ENABLE_DEBUG && gBattleStruct->debugHoldEffects[battlerId] != 0 && gBattleMons[battlerId].item) +#if B_ENABLE_DEBUG == TRUE + if (gBattleStruct->debugHoldEffects[battlerId] != 0 && gBattleMons[battlerId].item) return gBattleStruct->debugHoldEffects[battlerId]; - else if (gBattleMons[battlerId].item == ITEM_ENIGMA_BERRY) + else +#endif + if (gBattleMons[battlerId].item == ITEM_ENIGMA_BERRY) return gEnigmaBerries[battlerId].holdEffect; else return ItemId_GetHoldEffect(gBattleMons[battlerId].item); @@ -7891,7 +7969,7 @@ u8 GetBattleMonMoveSlot(struct BattlePokemon *battleMon, u16 move) { u8 i; - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_MON_MOVES; i++) { if (battleMon->moves[i] == move) break; @@ -8085,7 +8163,7 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) u32 i; u16 basePower = gBattleMoves[move].power; u32 weight, hpFraction, speed; - + if (gBattleStruct->zmove.active) return gBattleMoves[gBattleStruct->zmove.baseMoves[battlerAtk]].zMovePower; @@ -8095,7 +8173,7 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) // todo break; case EFFECT_FLING: - basePower = ItemId_GetFlingPower(gBattleMons[battlerAtk].item); + basePower = GetFlingPowerFromItemId(gBattleMons[battlerAtk].item); break; case EFFECT_ERUPTION: basePower = gBattleMons[battlerAtk].hp * basePower / gBattleMons[battlerAtk].maxHP; @@ -8113,7 +8191,7 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) basePower = 10 * (gBattleMons[battlerAtk].friendship) / 25; break; case EFFECT_FRUSTRATION: - basePower = 10 * (255 - gBattleMons[battlerAtk].friendship) / 25; + basePower = 10 * (MAX_FRIENDSHIP - gBattleMons[battlerAtk].friendship) / 25; break; case EFFECT_FURY_CUTTER: for (i = 1; i < gDisableStructs[battlerAtk].furyCutterCounter; i++) @@ -8239,7 +8317,10 @@ static u16 CalcMoveBasePower(u16 move, u8 battlerAtk, u8 battlerDef) break; case EFFECT_PAYBACK: if (GetBattlerTurnOrderNum(battlerAtk) > GetBattlerTurnOrderNum(battlerDef) - && (gDisableStructs[battlerDef].isFirstTurn != 2 || B_PAYBACK_SWITCH_BOOST < GEN_5)) + #if B_PAYBACK_SWITCH_BOOST >= GEN_5 + && (gDisableStructs[battlerDef].isFirstTurn != 2) + #endif + ) basePower *= 2; break; case EFFECT_BOLT_BEAK: @@ -8513,23 +8594,23 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe MulModifier(&modifier, holdEffectModifier); break; case HOLD_EFFECT_LUSTROUS_ORB: - if (gBattleMons[battlerAtk].species == SPECIES_PALKIA && (moveType == TYPE_WATER || moveType == TYPE_DRAGON)) + if (GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species) == SPECIES_PALKIA && (moveType == TYPE_WATER || moveType == TYPE_DRAGON)) MulModifier(&modifier, holdEffectModifier); break; case HOLD_EFFECT_ADAMANT_ORB: - if (gBattleMons[battlerAtk].species == SPECIES_DIALGA && (moveType == TYPE_STEEL || moveType == TYPE_DRAGON)) + if (GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species) == SPECIES_DIALGA && (moveType == TYPE_STEEL || moveType == TYPE_DRAGON)) MulModifier(&modifier, holdEffectModifier); break; case HOLD_EFFECT_GRISEOUS_ORB: - if (gBattleMons[battlerAtk].species == SPECIES_GIRATINA && (moveType == TYPE_GHOST || moveType == TYPE_DRAGON)) + if (GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species) == SPECIES_GIRATINA && (moveType == TYPE_GHOST || moveType == TYPE_DRAGON)) MulModifier(&modifier, holdEffectModifier); break; case HOLD_EFFECT_SOUL_DEW: - #if B_SOUL_DEW_BOOST >= GEN_7 + #if B_SOUL_DEW_BOOST >= GEN_7 if ((gBattleMons[battlerAtk].species == SPECIES_LATIAS || gBattleMons[battlerAtk].species == SPECIES_LATIOS) && (moveType == TYPE_PSYCHIC || moveType == TYPE_DRAGON)) - #else + #else if ((gBattleMons[battlerAtk].species == SPECIES_LATIAS || gBattleMons[battlerAtk].species == SPECIES_LATIOS) && !(gBattleTypeFlags & BATTLE_TYPE_FRONTIER) && IS_MOVE_SPECIAL(move)) - #endif + #endif MulModifier(&modifier, holdEffectModifier); break; case HOLD_EFFECT_GEMS: @@ -8612,6 +8693,12 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe break; } +#if B_TERRAIN_TYPE_BOOST >= GEN_8 + #define TERRAIN_TYPE_BOOST UQ_4_12(1.3) +#else + #define TERRAIN_TYPE_BOOST UQ_4_12(1.5) +#endif + // various effecs if (gProtectStructs[battlerAtk].helpingHand) MulModifier(&modifier, UQ_4_12(1.5)); @@ -8620,24 +8707,28 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe if (gStatuses3[battlerAtk] & STATUS3_ME_FIRST) MulModifier(&modifier, UQ_4_12(1.5)); if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN && moveType == TYPE_GRASS && IsBattlerGrounded(battlerAtk) && !(gStatuses3[battlerAtk] & STATUS3_SEMI_INVULNERABLE)) - MulModifier(&modifier, (B_TERRAIN_TYPE_BOOST >= GEN_8) ? UQ_4_12(1.3) : UQ_4_12(1.5)); + MulModifier(&modifier, TERRAIN_TYPE_BOOST); if (gFieldStatuses & STATUS_FIELD_MISTY_TERRAIN && moveType == TYPE_DRAGON && IsBattlerGrounded(battlerDef) && !(gStatuses3[battlerDef] & STATUS3_SEMI_INVULNERABLE)) MulModifier(&modifier, UQ_4_12(0.5)); if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN && moveType == TYPE_ELECTRIC && IsBattlerGrounded(battlerAtk) && !(gStatuses3[battlerAtk] & STATUS3_SEMI_INVULNERABLE)) - MulModifier(&modifier, (B_TERRAIN_TYPE_BOOST >= GEN_8) ? UQ_4_12(1.3) : UQ_4_12(1.5)); + MulModifier(&modifier, TERRAIN_TYPE_BOOST); if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN && moveType == TYPE_PSYCHIC && IsBattlerGrounded(battlerAtk) && !(gStatuses3[battlerAtk] & STATUS3_SEMI_INVULNERABLE)) - MulModifier(&modifier, (B_TERRAIN_TYPE_BOOST >= GEN_8) ? UQ_4_12(1.3) : UQ_4_12(1.5)); + MulModifier(&modifier, TERRAIN_TYPE_BOOST); #if B_SPORT_TURNS >= GEN_6 - if ((gFieldStatuses & STATUS_FIELD_MUDSPORT && moveType == TYPE_ELECTRIC) - || (gFieldStatuses & STATUS_FIELD_WATERSPORT && moveType == TYPE_FIRE)) - MulModifier(&modifier, (B_SPORT_DMG_REDUCTION >= GEN_5) ? UQ_4_12(0.23) : UQ_4_12(0.5)); + if ((moveType == TYPE_ELECTRIC && gFieldStatuses & STATUS_FIELD_MUDSPORT) + || (moveType == TYPE_FIRE && gFieldStatuses & STATUS_FIELD_WATERSPORT)) #else if ((moveType == TYPE_ELECTRIC && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, 0, ABILITYEFFECT_MUD_SPORT, 0)) - || (moveType == TYPE_FIRE && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, 0, ABILITYEFFECT_WATER_SPORT, 0))) - MulModifier(&modifier, (B_SPORT_DMG_REDUCTION >= GEN_5) ? UQ_4_12(0.23) : UQ_4_12(0.5)); + || (moveType == TYPE_FIRE && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, 0, ABILITYEFFECT_WATER_SPORT, 0))) + #endif + #if B_SPORT_DMG_REDUCTION >= GEN_5 + MulModifier(&modifier, UQ_4_12(0.23)); + #else + MulModifier(&modifier, UQ_4_12(0.5)); #endif return ApplyModifier(modifier, basePower); } +#undef TERRAIN_TYPE_BOOST static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, bool32 isCrit, bool32 updateFlags) { @@ -9013,11 +9104,17 @@ static u32 CalcFinalDmg(u32 dmg, u16 move, u8 battlerAtk, u8 battlerDef, u8 move // check crit if (isCrit) - dmg = ApplyModifier((B_CRIT_MULTIPLIER >= GEN_6 ? UQ_4_12(1.5) : UQ_4_12(2.0)), dmg); + #if B_CRIT_MULTIPLIER >= GEN_6 + dmg = ApplyModifier(UQ_4_12(1.5), dmg); + #else + dmg = ApplyModifier(UQ_4_12(2.0), dmg); + #endif // check burn if (gBattleMons[battlerAtk].status1 & STATUS1_BURN && IS_MOVE_PHYSICAL(move) - && (gBattleMoves[move].effect != EFFECT_FACADE || B_BURN_FACADE_DMG < GEN_6) + #if B_BURN_FACADE_DMG >= GEN_6 + && gBattleMoves[move].effect != EFFECT_FACADE + #endif && abilityAtk != ABILITY_GUTS) dmg = ApplyModifier(UQ_4_12(0.5), dmg); @@ -9159,7 +9256,7 @@ static s32 DoMoveDamageCalc(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, bool32 isCrit, bool32 randomFactor, bool32 updateFlags, u16 typeEffectivenessModifier) { s32 dmg; - + // Don't calculate damage if the move has no effect on target. if (typeEffectivenessModifier == UQ_4_12(0)) return 0; @@ -9291,14 +9388,18 @@ static u16 CalcTypeEffectivenessMultiplierInternal(u16 move, u8 moveType, u8 bat RecordAbilityBattle(battlerDef, ABILITY_LEVITATE); } } - else if (B_SHEER_COLD_IMMUNITY >= GEN_7 && move == MOVE_SHEER_COLD && IS_BATTLER_OF_TYPE(battlerDef, TYPE_ICE)) +#if B_SHEER_COLD_IMMUNITY >= GEN_7 + else if (move == MOVE_SHEER_COLD && IS_BATTLER_OF_TYPE(battlerDef, TYPE_ICE)) { modifier = UQ_4_12(0.0); } - else if (B_GLARE_GHOST >= GEN_4 && move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) +#endif +#if B_GLARE_GHOST >= GEN_4 + else if (move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) { modifier = UQ_4_12(1.0); } +#endif // Thousand Arrows ignores type modifiers for flying mons if (!IsBattlerGrounded(battlerDef) && (gBattleMoves[move].flags & FLAG_DMG_UNGROUNDED_IGNORE_TYPE_IF_FLYING) @@ -9364,10 +9465,11 @@ u16 CalcPartyMonTypeEffectivenessMultiplier(u16 move, u16 speciesDef, u16 abilit u16 GetTypeModifier(u8 atkType, u8 defType) { - if (B_FLAG_INVERSE_BATTLE != 0 && FlagGet(B_FLAG_INVERSE_BATTLE)) +#if B_FLAG_INVERSE_BATTLE != 0 + if (FlagGet(B_FLAG_INVERSE_BATTLE)) return sInverseTypeEffectivenessTable[atkType][defType]; - else - return sTypeEffectivenessTable[atkType][defType]; +#endif + return sTypeEffectivenessTable[atkType][defType]; } s32 GetStealthHazardDamage(u8 hazardType, u8 battlerId) @@ -9491,7 +9593,7 @@ bool32 CanMegaEvolve(u8 battlerId) // Cannot use z move and mega evolve on same turn if (gBattleStruct->zmove.toBeUsed[battlerId]) return FALSE; - + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && IsPartnerMonFromSameTrainer(battlerId) && (mega->alreadyEvolved[partnerPosition] || (mega->toEvolve & gBitTable[BATTLE_PARTNER(battlerId)]))) @@ -9513,9 +9615,12 @@ bool32 CanMegaEvolve(u8 battlerId) // Check if there is an entry in the evolution table for regular Mega Evolution. if (GetMegaEvolutionSpecies(species, itemId) != SPECIES_NONE) { + #if B_ENABLE_DEBUG == TRUE if (B_ENABLE_DEBUG && gBattleStruct->debugHoldEffects[battlerId]) holdEffect = gBattleStruct->debugHoldEffects[battlerId]; - else if (itemId == ITEM_ENIGMA_BERRY_E_READER) + else + #endif + if (itemId == ITEM_ENIGMA_BERRY_E_READER) holdEffect = gEnigmaBerries[battlerId].holdEffect; else holdEffect = ItemId_GetHoldEffect(itemId); @@ -9716,9 +9821,8 @@ bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId) bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) { - if (B_BADGE_BOOST != GEN_3) - return FALSE; - else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FRONTIER)) +#if B_BADGE_BOOST != GEN_3 + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_FRONTIER)) return FALSE; else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) return FALSE; @@ -9726,8 +9830,8 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) return FALSE; else if (FlagGet(badgeFlag)) return TRUE; - else - return FALSE; +#endif + return FALSE; } u8 GetBattleMoveSplit(u32 moveId) @@ -9736,12 +9840,17 @@ u8 GetBattleMoveSplit(u32 moveId) return gBattleStruct->zmove.activeSplit; if (gBattleStruct != NULL && gBattleStruct->swapDamageCategory) // Photon Geyser, Shell Side Arm, Light That Burns the Sky return SPLIT_PHYSICAL; - else if (IS_MOVE_STATUS(moveId) || B_PHYSICAL_SPECIAL_SPLIT >= GEN_4) - return gBattleMoves[moveId].split; + +#if B_PHYSICAL_SPECIAL_SPLIT >= GEN_4 + return gBattleMoves[moveId].split; +#else + if (IS_MOVE_STATUS(moveId)) + return SPLIT_STATUS; else if (gBattleMoves[moveId].type < TYPE_MYSTERY) return SPLIT_PHYSICAL; else return SPLIT_SPECIAL; +#endif } static bool32 TryRemoveScreens(u8 battler) @@ -9818,6 +9927,19 @@ struct Pokemon *GetBattlerPartyData(u8 battlerId) return mon; } +static u8 GetFlingPowerFromItemId(u16 itemId) +{ + if (itemId >= ITEM_TM01 && itemId <= ITEM_HM08) + { + u8 power = gBattleMoves[ItemIdToBattleMoveId(itemId)].power; + if (power > 1) + return power; + return 10; // Status moves and moves with variable power always return 10 power. + } + else + return ItemId_GetFlingPower(itemId); +} + // Make sure the input bank is any bank on the specific mon's side bool32 CanFling(u8 battlerId) { @@ -9830,7 +9952,7 @@ bool32 CanFling(u8 battlerId) #endif || gFieldStatuses & STATUS_FIELD_MAGIC_ROOM || gDisableStructs[battlerId].embargoTimer != 0 - || ItemId_GetFlingPower(item) != 0 + || GetFlingPowerFromItemId(item) != 0 || !CanBattlerGetOrLoseItem(battlerId, item)) return FALSE; @@ -9986,7 +10108,7 @@ bool32 CanStealItem(u8 battlerStealing, u8 battlerItem, u16 item) | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE - #if B_TRAINERS_KNOCK_OFF_ITEMS + #if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE | BATTLE_TYPE_TRAINER #endif ))) @@ -10015,14 +10137,14 @@ void TrySaveExchangedItem(u8 battlerId, u16 stolenItem) { // Because BtlController_EmitSetMonData does SetMonData, we need to save the stolen item only if it matches the battler's original // So, if the player steals an item during battle and has it stolen from it, it will not end the battle with it (naturally) - #if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE +#if B_TRAINERS_KNOCK_OFF_ITEMS == TRUE // If regular trainer battle and mon's original item matches what is being stolen, save it to be restored at end of battle if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_FRONTIER) && GetBattlerSide(battlerId) == B_SIDE_PLAYER && stolenItem == gBattleStruct->itemStolen[gBattlerPartyIndexes[battlerId]].originalItem) gBattleStruct->itemStolen[gBattlerPartyIndexes[battlerId]].stolen = TRUE; - #endif +#endif } bool32 IsBattlerAffectedByHazards(u8 battlerId, bool32 toxicSpikes) @@ -10152,7 +10274,7 @@ void DoBurmyFormChange(u32 monId) currSpecies = GetMonData(&party[monId], MON_DATA_SPECIES, NULL); - if ((GET_BASE_SPECIES_ID(currSpecies) == SPECIES_BURMY) + if ((GET_BASE_SPECIES_ID(currSpecies) == SPECIES_BURMY) && (gBattleStruct->appearedInBattle & gBitTable[monId]) // Burmy appeared in battle && GetMonData(&party[monId], MON_DATA_HP, NULL) != 0) // Burmy isn't fainted { diff --git a/src/battle_z_move.c b/src/battle_z_move.c index efa1e6e18..d41e28ac2 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -58,7 +58,6 @@ static u8 GetZMoveScore(u8 battlerAtk, u8 battlerDef, u16 baseMove, u16 zMove); // Const Data static const struct SignatureZMove sSignatureZMoves[] = { -// #ifdef NEW_POKEMON {SPECIES_PIKACHU_COSPLAY, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, {SPECIES_PIKACHU_ROCK_STAR, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, {SPECIES_PIKACHU_BELLE, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, @@ -95,7 +94,6 @@ static const struct SignatureZMove sSignatureZMoves[] = {SPECIES_TAPU_LELE, ITEM_TAPUNIUM_Z, MOVE_NATURES_MADNESS, MOVE_GUARDIAN_OF_ALOLA}, {SPECIES_TAPU_FINI, ITEM_TAPUNIUM_Z, MOVE_NATURES_MADNESS, MOVE_GUARDIAN_OF_ALOLA}, {SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z, MOVE_PHOTON_GEYSER, MOVE_LIGHT_THAT_BURNS_THE_SKY}, -// #endif {SPECIES_MEW, ITEM_MEWNIUM_Z, MOVE_PSYCHIC, MOVE_GENESIS_SUPERNOVA}, {SPECIES_PIKACHU, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, {SPECIES_EEVEE, ITEM_EEVIUM_Z, MOVE_LAST_RESORT, MOVE_EXTREME_EVOBOOST}, @@ -189,10 +187,13 @@ bool32 IsViableZMove(u8 battlerId, u16 move) if (IsPartnerMonFromSameTrainer(battlerId) && (mega->alreadyEvolved[partnerPosition] || (mega->toEvolve & gBitTable[BATTLE_PARTNER(battlerId)]))) return FALSE; // Partner has mega evolved or is about to mega evolve } - - if (B_ENABLE_DEBUG && gBattleStruct->debugHoldEffects[battlerId]) + +#if B_ENABLE_DEBUG == TRUE + if (gBattleStruct->debugHoldEffects[battlerId]) holdEffect = gBattleStruct->debugHoldEffects[battlerId]; - else if (item == ITEM_ENIGMA_BERRY) + else +#endif + if (item == ITEM_ENIGMA_BERRY) return FALSE; // HoldEffect = gEnigmaBerries[battlerId].holdEffect; else holdEffect = ItemId_GetHoldEffect(item); diff --git a/src/cable_car.c b/src/cable_car.c index 562e9eceb..dd1da3176 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -202,7 +202,7 @@ static const struct OamData sOam_Cable = .paletteNum = 0, }; -static const struct SpriteTemplate sSpriteTemplate_CableCar[] = +static const struct SpriteTemplate sSpriteTemplates_CableCar[] = { { .tileTag = TAG_CABLE_CAR, @@ -224,7 +224,8 @@ static const struct SpriteTemplate sSpriteTemplate_CableCar[] = }, }; -static const struct SpriteTemplate sSpriteTemplate_Cable = { +static const struct SpriteTemplate sSpriteTemplate_Cable = +{ .tileTag = TAG_CABLE, .paletteTag = TAG_CABLE_CAR, .oam = &sOam_Cable, @@ -836,12 +837,12 @@ static void CreateCableCarSprites(void) gSprites[spriteId].sYPos = 73; } // Create car sprite - spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 176, 43, 0x67); + spriteId = CreateSprite(&sSpriteTemplates_CableCar[0], 176, 43, 0x67); gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32; gSprites[spriteId].sXPos = 176; gSprites[spriteId].sYPos = 43; // Create door sprite - spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 200, 99, 0x65); + spriteId = CreateSprite(&sSpriteTemplates_CableCar[1], 200, 99, 0x65); gSprites[spriteId].x2 = 8; gSprites[spriteId].y2 = 4; gSprites[spriteId].sXPos = 200; @@ -864,12 +865,12 @@ static void CreateCableCarSprites(void) gSprites[spriteId].sYPos = 39; } // Create car sprite - spriteId = CreateSprite(&sSpriteTemplate_CableCar[0], 104, 9, 0x67); + spriteId = CreateSprite(&sSpriteTemplates_CableCar[0], 104, 9, 0x67); gSprites[spriteId].x2 = gSprites[spriteId].y2 = 32; gSprites[spriteId].sXPos = 104; gSprites[spriteId].sYPos = 9; // Create door sprite - spriteId = CreateSprite(&sSpriteTemplate_CableCar[1], 128, 65, 0x65); + spriteId = CreateSprite(&sSpriteTemplates_CableCar[1], 128, 65, 0x65); gSprites[spriteId].x2 = 8; gSprites[spriteId].y2 = 4; gSprites[spriteId].sXPos = 128; diff --git a/src/contest.c b/src/contest.c index 0c525ed3a..0b5eda51b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -3121,7 +3121,7 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind u8 spriteId; species = SanitizeSpecies(species); - HandleLoadSpecialPokePic(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], species, personality); + HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], species, personality); LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20); SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_PLAYER_LEFT); diff --git a/src/contest_painting.c b/src/contest_painting.c index 48021e28c..f891946d6 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -367,20 +367,18 @@ static void InitContestMonPixels(u16 species, bool8 backPic) LZDecompressVram(pal, gContestPaintingMonPalette); if (!backPic) { - HandleLoadSpecialPokePic( - &gMonFrontPicTable[species], - gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], - species, - gContestPaintingWinner->personality); + HandleLoadSpecialPokePic(TRUE, + gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], + species, + gContestPaintingWinner->personality); _InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], gContestPaintingMonPalette, (void *)gContestMonPixels); } else { - HandleLoadSpecialPokePic( - &gMonBackPicTable[species], - gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], - species, - gContestPaintingWinner->personality); + HandleLoadSpecialPokePic(FALSE, + gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], + species, + gContestPaintingWinner->personality); _InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], gContestPaintingMonPalette, (void *)gContestMonPixels); } } diff --git a/src/contest_util.c b/src/contest_util.c index 79bf09eb2..dfd69a285 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -892,11 +892,10 @@ static void Task_ShowWinnerMonBanner(u8 taskId) species = gContestMons[i].species; personality = gContestMons[i].personality; otId = gContestMons[i].otId; - HandleLoadSpecialPokePic( - &gMonFrontPicTable[species], - gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], - species, - personality); + HandleLoadSpecialPokePic(TRUE, + gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], + species, + personality); pokePal = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); LoadCompressedSpritePalette(pokePal); @@ -2572,7 +2571,7 @@ void ShowContestEntryMonPic(void) taskId = CreateTask(Task_ShowContestEntryMonPic, 0x50); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = species; - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality); + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality); palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); LoadCompressedSpritePalette(palette); diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h index 62f3802a5..b8fb8c037 100644 --- a/src/data/battle_anim.h +++ b/src/data/battle_anim.h @@ -1014,16 +1014,16 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, - #if B_NEW_SWORD_PARTICLE +#if B_NEW_SWORD_PARTICLE {gBattleAnimSpriteGfx_NewSword, 0x0400, ANIM_TAG_SWORD}, - #else +#else {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, - #endif - #if B_NEW_LEECH_SEED_PARTICLE +#endif +#if B_NEW_LEECH_SEED_PARTICLE {gBattleAnimSpriteGfx_NewLeechSeed, 0x0180, ANIM_TAG_SEED}, - #else +#else {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, - #endif +#endif {gBattleAnimSpriteGfx_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, {gBattleAnimSpriteGfx_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, {gBattleAnimSpriteGfx_Gust, 0x0400, ANIM_TAG_GUST}, @@ -1046,11 +1046,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, - #if B_NEW_EMBER_PARTICLES +#if B_NEW_EMBER_PARTICLES {gBattleAnimSpriteGfx_NewEmbers, 0x0A00, ANIM_TAG_SMALL_EMBER}, - #else +#else {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, - #endif +#endif {gBattleAnimSpriteGfx_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, {gBattleAnimSpriteGfx_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, {gBattleAnimSpriteGfx_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, @@ -1079,20 +1079,20 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, - #if NEW_ROCKS_PARTICLE +#if NEW_ROCKS_PARTICLE {gBattleAnimSpriteGfx_NewRocks, 0x0C00, ANIM_TAG_ROCKS}, - #else +#else {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, - #endif +#endif {gBattleAnimSpriteGfx_Z, 0x0100, ANIM_TAG_Z}, {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, - #if B_NEW_LEAF_PARTICLE +#if B_NEW_LEAF_PARTICLE {gBattleAnimSpriteGfx_NewLeaf, 0x0480, ANIM_TAG_LEAF}, - #else +#else {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, - #endif +#endif {gBattleAnimSpriteGfx_Finger, 0x0200, ANIM_TAG_FINGER}, {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, {gBattleAnimSpriteGfx_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, @@ -1156,11 +1156,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, - #if NEW_SUBSTITUTE_PARTICLE +#if NEW_SUBSTITUTE_PARTICLE {gBattleAnimSpriteGfx_NewSubstituteFront, 0x0200, ANIM_TAG_MONSTER_DOLL}, - #else +#else {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, - #endif +#endif {gBattleAnimSpriteGfx_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, {gBattleAnimSpriteGfx_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, {gBattleAnimSpriteGfx_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, @@ -1172,19 +1172,19 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, - #if B_NEW_TEETH_PARTICLE +#if B_NEW_TEETH_PARTICLE {gBattleAnimSpriteGfx_NewTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, - #else +#else {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, - #endif +#endif {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, - #if B_NEW_HANDS_FEET_PARTICLE +#if B_NEW_HANDS_FEET_PARTICLE {gBattleAnimSpriteGfx_NewHandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, - #else +#else {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, - #endif +#endif {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, {gBattleAnimSpriteGfx_Clamp, 0x0800, ANIM_TAG_CLAMP}, {gBattleAnimSpriteGfx_Bubble, 0x0180, ANIM_TAG_BUBBLE}, @@ -1193,19 +1193,19 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, - #if B_NEW_SPIKES_PARTICLE +#if B_NEW_SPIKES_PARTICLE {gBattleAnimSpriteGfx_NewSpikes, 0x0080, ANIM_TAG_SPIKES}, - #else +#else {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, - #endif +#endif {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, - #if B_NEW_FLY_BUBBLE_PARTICLE +#if B_NEW_FLY_BUBBLE_PARTICLE {gBattleAnimSpriteGfx_NewFly, 0x0800, ANIM_TAG_ROUND_SHADOW}, - #else +#else {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, - #endif +#endif {gBattleAnimSpriteGfx_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, {gBattleAnimSpriteGfx_Spore, 0x0100, ANIM_TAG_SPORE}, {gBattleAnimSpriteGfx_Flower, 0x00a0, ANIM_TAG_FLOWER}, @@ -1236,11 +1236,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, - #if B_NEW_MEAN_LOOK_PARTICLE +#if B_NEW_MEAN_LOOK_PARTICLE {gBattleAnimSpriteGfx_NewEye, 0x0800, ANIM_TAG_EYE}, - #else +#else {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, - #endif +#endif {gBattleAnimSpriteGfx_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, {gBattleAnimSpriteGfx_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, {gBattleAnimSpriteGfx_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, @@ -1252,11 +1252,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, - #if B_NEW_CURSE_NAIL_PARTICLE +#if B_NEW_CURSE_NAIL_PARTICLE {gBattleAnimSpriteGfx_NewNail, 0x0400, ANIM_TAG_NAIL}, - #else +#else {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, - #endif +#endif {gBattleAnimSpriteGfx_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, {gBattleAnimSpriteGfx_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, {gBattleAnimSpriteGfx_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, @@ -1283,11 +1283,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, - #if B_NEW_BATON_PASS_BALL_PARTICLE +#if B_NEW_BATON_PASS_BALL_PARTICLE {gBattleAnimSpriteGfx_NewPokeball, 0x0080, ANIM_TAG_POKEBALL}, - #else +#else {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, - #endif +#endif {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, @@ -1302,11 +1302,11 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, - #if B_NEW_MORNING_SUN_STAR_PARTICLE +#if B_NEW_MORNING_SUN_STAR_PARTICLE {gBattleAnimSpriteGfx_NewGreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, - #else +#else {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, - #endif +#endif {gBattleAnimSpriteGfx_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, {gBattleAnimSpriteGfx_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, {gBattleAnimSpriteGfx_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, @@ -1461,16 +1461,16 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, - #if B_NEW_SWORD_PARTICLE +#if B_NEW_SWORD_PARTICLE {gBattleAnimSpritePal_NewSword, ANIM_TAG_SWORD}, - #else +#else {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, - #endif - #if B_NEW_LEECH_SEED_PARTICLE +#endif +#if B_NEW_LEECH_SEED_PARTICLE {gBattleAnimSpritePal_NewLeechSeed, ANIM_TAG_SEED}, - #else +#else {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, - #endif +#endif {gBattleAnimSpritePal_Explosion6, ANIM_TAG_EXPLOSION_6}, {gBattleAnimSpritePal_PinkOrb, ANIM_TAG_PINK_ORB}, {gBattleAnimSpritePal_Gust, ANIM_TAG_GUST}, @@ -1484,11 +1484,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, - #if B_NEW_HORN_ATTACK_PARTICLE +#if B_NEW_HORN_ATTACK_PARTICLE {gBattleAnimSpritePal_NewHornHit, ANIM_TAG_HORN_HIT}, - #else +#else {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, - #endif +#endif {gBattleAnimSpritePal_Hit, ANIM_TAG_HIT}, {gBattleAnimSpritePal_Hit2, ANIM_TAG_HIT_2}, {gBattleAnimSpritePal_BlueShards, ANIM_TAG_BLUE_SHARDS}, @@ -1497,11 +1497,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, - #if B_NEW_EMBER_PARTICLES +#if B_NEW_EMBER_PARTICLES {gBattleAnimSpritePal_NewEmbers, ANIM_TAG_SMALL_EMBER}, - #else +#else {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, - #endif +#endif {gBattleAnimSpritePal_GraySmoke, ANIM_TAG_GRAY_SMOKE}, {gBattleAnimSpritePal_BlueStar, ANIM_TAG_BLUE_STAR}, {gBattleAnimSpritePal_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, @@ -1530,20 +1530,20 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, - #if NEW_ROCKS_PARTICLE +#if NEW_ROCKS_PARTICLE {gBattleAnimSpritePal_NewRocks, ANIM_TAG_ROCKS}, - #else +#else {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, - #endif +#endif {gBattleAnimSpritePal_Z, ANIM_TAG_Z}, {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, - #if B_NEW_LEAF_PARTICLE +#if B_NEW_LEAF_PARTICLE {gBattleAnimSpritePal_NewLeaf, ANIM_TAG_LEAF}, - #else +#else {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, - #endif +#endif {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER}, {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POISON_POWDER}, {gBattleAnimSpritePal_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, @@ -1607,11 +1607,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, - #if NEW_SUBSTITUTE_PARTICLE +#if NEW_SUBSTITUTE_PARTICLE {gBattleAnimSpritePal_NewSubstituteFront, ANIM_TAG_MONSTER_DOLL}, - #else +#else {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, - #endif +#endif {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND}, {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND_2}, {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_4}, @@ -1619,27 +1619,27 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, - #if B_NEW_IMPACT_PALETTE +#if B_NEW_IMPACT_PALETTE {gBattleAnimSpritePal_NewImpact, ANIM_TAG_IMPACT}, - #else +#else {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, - #endif +#endif {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, - #if B_NEW_TEETH_PARTICLE +#if B_NEW_TEETH_PARTICLE {gBattleAnimSpritePal_NewTeeth, ANIM_TAG_SHARP_TEETH}, - #else +#else {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, - #endif +#endif {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, - #if B_NEW_HANDS_FEET_PARTICLE +#if B_NEW_HANDS_FEET_PARTICLE {gBattleAnimSpritePal_NewHandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, - #else +#else {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, - #endif +#endif {gBattleAnimSpritePal_MistCloud, ANIM_TAG_MIST_CLOUD}, {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_CLAMP}, {gBattleAnimSpritePal_RainDrops, ANIM_TAG_BUBBLE}, @@ -1648,19 +1648,19 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, - #if B_NEW_SPIKES_PARTICLE +#if B_NEW_SPIKES_PARTICLE {gBattleAnimSpritePal_NewSpikes, ANIM_TAG_SPIKES}, - #else +#else {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, - #endif +#endif {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, - #if B_NEW_FLY_BUBBLE_PARTICLE +#if B_NEW_FLY_BUBBLE_PARTICLE {gBattleAnimSpritePal_NewFly, ANIM_TAG_ROUND_SHADOW}, - #else +#else {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, - #endif +#endif {gBattleAnimSpritePal_Sunlight, ANIM_TAG_SUNLIGHT}, {gBattleAnimSpritePal_Spore, ANIM_TAG_SPORE}, {gBattleAnimSpritePal_Flower, ANIM_TAG_FLOWER}, @@ -1691,11 +1691,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, - #if B_NEW_MEAN_LOOK_PARTICLE +#if B_NEW_MEAN_LOOK_PARTICLE {gBattleAnimSpritePal_NewEye, ANIM_TAG_EYE}, - #else +#else {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, - #endif +#endif {gBattleAnimSpritePal_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, {gBattleAnimSpritePal_TealAlert, ANIM_TAG_TEAL_ALERT}, {gBattleAnimSpritePal_OpeningEye, ANIM_TAG_OPENING_EYE}, @@ -1734,11 +1734,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, - #if B_NEW_BATON_PASS_BALL_PARTICLE +#if B_NEW_BATON_PASS_BALL_PARTICLE {gBattleAnimSpritePal_NewPokeball, ANIM_TAG_POKEBALL}, - #else +#else {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, - #endif +#endif {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, @@ -1753,11 +1753,11 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, - #if B_NEW_MORNING_SUN_STAR_PARTICLE +#if B_NEW_MORNING_SUN_STAR_PARTICLE {gBattleAnimSpritePal_NewGreenStar, ANIM_TAG_GREEN_STAR}, - #else +#else {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, - #endif +#endif {gBattleAnimSpritePal_PinkCloud, ANIM_TAG_PINK_CLOUD}, {gBattleAnimSpritePal_SweatDrop, ANIM_TAG_SWEAT_DROP}, {gBattleAnimSpritePal_GuardRing, ANIM_TAG_GUARD_RING}, diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index f3795325d..4b5cde44c 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -13233,8 +13233,392 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_Z] = .zMovePower = 160, .zMoveEffect = Z_EFFECT_NONE, }, - - // Z MOVES + + [MOVE_DIRE_CLAW] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_DIRE_CLAW, + .power = 60, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 120, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_PSYSHIELD_BASH] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_PSYSHIELD_BASH, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 50, // TODO: Adjust this value. Currently it's set to Fiery Dance's. + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 140, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_POWER_SHIFT] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_POWER_SHIFT, + .power = 0, + .type = TYPE_NORMAL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_STATUS, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_STONE_AXE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_STONE_AXE, + .power = 65, + .type = TYPE_ROCK, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 120, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_SPRINGTIDE_STORM] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SPRINGTIDE_STORM, + .power = 95, + .type = TYPE_FAIRY, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 30, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 175, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_MYSTICAL_POWER] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_MYSTICAL_POWER, + .power = 70, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 140, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_RAGING_FURY] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_RAGING_FURY, + .power = 90, + .type = TYPE_FIRE, + .accuracy = 85, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 175, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_WAVE_CRASH] = + { + .effect = EFFECT_RECOIL_33, // TODO: Legends: Arceus mechanics. + .power = 75, + .type = TYPE_WATER, + .accuracy = 100, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 140, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_CHLOROBLAST] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_CHLOROBLAST, + .power = 120, + .type = TYPE_GRASS, + .accuracy = 95, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 190, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_MOUNTAIN_GALE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_ACTION_SPEED_DOWN_HIT, + .power = 100, + .type = TYPE_ICE, + .accuracy = 85, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 180, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_VICTORY_DANCE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_VICTORY_DANCE, + .power = 0, + .type = TYPE_FIGHTING, + .accuracy = 0, + .pp = 20, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED | FLAG_DANCE, + .split = SPLIT_STATUS, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_HEADLONG_RUSH] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_HEADLONG_RUSH, + .power = 100, + .type = TYPE_GROUND, + .accuracy = 100, + .pp = 5, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 180, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_BARB_BARRAGE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_BARB_BARRAGE, + .power = 60, + .type = TYPE_POISON, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 120, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_ESPER_WING] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_ESPER_WING, + .power = 75, + .type = TYPE_PSYCHIC, + .accuracy = 90, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 140, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_BITTER_MALICE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_ESPER_WING, + .power = 60, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 120, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_SHELTER] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SHELTER, + .power = 0, + .type = TYPE_STEEL, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = 0, + .split = SPLIT_STATUS, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_TRIPLE_ARROWS] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_TRIPLE_ARROWS, + .power = 50, + .type = TYPE_FIGHTING, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 100, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_INFERNAL_PARADE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_INFERNAL_PARADE, + .power = 60, + .type = TYPE_GHOST, + .accuracy = 100, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 120, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_CEASELESS_EDGE] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_CEASELESS_EDGE, + .power = 65, + .type = TYPE_DARK, + .accuracy = 90, + .pp = 15, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_PHYSICAL, + .zMovePower = 120, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_BLEAKWIND_STORM] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_BLEAKWIND_STORM, + .power = 95, + .type = TYPE_FLYING, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 175, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_WILDBOLT_STORM] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_WILDBOLT_STORM, + .power = 95, + .type = TYPE_ELECTRIC, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 175, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_SANDSEAR_STORM] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_SANDSEAR_STORM, + .power = 95, + .type = TYPE_GROUND, + .accuracy = 80, + .pp = 5, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_SELECTED, + .priority = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED, + .split = SPLIT_SPECIAL, + .zMovePower = 175, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_LUNAR_BLESSING] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_LUNAR_BLESSING, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + .split = SPLIT_STATUS, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + [MOVE_TAKE_HEART] = + { + .effect = EFFECT_PLACEHOLDER, // EFFECT_TAKE_HEART, + .power = 0, + .type = TYPE_PSYCHIC, + .accuracy = 0, + .pp = 10, + .secondaryEffectChance = 0, + .target = MOVE_TARGET_USER, + .priority = 0, + .flags = FLAG_SNATCH_AFFECTED, + .split = SPLIT_STATUS, + .zMovePower = 100, + .zMoveEffect = Z_EFFECT_NONE, + }, + + // Z-Moves [MOVE_BREAKNECK_BLITZ] = { .effect = EFFECT_HIT, diff --git a/src/data/contest_moves.h b/src/data/contest_moves.h index 169e55991..244f0ddb2 100644 --- a/src/data/contest_moves.h +++ b/src/data/contest_moves.h @@ -5918,6 +5918,54 @@ const struct ContestMove gContestMoves[MOVES_COUNT] = .comboStarterId = 0, .comboMoves = {0} }, + + [MOVE_DIRE_CLAW] = {0}, // TODO + + [MOVE_PSYSHIELD_BASH] = {0}, // TODO + + [MOVE_POWER_SHIFT] = {0}, // TODO + + [MOVE_STONE_AXE] = {0}, // TODO + + [MOVE_SPRINGTIDE_STORM] = {0}, // TODO + + [MOVE_MYSTICAL_POWER] = {0}, // TODO + + [MOVE_RAGING_FURY] = {0}, // TODO + + [MOVE_WAVE_CRASH] = {0}, // TODO + + [MOVE_CHLOROBLAST] = {0}, // TODO + + [MOVE_MOUNTAIN_GALE] = {0}, // TODO + + [MOVE_VICTORY_DANCE] = {0}, // TODO + + [MOVE_HEADLONG_RUSH] = {0}, // TODO + + [MOVE_BARB_BARRAGE] = {0}, // TODO + + [MOVE_ESPER_WING] = {0}, // TODO + + [MOVE_BITTER_MALICE] = {0}, // TODO + + [MOVE_SHELTER] = {0}, // TODO + + [MOVE_TRIPLE_ARROWS] = {0}, // TODO + + [MOVE_INFERNAL_PARADE] = {0}, // TODO + + [MOVE_CEASELESS_EDGE] = {0}, // TODO + + [MOVE_BLEAKWIND_STORM] = {0}, // TODO + + [MOVE_WILDBOLT_STORM] = {0}, // TODO + + [MOVE_SANDSEAR_STORM] = {0}, // TODO + + [MOVE_LUNAR_BLESSING] = {0}, // TODO + + [MOVE_TAKE_HEART] = {0}, // TODO }; const struct ContestEffect gContestEffects[] = diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 5824669ff..afb9ecd9a 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -913,6 +913,14 @@ const u32 gMonFrontPic_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/fron 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_Basculegion[] = INCBIN_U32("graphics/pokemon/basculegion/front.4bpp.lz"); +//const u32 gMonFrontPic_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/frontf.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_Enamorus[] = INCBIN_U32("graphics/pokemon/enamorus/front.4bpp.lz"); 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"); @@ -1000,6 +1008,22 @@ const u32 gMonFrontPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumak const u32 gMonFrontPic_DarmanitanGalarian[] = 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"); +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_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"); +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"); +//const u32 gMonFrontPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/front.4bpp.lz"); 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"); @@ -1062,9 +1086,12 @@ const u32 gMonFrontPic_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/ani 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"); 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_DarmanitanZenModeGalarian[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/front.4bpp.lz"); const u32 gMonFrontPic_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/front.4bpp.lz"); @@ -1073,6 +1100,7 @@ const u32 gMonFrontPic_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/ 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_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/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"); @@ -2069,6 +2097,14 @@ const u32 gMonBackPic_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/back. 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_Basculegion[] = INCBIN_U32("graphics/pokemon/basculegion/back.4bpp.lz"); +//const u32 gMonBackPic_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/backf.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_Enamorus[] = INCBIN_U32("graphics/pokemon/enamorus/back.4bpp.lz"); 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"); @@ -2156,6 +2192,22 @@ const u32 gMonBackPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka const u32 gMonBackPic_DarmanitanGalarian[] = 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"); +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_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"); +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"); +//const u32 gMonBackPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/back.4bpp.lz"); 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"); @@ -2218,9 +2270,12 @@ const u32 gMonBackPic_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/back 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"); 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_DarmanitanZenModeGalarian[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/back.4bpp.lz"); const u32 gMonBackPic_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/back.4bpp.lz"); @@ -2229,6 +2284,7 @@ const u32 gMonBackPic_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/w 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_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/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"); @@ -3217,6 +3273,14 @@ const u32 gMonPalette_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/norma 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_Basculegion[] = INCBIN_U32("graphics/pokemon/basculegion/normal.gbapal.lz"); +//const u32 gMonPalette_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/normalf.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_Enamorus[] = INCBIN_U32("graphics/pokemon/enamorus/normal.gbapal.lz"); 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"); @@ -3304,6 +3368,22 @@ const u32 gMonPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka const u32 gMonPalette_DarmanitanGalarian[] = 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"); +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"); +//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"); +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"); +//const u32 gMonPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/normal.gbapal.lz"); 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"); @@ -3339,6 +3419,8 @@ const u32 gMonPalette_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/norm 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"); @@ -3359,6 +3441,7 @@ const u32 gMonPalette_ArceusDragon[] = INCBIN_U32("graphics/pokemon/arceus/drago 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"); 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_DarmanitanZenModeGalarian[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/normal.gbapal.lz"); const u32 gMonPalette_DeerlingSummer[] = INCBIN_U32("graphics/pokemon/deerling/summer/normal.gbapal.lz"); @@ -3370,6 +3453,7 @@ const u32 gMonPalette_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/w 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_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/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"); @@ -4392,6 +4476,14 @@ const u32 gMonShinyPalette_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/ 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_Basculegion[] = INCBIN_U32("graphics/pokemon/basculegion/shiny.gbapal.lz"); +//const u32 gMonShinyPalette_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/shinyf.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_Enamorus[] = INCBIN_U32("graphics/pokemon/enamorus/shiny.gbapal.lz"); 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"); @@ -4479,6 +4571,22 @@ const u32 gMonShinyPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/dar const u32 gMonShinyPalette_DarmanitanGalarian[] = 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"); +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"); +//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"); +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"); +//const u32 gMonShinyPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/shiny.gbapal.lz"); 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"); @@ -4514,6 +4622,8 @@ const u32 gMonShinyPalette_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash 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"); @@ -4534,6 +4644,7 @@ const u32 gMonShinyPalette_ArceusDragon[] = INCBIN_U32("graphics/pokemon/arceus/ 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"); 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_DarmanitanZenModeGalarian[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/shiny.gbapal.lz"); const u32 gMonShinyPalette_DeerlingSummer[] = INCBIN_U32("graphics/pokemon/deerling/summer/shiny.gbapal.lz"); @@ -4545,6 +4656,7 @@ const u32 gMonShinyPalette_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsb 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_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/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"); @@ -5556,7 +5668,15 @@ 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_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_Basculegion[] = INCBIN_U8("graphics/pokemon/basculegion/icon.4bpp"); +const u8 gMonIcon_BasculegionF[] = INCBIN_U8("graphics/pokemon/basculegion/iconf.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_Enamorus[] = INCBIN_U8("graphics/pokemon/enamorus/icon.4bpp"); 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"); @@ -5644,6 +5764,22 @@ const u8 gMonIcon_DarumakaGalarian[] = INCBIN_U8("graphics/pokemon/darumaka/gala const u8 gMonIcon_DarmanitanGalarian[] = 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"); +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"); +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"); +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"); +const u8 gMonIcon_DecidueyeHisuian[] = INCBIN_U8("graphics/pokemon/decidueye/hisuian/icon.4bpp"); 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"); @@ -5705,9 +5841,12 @@ 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"); 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_DarmanitanZenModeGalarian[] = INCBIN_U8("graphics/pokemon/darmanitan/zen_mode/galarian/icon.4bpp"); const u8 gMonIcon_DeerlingSummer[] = INCBIN_U8("graphics/pokemon/deerling/summer/icon.4bpp"); @@ -5719,6 +5858,7 @@ const u8 gMonIcon_SawsbuckWinter[] = INCBIN_U8("graphics/pokemon/sawsbuck/winter 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_EnamorusTherian[] = INCBIN_U8("graphics/pokemon/enamorus/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"); @@ -6712,4 +6852,11 @@ const u8 gMonFootprint_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/footp 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"); #endif diff --git a/src/data/items.h b/src/data/items.h index bcb12e695..08060db77 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -1371,10 +1371,11 @@ const struct Item gItems[] = .name = _("Exp.Candy XS"), .itemId = ITEM_EXP_CANDY_XS, .price = 20, + .holdEffectParam = EXP_100, .description = sExpCandyXSDesc, .pocket = POCKET_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, .flingPower = 30, }, @@ -1383,10 +1384,11 @@ const struct Item gItems[] = .name = _("Exp.Candy S"), .itemId = ITEM_EXP_CANDY_S, .price = 240, + .holdEffectParam = EXP_800, .description = sExpCandyXSDesc, .pocket = POCKET_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, .flingPower = 30, }, @@ -1395,10 +1397,11 @@ const struct Item gItems[] = .name = _("Exp.Candy M"), .itemId = ITEM_EXP_CANDY_M, .price = 1000, + .holdEffectParam = EXP_3000, .description = sExpCandyMDesc, .pocket = POCKET_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, .flingPower = 30, }, @@ -1407,10 +1410,11 @@ const struct Item gItems[] = .name = _("Exp.Candy L"), .itemId = ITEM_EXP_CANDY_L, .price = 3000, + .holdEffectParam = EXP_10000, .description = sExpCandyLDesc, .pocket = POCKET_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, .flingPower = 30, }, @@ -1419,10 +1423,11 @@ const struct Item gItems[] = .name = _("Exp.Candy XL"), .itemId = ITEM_EXP_CANDY_XL, .price = 10000, + .holdEffectParam = EXP_30000, .description = sExpCandyXLDesc, .pocket = POCKET_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, .flingPower = 30, }, @@ -7794,7 +7799,7 @@ const struct Item gItems[] = .flingPower = 10, }, -// TMs/HMs +// TMs/HMs. They don't have a set flingPower, as that's handled by GetFlingPowerFromItemId. [ITEM_TM01_FOCUS_PUNCH] = { @@ -7805,7 +7810,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 150, }, [ITEM_TM02_DRAGON_CLAW] = @@ -7817,7 +7821,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 80, }, [ITEM_TM03_WATER_PULSE] = @@ -7829,7 +7832,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 60, }, [ITEM_TM04_CALM_MIND] = @@ -7841,7 +7843,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM05_ROAR] = @@ -7853,7 +7854,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM06_TOXIC] = @@ -7865,7 +7865,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM07_HAIL] = @@ -7877,7 +7876,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM08_BULK_UP] = @@ -7889,7 +7887,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM09_BULLET_SEED] = @@ -7901,11 +7898,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_5 - .flingPower = 25, - #else - .flingPower = 10, - #endif }, [ITEM_TM10_HIDDEN_POWER] = @@ -7917,11 +7909,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 60, - #else - .flingPower = 10, - #endif }, [ITEM_TM11_SUNNY_DAY] = @@ -7933,7 +7920,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM12_TAUNT] = @@ -7945,7 +7931,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM13_ICE_BEAM] = @@ -7957,11 +7942,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 90, - #else - .flingPower = 95, - #endif }, [ITEM_TM14_BLIZZARD] = @@ -7973,11 +7953,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 110, - #else - .flingPower = 120, - #endif }, [ITEM_TM15_HYPER_BEAM] = @@ -7989,7 +7964,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 150, }, [ITEM_TM16_LIGHT_SCREEN] = @@ -8001,7 +7975,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM17_PROTECT] = @@ -8013,7 +7986,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM18_RAIN_DANCE] = @@ -8025,7 +7997,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM19_GIGA_DRAIN] = @@ -8037,11 +8008,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_5 - .flingPower = 75, - #else - .flingPower = 60, - #endif }, [ITEM_TM20_SAFEGUARD] = @@ -8053,7 +8019,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM21_FRUSTRATION] = @@ -8065,7 +8030,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM22_SOLAR_BEAM] = @@ -8077,7 +8041,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 120, }, [ITEM_TM23_IRON_TAIL] = @@ -8089,7 +8052,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 100, }, [ITEM_TM24_THUNDERBOLT] = @@ -8101,11 +8063,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 90, - #else - .flingPower = 95, - #endif }, [ITEM_TM25_THUNDER] = @@ -8117,11 +8074,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 110, - #else - .flingPower = 120, - #endif }, [ITEM_TM26_EARTHQUAKE] = @@ -8133,7 +8085,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 100, }, [ITEM_TM27_RETURN] = @@ -8145,7 +8096,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM28_DIG] = @@ -8157,11 +8107,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_4 - .flingPower = 80, - #else - .flingPower = 60, - #endif }, [ITEM_TM29_PSYCHIC] = @@ -8173,7 +8118,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 90, }, [ITEM_TM30_SHADOW_BALL] = @@ -8185,7 +8129,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 80, }, [ITEM_TM31_BRICK_BREAK] = @@ -8197,7 +8140,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 75, }, [ITEM_TM32_DOUBLE_TEAM] = @@ -8209,7 +8151,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM33_REFLECT] = @@ -8221,7 +8162,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM34_SHOCK_WAVE] = @@ -8233,7 +8173,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 60, }, [ITEM_TM35_FLAMETHROWER] = @@ -8245,11 +8184,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 90, - #else - .flingPower = 95, - #endif }, [ITEM_TM36_SLUDGE_BOMB] = @@ -8261,7 +8195,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 90, }, [ITEM_TM37_SANDSTORM] = @@ -8273,7 +8206,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM38_FIRE_BLAST] = @@ -8285,11 +8217,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 110, - #else - .flingPower = 120, - #endif }, [ITEM_TM39_ROCK_TOMB] = @@ -8301,11 +8228,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 60, - #else - .flingPower = 50, - #endif }, [ITEM_TM40_AERIAL_ACE] = @@ -8317,7 +8239,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 60, }, [ITEM_TM41_TORMENT] = @@ -8329,7 +8250,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM42_FACADE] = @@ -8341,7 +8261,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM43_SECRET_POWER] = @@ -8353,7 +8272,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 70, }, [ITEM_TM44_REST] = @@ -8365,7 +8283,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM45_ATTRACT] = @@ -8377,7 +8294,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM46_THIEF] = @@ -8389,11 +8305,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 60, - #else - .flingPower = 40, - #endif }, [ITEM_TM47_STEEL_WING] = @@ -8405,7 +8316,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 70, }, [ITEM_TM48_SKILL_SWAP] = @@ -8417,7 +8327,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM49_SNATCH] = @@ -8429,7 +8338,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_TM50_OVERHEAT] = @@ -8441,11 +8349,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 130, - #else - .flingPower = 140, - #endif }, [ITEM_TM51] = @@ -9008,7 +8911,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 50, }, [ITEM_HM02_FLY] = @@ -9021,11 +8923,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_4 - .flingPower = 90, - #else - .flingPower = 70, - #endif }, [ITEM_HM03_SURF] = @@ -9038,11 +8935,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_6 - .flingPower = 90, - #else - .flingPower = 95, - #endif }, [ITEM_HM04_STRENGTH] = @@ -9055,7 +8947,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 80, }, [ITEM_HM05_FLASH] = @@ -9068,7 +8959,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 10, }, [ITEM_HM06_ROCK_SMASH] = @@ -9081,11 +8971,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_4 - .flingPower = 20, - #else - .flingPower = 40, - #endif }, [ITEM_HM07_WATERFALL] = @@ -9098,7 +8983,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - .flingPower = 80, }, [ITEM_HM08_DIVE] = @@ -9111,11 +8995,6 @@ const struct Item gItems[] = .pocket = POCKET_TM_HM, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_TMHM, - #if B_UPDATED_MOVE_DATA >= GEN_4 - .flingPower = 80, - #else - .flingPower = 60, - #endif }, diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h index 1157ac23d..41b5143cf 100644 --- a/src/data/pokemon/base_stats.h +++ b/src/data/pokemon/base_stats.h @@ -22684,6 +22684,177 @@ const struct BaseStats gBaseStats[] = .flags = FLAG_LEGENDARY, }, + [SPECIES_WYRDEER] = + { + .baseHP = 103, + .baseAttack = 105, + .baseDefense = 72, + .baseSpeed = 65, + .baseSpAttack = 105, + .baseSpDefense = 75, + .type1 = TYPE_NORMAL, + .type2 = TYPE_PSYCHIC, + .catchRate = 45, + .expYield = 184, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + }, + + [SPECIES_KLEAVOR] = + { + .baseHP = 70, + .baseAttack = 135, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 45, + .baseSpDefense = 70, + .type1 = TYPE_BUG, + .type2 = TYPE_ROCK, + .catchRate = 25, + .expYield = 175, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_BUG, + .eggGroup2 = EGG_GROUP_BUG, + .abilities = {ABILITY_SWARM, ABILITY_SHEER_FORCE, ABILITY_STEADFAST}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_URSALUNA] = + { + .baseHP = 130, + .baseAttack = 140, + .baseDefense = 105, + .baseSpeed = 50, + .baseSpAttack = 45, + .baseSpDefense = 80, + .type1 = TYPE_GROUND, + .type2 = TYPE_NORMAL, + .catchRate = 75, + .expYield = 194, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_GUTS, ABILITY_BULLETPROOF, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + }, + + [SPECIES_BASCULEGION] = + { + .baseHP = 120, + .baseAttack = 112, + .baseDefense = 65, + .baseSpeed = 78, + .baseSpAttack = 80, + .baseSpDefense = 75, + .type1 = TYPE_WATER, + .type2 = TYPE_GHOST, + .catchRate = 25, + .expYield = 186, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .abilities = {ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .flags = FLAG_GENDER_DIFFERENCE, + }, + + [SPECIES_SNEASLER] = + { + .baseHP = 80, + .baseAttack = 130, + .baseDefense = 60, + .baseSpeed = 120, + .baseSpAttack = 40, + .baseSpDefense = 80, + .type1 = TYPE_FIGHTING, + .type2 = TYPE_POISON, + .catchRate = 135, + .expYield = 179, + .evYield_Attack = 1, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_POISON_TOUCH}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + }, + + [SPECIES_OVERQWIL] = + { + .baseHP = 85, + .baseAttack = 115, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 65, + .baseSpDefense = 65, + .type1 = TYPE_DARK, + .type2 = TYPE_POISON, + .catchRate = 135, + .expYield = 180, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + }, + + [SPECIES_ENAMORUS] = + { + .baseHP = 74, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 106, + .baseSpAttack = 135, + .baseSpDefense = 80, + .type1 = TYPE_FAIRY, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 261, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .abilities = {ABILITY_HEALER, ABILITY_NONE, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .flags = FLAG_LEGENDARY, + }, + [SPECIES_VENUSAUR_MEGA] = { .baseHP = 80, @@ -24857,6 +25028,414 @@ const struct BaseStats gBaseStats[] = .flags = FLAG_GALARIAN_FORM, }, + [SPECIES_GROWLITHE_HISUIAN] = + { + .baseHP = 60, + .baseAttack = 75, + .baseDefense = 45, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 50, + .type1 = TYPE_FIRE, + .type2 = TYPE_ROCK, + .catchRate = 190, + .expYield = 70, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_ARCANINE_HISUIAN] = + { + .baseHP = 95, + .baseAttack = 115, + .baseDefense = 80, + .baseSpeed = 90, + .baseSpAttack = 95, + .baseSpDefense = 80, + .type1 = TYPE_FIRE, + .type2 = TYPE_ROCK, + .catchRate = 75, + .expYield = 194, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_VOLTORB_HISUIAN] = + { + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 100, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_GRASS, + .catchRate = 190, + .expYield = 66, + .evYield_Speed = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_ELECTRODE_HISUIAN] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpAttack = 80, + .baseSpDefense = 80, + .baseSpeed = 150, + .type1 = TYPE_ELECTRIC, + .type2 = TYPE_GRASS, + .catchRate = 60, + .expYield = 172, + .evYield_Speed = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MINERAL, + .eggGroup2 = EGG_GROUP_MINERAL, + .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_TYPHLOSION_HISUIAN] = + { + .baseHP = 73, + .baseAttack = 84, + .baseDefense = 78, + .baseSpeed = 95, + .baseSpAttack = 119, + .baseSpDefense = 85, + .type1 = TYPE_FIRE, + .type2 = TYPE_GHOST, + .catchRate = 45, + .expYield = 240, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_QWILFISH_HISUIAN] = + { + .baseHP = 65, + .baseAttack = 95, + .baseDefense = 85, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 55, + .type1 = TYPE_DARK, + .type2 = TYPE_POISON, + .catchRate = 45, + .expYield = 88, + .evYield_Attack = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_SNEASEL_HISUIAN] = + { + .baseHP = 55, + .baseAttack = 95, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 35, + .baseSpDefense = 75, + .type1 = TYPE_POISON, + .type2 = TYPE_FIGHTING, + .catchRate = 60, + .expYield = 86, + .evYield_Speed = 1, + .itemRare = ITEM_QUICK_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_POISON_TOUCH}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_SAMUROTT_HISUIAN] = + { + .baseHP = 90, + .baseAttack = 108, + .baseDefense = 80, + .baseSpeed = 85, + .baseSpAttack = 100, + .baseSpDefense = 65, + .type1 = TYPE_WATER, + .type2 = TYPE_DARK, + .catchRate = 45, + .expYield = 238, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_LILLIGANT_HISUIAN] = + { + .baseHP = 70, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 105, + .baseSpAttack = 50, + .baseSpDefense = 75, + .type1 = TYPE_GRASS, + .type2 = TYPE_FIGHTING, + .catchRate = 75, + .expYield = 168, + .evYield_Attack = 2, + #ifdef ITEM_EXPANSION + .itemRare = ITEM_ABSORB_BULB, + #endif + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_GRASS, + .eggGroup2 = EGG_GROUP_GRASS, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_HUSTLE, ABILITY_LEAF_GUARD}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_ZORUA_HISUIAN] = + { + .baseHP = 35, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 70, + .baseSpAttack = 85, + .baseSpDefense = 40, + .type1 = TYPE_NORMAL, + .type2 = TYPE_GHOST, + .catchRate = 75, + .expYield = 66, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_ZOROARK_HISUIAN] = + { + .baseHP = 55, + .baseAttack = 100, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 125, + .baseSpDefense = 60, + .type1 = TYPE_NORMAL, + .type2 = TYPE_GHOST, + .catchRate = 45, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FIELD, + .eggGroup2 = EGG_GROUP_FIELD, + .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_BRAVIARY_HISUIAN] = + { + .baseHP = 110, + .baseAttack = 83, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 112, + .baseSpDefense = 70, + .type1 = TYPE_PSYCHIC, + .type2 = TYPE_FLYING, + .catchRate = 60, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_DEFIANT}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_SLIGGOO_HISUIAN] = + { + .baseHP = 58, + .baseAttack = 75, + .baseDefense = 83, + .baseSpeed = 40, + .baseSpAttack = 83, + .baseSpDefense = 113, + .type1 = TYPE_DRAGON, + .type2 = TYPE_STEEL, + .catchRate = 45, + .expYield = 158, + .evYield_SpDefense = 2, + #ifdef ITEM_EXPANSION + .itemRare = ITEM_SHED_SHELL, + #endif + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_DRAGON, + .eggGroup2 = EGG_GROUP_DRAGON, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_OVERCOAT, ABILITY_GOOEY}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_GOODRA_HISUIAN] = + { + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 60, + .baseSpAttack = 110, + .baseSpDefense = 150, + .type1 = TYPE_DRAGON, + .type2 = TYPE_STEEL, + .catchRate = 45, + .expYield = 270, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_DRAGON, + .eggGroup2 = EGG_GROUP_DRAGON, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_OVERCOAT, ABILITY_GOOEY}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_AVALUGG_HISUIAN] = + { + .baseHP = 95, + .baseAttack = 127, + .baseDefense = 184, + .baseSpeed = 38, + .baseSpAttack = 34, + .baseSpDefense = 36, + .type1 = TYPE_ICE, + .type2 = TYPE_ROCK, + .catchRate = 55, + .expYield = 180, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_MONSTER, + .eggGroup2 = EGG_GROUP_MINERAL, + .abilities = {ABILITY_STRONG_JAW, ABILITY_ICE_BODY, ABILITY_STURDY}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + + [SPECIES_DECIDUEYE_HISUIAN] = + { + .baseHP = 88, + .baseAttack = 112, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 95, + .baseSpDefense = 95, + .type1 = TYPE_GRASS, + .type2 = TYPE_FIGHTING, + .catchRate = 45, + .expYield = 239, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroup1 = EGG_GROUP_FLYING, + .eggGroup2 = EGG_GROUP_FLYING, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .flags = FLAG_HISUIAN_FORM, + }, + [SPECIES_PIKACHU_COSPLAY] = COSPLAY_PIKACHU_BASE_STATS(FLIP), [SPECIES_PIKACHU_ROCK_STAR] = COSPLAY_PIKACHU_BASE_STATS(FLIP), [SPECIES_PIKACHU_BELLE] = COSPLAY_PIKACHU_BASE_STATS(NO_FLIP), @@ -25048,6 +25627,56 @@ const struct BaseStats gBaseStats[] = [SPECIES_ROTOM_FAN] = ROTOM_FORM_BASE_STATS(TYPE_FLYING, FLIP), [SPECIES_ROTOM_MOW] = ROTOM_FORM_BASE_STATS(TYPE_GRASS, FLIP), + [SPECIES_DIALGA_ORIGIN] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 120, + .baseSpeed = 90, + .baseSpAttack = 150, + .baseSpDefense = 120, + .type1 = TYPE_STEEL, + .type2 = TYPE_DRAGON, + .catchRate = 3, + .expYield = 306, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .flags = FLAG_LEGENDARY, + }, + + [SPECIES_PALKIA_ORIGIN] = + { + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 120, + .baseSpAttack = 150, + .baseSpDefense = 120, + .type1 = TYPE_WATER, + .type2 = TYPE_DRAGON, + .catchRate = 3, + .expYield = 306, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .flags = FLAG_LEGENDARY, + }, + [SPECIES_GIRATINA_ORIGIN] = { .baseHP = 150, @@ -25141,6 +25770,31 @@ const struct BaseStats gBaseStats[] = .noFlip = FALSE, }, + [SPECIES_BASCULIN_WHITE_STRIPED] = + { + .baseHP = 70, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 98, + .baseSpAttack = 80, + .baseSpDefense = 55, + .type1 = TYPE_WATER, + .type2 = TYPE_WATER, + .catchRate = 25, + .expYield = 161, + .evYield_Speed = 2, + .itemRare = ITEM_DEEP_SEA_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 70, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroup1 = EGG_GROUP_WATER_2, + .eggGroup2 = EGG_GROUP_WATER_2, + .abilities = {ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + }, + [SPECIES_DARMANITAN_ZEN_MODE] = { .baseHP = 105, @@ -25273,6 +25927,31 @@ const struct BaseStats gBaseStats[] = .flags = FLAG_LEGENDARY, }, + [SPECIES_ENAMORUS_THERIAN] = + { + .baseHP = 74, + .baseAttack = 115, + .baseDefense = 110, + .baseSpeed = 46, + .baseSpAttack = 135, + .baseSpDefense = 100, + .type1 = TYPE_FAIRY, + .type2 = TYPE_FLYING, + .catchRate = 3, + .expYield = 270, + .evYield_SpAttack = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 90, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .abilities = {ABILITY_OVERCOAT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .flags = FLAG_LEGENDARY, + }, + [SPECIES_KYUREM_WHITE] = { .baseHP = 125, diff --git a/src/data/pokemon/form_change_table_pointers.h b/src/data/pokemon/form_change_table_pointers.h index 3fdbff7a6..a324fd55a 100644 --- a/src/data/pokemon/form_change_table_pointers.h +++ b/src/data/pokemon/form_change_table_pointers.h @@ -29,6 +29,8 @@ const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES] = [SPECIES_THUNDURUS_THERIAN] = sThundurusTherianFormChangeTable, [SPECIES_LANDORUS] = sLandorusFormChangeTable, [SPECIES_LANDORUS_THERIAN] = sLandorusTherianFormChangeTable, + [SPECIES_ENAMORUS] = sEnamorusFormChangeTable, + [SPECIES_ENAMORUS_THERIAN] = sEnamorusTherianFormChangeTable, [SPECIES_KELDEO] = sKeldeoFormChangeTable, [SPECIES_KELDEO_RESOLUTE] = sKeldeoResoluteFormChangeTable, [SPECIES_GENESECT] = sGenesectFormChangeTable, diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index 15cb8cdec..5f8541c40 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -125,6 +125,16 @@ static const struct FormChange sLandorusTherianFormChangeTable[] = { {FORM_CHANGE_END}, }; +static const struct FormChange sEnamorusFormChangeTable[] = { + {FORM_ITEM_USE, SPECIES_ENAMORUS, ITEM_REVEAL_GLASS}, + {FORM_CHANGE_END}, +}; + +static const struct FormChange sEnamorusTherianFormChangeTable[] = { + {FORM_ITEM_USE, SPECIES_ENAMORUS_THERIAN, ITEM_REVEAL_GLASS}, + {FORM_CHANGE_END}, +}; + static const struct FormChange sKeldeoFormChangeTable[] = { {FORM_MOVE, SPECIES_KELDEO_RESOLUTE, MOVE_SECRET_SWORD, WHEN_LEARNED}, {FORM_CHANGE_END}, diff --git a/src/data/pokemon/form_species_table_pointers.h b/src/data/pokemon/form_species_table_pointers.h index 60cfadad2..71a210e40 100644 --- a/src/data/pokemon/form_species_table_pointers.h +++ b/src/data/pokemon/form_species_table_pointers.h @@ -19,6 +19,8 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_MEOWTH] = sMeowthFormSpeciesIdTable, [SPECIES_PERSIAN] = sPersianFormSpeciesIdTable, [SPECIES_ALAKAZAM] = sAlakazamFormSpeciesIdTable, + [SPECIES_GROWLITHE] = sGrowlitheFormSpeciesIdTable, + [SPECIES_ARCANINE] = sArcanineFormSpeciesIdTable, [SPECIES_GEODUDE] = sGeodudeFormSpeciesIdTable, [SPECIES_GRAVELER] = sGravelerFormSpeciesIdTable, [SPECIES_GOLEM] = sGolemFormSpeciesIdTable, @@ -30,6 +32,8 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_GRIMER] = sGrimerFormSpeciesIdTable, [SPECIES_MUK] = sMukFormSpeciesIdTable, [SPECIES_GENGAR] = sGengarFormSpeciesIdTable, + [SPECIES_VOLTORB] = sVoltorbFormSpeciesIdTable, + [SPECIES_ELECTRODE] = sElectrodeFormSpeciesIdTable, [SPECIES_EXEGGUTOR] = sExeggutorFormSpeciesIdTable, [SPECIES_MAROWAK] = sMarowakFormSpeciesIdTable, [SPECIES_WEEZING] = sWeezingFormSpeciesIdTable, @@ -42,9 +46,12 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_ZAPDOS] = sZapdosFormSpeciesIdTable, [SPECIES_MOLTRES] = sMoltresFormSpeciesIdTable, [SPECIES_MEWTWO] = sMewtwoFormSpeciesIdTable, + [SPECIES_TYPHLOSION] = sTyphlosionFormSpeciesIdTable, [SPECIES_PICHU] = sPichuFormSpeciesIdTable, [SPECIES_AMPHAROS] = sAmpharosFormSpeciesIdTable, [SPECIES_SLOWKING] = sSlowkingFormSpeciesIdTable, + [SPECIES_QWILFISH] = sQwilfishFormSpeciesIdTable, + [SPECIES_SNEASEL] = sSneaselFormSpeciesIdTable, #endif [SPECIES_UNOWN] = sUnownFormSpeciesIdTable, #if P_NEW_POKEMON == TRUE @@ -95,17 +102,24 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_ABOMASNOW] = sAbomasnowFormSpeciesIdTable, [SPECIES_GALLADE] = sGalladeFormSpeciesIdTable, [SPECIES_ROTOM] = sRotomFormSpeciesIdTable, + [SPECIES_DIALGA] = sDialgaFormSpeciesIdTable, + [SPECIES_PALKIA] = sPalkiaFormSpeciesIdTable, [SPECIES_GIRATINA] = sGiratinaFormSpeciesIdTable, + [SPECIES_SAMUROTT] = sSamurottFormSpeciesIdTable, [SPECIES_SHAYMIN] = sShayminFormSpeciesIdTable, [SPECIES_ARCEUS] = sArceusFormSpeciesIdTable, [SPECIES_AUDINO] = sAudinoFormSpeciesIdTable, [SPECIES_BASCULIN] = sBasculinFormSpeciesIdTable, + [SPECIES_LILLIGANT] = sLilligantFormSpeciesIdTable, [SPECIES_DARUMAKA] = sDarumakaFormSpeciesIdTable, [SPECIES_DARMANITAN] = sDarmanitanFormSpeciesIdTable, - [SPECIES_YAMASK] = sYamaskFormSpeciesIdTable, + [SPECIES_YAMASK] = sYamaskFormSpeciesIdTable, + [SPECIES_ZORUA] = sZoruaFormSpeciesIdTable, + [SPECIES_ZOROARK] = sZoroarkFormSpeciesIdTable, [SPECIES_DEERLING] = sDeerlingFormSpeciesIdTable, [SPECIES_SAWSBUCK] = sSawsbuckFormSpeciesIdTable, [SPECIES_STUNFISK] = sStunfiskFormSpeciesIdTable, + [SPECIES_BRAVIARY] = sBraviaryFormSpeciesIdTable, [SPECIES_TORNADUS] = sTornadusFormSpeciesIdTable, [SPECIES_THUNDURUS] = sThundurusFormSpeciesIdTable, [SPECIES_LANDORUS] = sLandorusFormSpeciesIdTable, @@ -121,12 +135,16 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_FURFROU] = sFurfrouFormSpeciesIdTable, [SPECIES_MEOWSTIC] = sMeowsticFormSpeciesIdTable, [SPECIES_AEGISLASH] = sAegislashFormSpeciesIdTable, + [SPECIES_SLIGGOO] = sSliggooFormSpeciesIdTable, + [SPECIES_GOODRA] = sGoodraFormSpeciesIdTable, [SPECIES_PUMPKABOO] = sPumpkabooFormSpeciesIdTable, [SPECIES_GOURGEIST] = sGourgeistFormSpeciesIdTable, + [SPECIES_AVALUGG] = sAvaluggFormSpeciesIdTable, [SPECIES_XERNEAS] = sXerneasFormSpeciesIdTable, [SPECIES_ZYGARDE] = sZygardeFormSpeciesIdTable, [SPECIES_DIANCIE] = sDiancieFormSpeciesIdTable, [SPECIES_HOOPA] = sHoopaFormSpeciesIdTable, + [SPECIES_DECIDUEYE] = sDecidueyeFormSpeciesIdTable, [SPECIES_ORICORIO] = sOricorioFormSpeciesIdTable, [SPECIES_ROCKRUFF] = sRockruffFormSpeciesIdTable, [SPECIES_LYCANROC] = sLycanrocFormSpeciesIdTable, @@ -150,6 +168,7 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_URSHIFU] = sUrshifuFormSpeciesIdTable, [SPECIES_ZARUDE] = sZarudeFormSpeciesIdTable, [SPECIES_CALYREX] = sCalyrexFormSpeciesIdTable, + [SPECIES_ENAMORUS] = sEnamorusFormSpeciesIdTable, // Megas [SPECIES_VENUSAUR_MEGA] = sVenusaurFormSpeciesIdTable, [SPECIES_CHARIZARD_MEGA_X] = sCharizardFormSpeciesIdTable, @@ -241,6 +260,23 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_DARMANITAN_GALARIAN] = sDarmanitanFormSpeciesIdTable, [SPECIES_YAMASK_GALARIAN] = sYamaskFormSpeciesIdTable, [SPECIES_STUNFISK_GALARIAN] = sStunfiskFormSpeciesIdTable, + //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, + [SPECIES_SAMUROTT_HISUIAN] = sSamurottFormSpeciesIdTable, + [SPECIES_LILLIGANT_HISUIAN] = sLilligantFormSpeciesIdTable, + [SPECIES_ZORUA_HISUIAN] = sZoruaFormSpeciesIdTable, + [SPECIES_ZOROARK_HISUIAN] = sZoroarkFormSpeciesIdTable, + [SPECIES_BRAVIARY_HISUIAN] = sBraviaryFormSpeciesIdTable, + [SPECIES_SLIGGOO_HISUIAN] = sSliggooFormSpeciesIdTable, + [SPECIES_GOODRA_HISUIAN] = sGoodraFormSpeciesIdTable, + [SPECIES_AVALUGG_HISUIAN] = sAvaluggFormSpeciesIdTable, + [SPECIES_DECIDUEYE_HISUIAN] = sDecidueyeFormSpeciesIdTable, // Misc Forms // Cosplay Pikachu [SPECIES_PIKACHU_COSPLAY] = sPikachuFormSpeciesIdTable, @@ -316,7 +352,9 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_ROTOM_FROST] = sRotomFormSpeciesIdTable, [SPECIES_ROTOM_FAN] = sRotomFormSpeciesIdTable, [SPECIES_ROTOM_MOW] = sRotomFormSpeciesIdTable, - // Giratina + // Origin Forme + [SPECIES_DIALGA_ORIGIN] = sDialgaFormSpeciesIdTable, + [SPECIES_PALKIA_ORIGIN] = sPalkiaFormSpeciesIdTable, [SPECIES_GIRATINA_ORIGIN] = sGiratinaFormSpeciesIdTable, // Shaymin [SPECIES_SHAYMIN_SKY] = sShayminFormSpeciesIdTable, @@ -340,6 +378,7 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_ARCEUS_FAIRY] = sArceusFormSpeciesIdTable, // Basculin [SPECIES_BASCULIN_BLUE_STRIPED] = sBasculinFormSpeciesIdTable, + [SPECIES_BASCULIN_WHITE_STRIPED] = sBasculinFormSpeciesIdTable, // Darmanitan [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanFormSpeciesIdTable, [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = sDarmanitanFormSpeciesIdTable, @@ -355,6 +394,7 @@ const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = [SPECIES_TORNADUS_THERIAN] = sTornadusFormSpeciesIdTable, [SPECIES_THUNDURUS_THERIAN] = sThundurusFormSpeciesIdTable, [SPECIES_LANDORUS_THERIAN] = sLandorusFormSpeciesIdTable, + [SPECIES_ENAMORUS_THERIAN] = sEnamorusFormSpeciesIdTable, // Kyurem [SPECIES_KYUREM_WHITE] = sKyuremFormSpeciesIdTable, [SPECIES_KYUREM_BLACK] = sKyuremFormSpeciesIdTable, diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index d54426df4..8e89a3836 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -122,6 +122,18 @@ static const u16 sAlakazamFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sGrowlitheFormSpeciesIdTable[] = { + SPECIES_GROWLITHE, + SPECIES_GROWLITHE_HISUIAN, + FORM_SPECIES_END, +}; + +static const u16 sArcanineFormSpeciesIdTable[] = { + SPECIES_ARCANINE, + SPECIES_ARCANINE_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sGeodudeFormSpeciesIdTable[] = { SPECIES_GEODUDE, SPECIES_GEODUDE_ALOLAN, @@ -189,6 +201,18 @@ static const u16 sGengarFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sVoltorbFormSpeciesIdTable[] = { + SPECIES_VOLTORB, + SPECIES_VOLTORB_HISUIAN, + FORM_SPECIES_END, +}; + +static const u16 sElectrodeFormSpeciesIdTable[] = { + SPECIES_ELECTRODE, + SPECIES_ELECTRODE_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sExeggutorFormSpeciesIdTable[] = { SPECIES_EXEGGUTOR, SPECIES_EXEGGUTOR_ALOLAN, @@ -255,6 +279,12 @@ static const u16 sMoltresFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sTyphlosionFormSpeciesIdTable[] = { + SPECIES_TYPHLOSION, + SPECIES_TYPHLOSION_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sMewtwoFormSpeciesIdTable[] = { SPECIES_MEWTWO, SPECIES_MEWTWO_MEGA_X, @@ -279,8 +309,19 @@ static const u16 sSlowkingFormSpeciesIdTable[] = { SPECIES_SLOWKING_GALARIAN, FORM_SPECIES_END, }; -#endif +static const u16 sQwilfishFormSpeciesIdTable[] = { + SPECIES_QWILFISH, + SPECIES_QWILFISH_HISUIAN, + FORM_SPECIES_END, +}; + +static const u16 sSneaselFormSpeciesIdTable[] = { + SPECIES_SNEASEL, + SPECIES_SNEASEL_HISUIAN, + FORM_SPECIES_END, +}; +#endif static const u16 sUnownFormSpeciesIdTable[] = { SPECIES_UNOWN, SPECIES_UNOWN_B, @@ -583,12 +624,30 @@ static const u16 sRotomFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sDialgaFormSpeciesIdTable[] = { + SPECIES_DIALGA, + SPECIES_DIALGA_ORIGIN, + FORM_SPECIES_END, +}; + +static const u16 sPalkiaFormSpeciesIdTable[] = { + SPECIES_PALKIA, + SPECIES_PALKIA_ORIGIN, + FORM_SPECIES_END, +}; + static const u16 sGiratinaFormSpeciesIdTable[] = { SPECIES_GIRATINA, SPECIES_GIRATINA_ORIGIN, FORM_SPECIES_END, }; +static const u16 sSamurottFormSpeciesIdTable[] = { + SPECIES_SAMUROTT, + SPECIES_SAMUROTT_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sShayminFormSpeciesIdTable[] = { SPECIES_SHAYMIN, SPECIES_SHAYMIN_SKY, @@ -626,6 +685,13 @@ static const u16 sAudinoFormSpeciesIdTable[] = { static const u16 sBasculinFormSpeciesIdTable[] = { SPECIES_BASCULIN, SPECIES_BASCULIN_BLUE_STRIPED, + SPECIES_BASCULIN_WHITE_STRIPED, + FORM_SPECIES_END, +}; + +static const u16 sLilligantFormSpeciesIdTable[] = { + SPECIES_LILLIGANT, + SPECIES_LILLIGANT_HISUIAN, FORM_SPECIES_END, }; @@ -649,6 +715,18 @@ static const u16 sYamaskFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sZoruaFormSpeciesIdTable[] = { + SPECIES_ZORUA, + SPECIES_ZORUA_HISUIAN, + FORM_SPECIES_END, +}; + +static const u16 sZoroarkFormSpeciesIdTable[] = { + SPECIES_ZOROARK, + SPECIES_ZOROARK_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sDeerlingFormSpeciesIdTable[] = { SPECIES_DEERLING, SPECIES_DEERLING_SUMMER, @@ -671,6 +749,12 @@ static const u16 sStunfiskFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sBraviaryFormSpeciesIdTable[] = { + SPECIES_BRAVIARY, + SPECIES_BRAVIARY_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sTornadusFormSpeciesIdTable[] = { SPECIES_TORNADUS, SPECIES_TORNADUS_THERIAN, @@ -689,6 +773,12 @@ static const u16 sLandorusFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sEnamorusFormSpeciesIdTable[] = { + SPECIES_ENAMORUS, + SPECIES_ENAMORUS_THERIAN, + FORM_SPECIES_END, +}; + static const u16 sKyuremFormSpeciesIdTable[] = { SPECIES_KYUREM, SPECIES_KYUREM_WHITE, @@ -802,6 +892,18 @@ static const u16 sAegislashFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sSliggooFormSpeciesIdTable[] = { + SPECIES_SLIGGOO, + SPECIES_SLIGGOO_HISUIAN, + FORM_SPECIES_END, +}; + +static const u16 sGoodraFormSpeciesIdTable[] = { + SPECIES_GOODRA, + SPECIES_GOODRA_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sPumpkabooFormSpeciesIdTable[] = { SPECIES_PUMPKABOO, SPECIES_PUMPKABOO_SMALL, @@ -818,6 +920,12 @@ static const u16 sGourgeistFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sAvaluggFormSpeciesIdTable[] = { + SPECIES_AVALUGG, + SPECIES_AVALUGG_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sXerneasFormSpeciesIdTable[] = { SPECIES_XERNEAS, SPECIES_XERNEAS_ACTIVE, @@ -845,6 +953,12 @@ static const u16 sHoopaFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +static const u16 sDecidueyeFormSpeciesIdTable[] = { + SPECIES_DECIDUEYE, + SPECIES_DECIDUEYE_HISUIAN, + FORM_SPECIES_END, +}; + static const u16 sOricorioFormSpeciesIdTable[] = { SPECIES_ORICORIO, SPECIES_ORICORIO_POM_POM, diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index f2290351a..2651b4daf 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -510,11 +510,11 @@ const u8 *const gItemEffectTable[] = // Candy [ITEM_RARE_CANDY - ITEM_POTION] = gItemEffect_RareCandy, - //[ITEM_EXP_CANDY_XS - ITEM_POTION] = gItemEffect_ExpCandy, // Todo - //[ITEM_EXP_CANDY_S - ITEM_POTION] = gItemEffect_ExpCandy, // Todo - //[ITEM_EXP_CANDY_M - ITEM_POTION] = gItemEffect_ExpCandy, // Todo - //[ITEM_EXP_CANDY_L - ITEM_POTION] = gItemEffect_ExpCandy, // Todo - //[ITEM_EXP_CANDY_XL - ITEM_POTION] = gItemEffect_ExpCandy, // Todo + [ITEM_EXP_CANDY_XS - ITEM_POTION] = gItemEffect_RareCandy, + [ITEM_EXP_CANDY_S - ITEM_POTION] = gItemEffect_RareCandy, + [ITEM_EXP_CANDY_M - ITEM_POTION] = gItemEffect_RareCandy, + [ITEM_EXP_CANDY_L - ITEM_POTION] = gItemEffect_RareCandy, + [ITEM_EXP_CANDY_XL - ITEM_POTION] = gItemEffect_RareCandy, //[ITEM_DYNAMAX_CANDY - ITEM_POTION] = gItemEffect_DynamaxCandy, // Todo // Medicinal Flutes diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h index 52f1e187a..27c7b522f 100644 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -900,6 +900,13 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_GLASTRIER] = sGlastrierLevelUpLearnset, [SPECIES_SPECTRIER] = sSpectrierLevelUpLearnset, [SPECIES_CALYREX] = sCalyrexLevelUpLearnset, + [SPECIES_WYRDEER] = sWyrdeerLevelUpLearnset, + [SPECIES_KLEAVOR] = sKleavorLevelUpLearnset, + [SPECIES_URSALUNA] = sUrsalunaLevelUpLearnset, + [SPECIES_BASCULEGION] = sBasculegionLevelUpLearnset, + [SPECIES_SNEASLER] = sSneaslerLevelUpLearnset, + [SPECIES_OVERQWIL] = sOverqwilLevelUpLearnset, + [SPECIES_ENAMORUS] = sEnamorusLevelUpLearnset, // Megas [SPECIES_VENUSAUR_MEGA] = sVenusaurLevelUpLearnset, [SPECIES_CHARIZARD_MEGA_X] = sCharizardLevelUpLearnset, @@ -991,6 +998,23 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_DARMANITAN_GALARIAN] = sDarmanitanGalarianLevelUpLearnset, [SPECIES_YAMASK_GALARIAN] = sYamaskGalarianLevelUpLearnset, [SPECIES_STUNFISK_GALARIAN] = sStunfiskGalarianLevelUpLearnset, + // 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, + [SPECIES_SAMUROTT_HISUIAN] = sSamurottHisuianLevelUpLearnset, + [SPECIES_LILLIGANT_HISUIAN] = sLilligantHisuianLevelUpLearnset, + [SPECIES_ZORUA_HISUIAN] = sZoruaHisuianLevelUpLearnset, + [SPECIES_ZOROARK_HISUIAN] = sZoroarkHisuianLevelUpLearnset, + [SPECIES_BRAVIARY_HISUIAN] = sBraviaryHisuianLevelUpLearnset, + [SPECIES_SLIGGOO_HISUIAN] = sSliggooHisuianLevelUpLearnset, + [SPECIES_GOODRA_HISUIAN] = sGoodraHisuianLevelUpLearnset, + [SPECIES_AVALUGG_HISUIAN] = sAvaluggHisuianLevelUpLearnset, + [SPECIES_DECIDUEYE_HISUIAN] = sDecidueyeHisuianLevelUpLearnset, // Misc Forms // Cosplay Pikachu [SPECIES_PIKACHU_COSPLAY] = sPikachuLevelUpLearnset, @@ -1066,7 +1090,9 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_ROTOM_FROST] = sRotomLevelUpLearnset, [SPECIES_ROTOM_FAN] = sRotomLevelUpLearnset, [SPECIES_ROTOM_MOW] = sRotomLevelUpLearnset, - // Giratina + // Origin Forme + [SPECIES_DIALGA_ORIGIN] = sDialgaLevelUpLearnset, + [SPECIES_PALKIA_ORIGIN] = sPalkiaLevelUpLearnset, [SPECIES_GIRATINA_ORIGIN] = sGiratinaLevelUpLearnset, // Shaymin [SPECIES_SHAYMIN_SKY] = sShayminSkyLevelUpLearnset, @@ -1090,6 +1116,7 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_ARCEUS_FAIRY] = sArceusLevelUpLearnset, // Basculin [SPECIES_BASCULIN_BLUE_STRIPED] = sBasculinLevelUpLearnset, + [SPECIES_BASCULIN_WHITE_STRIPED] = sBasculinLevelUpLearnset, // Darmanitan [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanLevelUpLearnset, [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = sDarmanitanGalarianLevelUpLearnset, @@ -1105,6 +1132,7 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_TORNADUS_THERIAN] = sTornadusLevelUpLearnset, [SPECIES_THUNDURUS_THERIAN] = sThundurusLevelUpLearnset, [SPECIES_LANDORUS_THERIAN] = sLandorusLevelUpLearnset, + [SPECIES_ENAMORUS_THERIAN] = sEnamorusLevelUpLearnset, // Kyurem [SPECIES_KYUREM_WHITE] = sKyuremWhiteLevelUpLearnset, [SPECIES_KYUREM_BLACK] = sKyuremBlackLevelUpLearnset, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index 42fdc00d9..a8c696f1f 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -18088,6 +18088,96 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(15, MOVE_CALM_MIND), + //LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + //LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), + LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + //LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), + //LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + //LEVEL_UP_MOVE(29, MOVE_STONE_AXE), + //LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), + //LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + //LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), + //LEVEL_UP_MOVE(11, MOVE_BULLDOZE), + LEVEL_UP_MOVE(18, MOVE_SLASH), + //LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), + //LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + //LEVEL_UP_MOVE(47, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + //LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_HEX), + //LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_CRUNCH), + LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), + //LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + //LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + //LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + //LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + //LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + //LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + //LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + //LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL, + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + //LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(41, MOVE_CRUNCH), + //LEVEL_UP_MOVE(47, MOVE_MOONBLAST), + //LEVEL_UP_MOVE( 1, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_END +}; + static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -18841,7 +18931,222 @@ static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { LEVEL_UP_MOVE(55, MOVE_FISSURE), LEVEL_UP_END }; + +static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + //LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + //LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_EMBER), + LEVEL_UP_MOVE( 9, MOVE_BITE), + //LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + //LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), + LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), + //LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + //LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 5, MOVE_TACKLE), + LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(15, MOVE_SPARK), + //LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), + LEVEL_UP_MOVE(37, MOVE_THUNDER), + //LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { + //LEVEL_UP_MOVE( 0, MOVE_HEX), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_EMBER), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(25, MOVE_SWIFT), + LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), + //LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE(43, MOVE_OVERHEAT), + LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), + //LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), + //LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), + //LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + //LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL, + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + LEVEL_UP_MOVE(18, MOVE_SLASH), + //LEVEL_UP_MOVE(25, MOVE_POISON_JAB), + LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), + //LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { + //LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + //LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), + LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + //LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + //LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), + //LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { + //LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + //LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + //LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), + //LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(37, MOVE_RECOVER), + //LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), + //LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), + LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), + LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { + //LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + //LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + //LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + //LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + //LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { + //LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + //LEVEL_UP_MOVE( 6, MOVE_SNARL), + LEVEL_UP_MOVE(11, MOVE_SWIFT), + //LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(25, MOVE_SLASH), + //LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + //LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(11, MOVE_TWISTER), + LEVEL_UP_MOVE(18, MOVE_SLASH), + //LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), + //LEVEL_UP_MOVE(25, MOVE_ESPER_WING), + LEVEL_UP_MOVE(25, MOVE_ROOST), + LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), + //LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), + //LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + //LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + //LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + //LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + //LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BUBBLE), + //LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), + //LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), + //LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), + //LEVEL_UP_MOVE(34, MOVE_SHELTER), + LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { + //LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), + //LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(29, MOVE_CRUNCH), + //LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(37, MOVE_BLIZZARD), + //LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), + LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { + //LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_GUST), + //LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), + LEVEL_UP_MOVE(11, MOVE_ROOST), + LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), + //LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), + //LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), + LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), + //LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), + //LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), + //LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_END +}; #endif + static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h index db228f4c5..38bbdb5a8 100644 --- a/src/data/pokemon/pokedex_entries.h +++ b/src/data/pokemon/pokedex_entries.h @@ -10788,5 +10788,89 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, + + [NATIONAL_DEX_WYRDEER] = + { + .categoryName = _("Big Horn"), + .height = 18, + .weight = 951, + .description = gWyrdeerPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + + [NATIONAL_DEX_KLEAVOR] = + { + .categoryName = _("Axe"), + .height = 18, + .weight = 890, + .description = gKleavorPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + + [NATIONAL_DEX_URSALUNA] = + { + .categoryName = _("Peat"), + .height = 24, + .weight = 2900, + .description = gUrsalunaPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + + [NATIONAL_DEX_BASCULEGION] = + { + .categoryName = _("Big Fish"), + .height = 30, + .weight = 1100, + .description = gBasculegionPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + + [NATIONAL_DEX_SNEASLER] = + { + .categoryName = _("Free Climb"), + .height = 13, + .weight = 430, + .description = gSneaslerPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + + [NATIONAL_DEX_OVERQWIL] = + { + .categoryName = _("Pin Cluster"), + .height = 25, + .weight = 605, + .description = gOverqwilPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, + + [NATIONAL_DEX_ENAMORUS] = + { + .categoryName = _("Love-Hate"), + .height = 16, + .weight = 480, + .description = gEnamorusPokedexText, + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + }, #endif }; diff --git a/src/data/pokemon/pokedex_orders.h b/src/data/pokemon/pokedex_orders.h index f51bdeb44..0ca5ccb41 100644 --- a/src/data/pokemon/pokedex_orders.h +++ b/src/data/pokemon/pokedex_orders.h @@ -47,6 +47,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_BARBARACLE, NATIONAL_DEX_BARBOACH, NATIONAL_DEX_BARRASKEWDA, + NATIONAL_DEX_BASCULEGION, NATIONAL_DEX_BASCULIN, NATIONAL_DEX_BASTIODON, NATIONAL_DEX_BAYLEEF, @@ -239,6 +240,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_EMBOAR, NATIONAL_DEX_EMOLGA, NATIONAL_DEX_EMPOLEON, + NATIONAL_DEX_ENAMORUS, NATIONAL_DEX_ENTEI, NATIONAL_DEX_ESCAVALIER, NATIONAL_DEX_ESPEON, @@ -403,6 +405,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_KINGLER, NATIONAL_DEX_KIRLIA, NATIONAL_DEX_KLANG, + NATIONAL_DEX_KLEAVOR, NATIONAL_DEX_KLEFKI, NATIONAL_DEX_KLINK, NATIONAL_DEX_KLINKLANG, @@ -562,6 +565,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_ORBEETLE, NATIONAL_DEX_ORICORIO, NATIONAL_DEX_OSHAWOTT, + NATIONAL_DEX_OVERQWIL, NATIONAL_DEX_PACHIRISU, NATIONAL_DEX_PALKIA, @@ -738,6 +742,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SMEARGLE, NATIONAL_DEX_SMOOCHUM, NATIONAL_DEX_SNEASEL, + NATIONAL_DEX_SNEASLER, NATIONAL_DEX_SNIVY, NATIONAL_DEX_SNOM, NATIONAL_DEX_SNORLAX, @@ -845,6 +850,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_UMBREON, NATIONAL_DEX_UNFEZANT, NATIONAL_DEX_UNOWN, + NATIONAL_DEX_URSALUNA, NATIONAL_DEX_URSARING, NATIONAL_DEX_URSHIFU, NATIONAL_DEX_UXIE, @@ -897,6 +903,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_WORMADAM, NATIONAL_DEX_WURMPLE, NATIONAL_DEX_WYNAUT, + NATIONAL_DEX_WYRDEER, NATIONAL_DEX_XATU, NATIONAL_DEX_XERNEAS, @@ -1248,6 +1255,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_GOURGEIST, // Average Size NATIONAL_DEX_MORGREM, NATIONAL_DEX_IVYSAUR, + //NATIONAL_DEX_VOLTORB, //Hisuian Form //NATIONAL_DEX_BANETTE, // Mega NATIONAL_DEX_MIME_JR, NATIONAL_DEX_LAMPENT, @@ -1324,6 +1332,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_QUILAVA, NATIONAL_DEX_BRUXISH, NATIONAL_DEX_STUNKY, + //NATIONAL_DEX_LILLIGANT, // Hisuian Form NATIONAL_DEX_NIDORINO, NATIONAL_DEX_ABRA, NATIONAL_DEX_MACHOP, @@ -1373,6 +1382,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_WARTORTLE, NATIONAL_DEX_LANTURN, NATIONAL_DEX_GOREBYSS, + //NATIONAL_DEX_GROWLITHE, //Hisuian Form NATIONAL_DEX_PRINPLUP, NATIONAL_DEX_CROAGUNK, NATIONAL_DEX_MOTHIM, @@ -1413,6 +1423,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_ESPEON, NATIONAL_DEX_FROSLASS, NATIONAL_DEX_UMBREON, + //NATIONAL_DEX_SNEASEL, //Hisuian Form NATIONAL_DEX_HUNTAIL, NATIONAL_DEX_CARNIVINE, NATIONAL_DEX_WATCHOG, @@ -1516,6 +1527,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_PORYGON, NATIONAL_DEX_DECIDUEYE, NATIONAL_DEX_MIGHTYENA, + //NATIONAL_DEX_DECIDUEYE, //Hisuian Form NATIONAL_DEX_LIEPARD, NATIONAL_DEX_DARUMAKA, NATIONAL_DEX_FEAROW, @@ -1564,6 +1576,8 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_DIGGERSBY, NATIONAL_DEX_GLISCOR, NATIONAL_DEX_DUBWOOL, + NATIONAL_DEX_SNEASLER, + //NATIONAL_DEX_BRAVIARY, //Hisuian Form NATIONAL_DEX_PURUGLY, //NATIONAL_DEX_MANECTRIC, // Mega NATIONAL_DEX_GOTHITELLE, @@ -1586,6 +1600,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_HAKAMO_O, NATIONAL_DEX_ALAKAZAM, NATIONAL_DEX_HITMONTOP, + NATIONAL_DEX_ENAMORUS, NATIONAL_DEX_GARDEVOIR, NATIONAL_DEX_KELDEO, NATIONAL_DEX_GRANBULL, @@ -1645,6 +1660,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_HEATMOR, //NATIONAL_DEX_LURANTIS, // Totem-sized //NATIONAL_DEX_ZAPDOS, // Galarian Form + //NATIONAL_DEX_SAMUROTT, // Hisuian Form NATIONAL_DEX_MR_RIME, NATIONAL_DEX_WHIRLIPEDE, //NATIONAL_DEX_PINSIR, // Mega @@ -1661,6 +1677,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_CRADILY, NATIONAL_DEX_BRONZOR, NATIONAL_DEX_MUSHARNA, + NATIONAL_DEX_OVERQWIL, NATIONAL_DEX_DEOXYS, // Normal Forme //NATIONAL_DEX_DEOXYS, // Attack Forme //NATIONAL_DEX_DEOXYS, // Defense Forme @@ -1688,16 +1705,20 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_MAGMORTAR, NATIONAL_DEX_LANDORUS, NATIONAL_DEX_ARMALDO, + //NATIONAL_DEX_SLIGGOO, //Hisuian Form + //NATIONAL_DEX_TYPHLOSION, //Hisuian Form //NATIONAL_DEX_LATIOS, // Mega NATIONAL_DEX_BISHARP, NATIONAL_DEX_SANDYGAST, NATIONAL_DEX_ZARUDE, NATIONAL_DEX_MACHOKE, //NATIONAL_DEX_SLOWBRO, // Galarian Form + //NATIONAL_DEX_ELECTRODE //Hisuian Form NATIONAL_DEX_TREVENANT, NATIONAL_DEX_STANTLER, NATIONAL_DEX_GRUMPIG, NATIONAL_DEX_LARVITAR, + //NATIONAL_DEX_ZOROARK, //Hisuian Form NATIONAL_DEX_CROBAT, NATIONAL_DEX_QUAGSIRE, NATIONAL_DEX_CORVIKNIGHT, @@ -1749,6 +1770,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_FERALIGATR, NATIONAL_DEX_SHARPEDO, NATIONAL_DEX_EISCUE, + NATIONAL_DEX_KLEAVOR, NATIONAL_DEX_SEEL, NATIONAL_DEX_CHESNAUGHT, NATIONAL_DEX_RILLABOOM, @@ -1762,6 +1784,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_SAMUROTT, NATIONAL_DEX_RAPIDASH, NATIONAL_DEX_GARCHOMP, + NATIONAL_DEX_WYRDEER, NATIONAL_DEX_BELDUM, NATIONAL_DEX_BARBARACLE, NATIONAL_DEX_KROOKODILE, @@ -1800,6 +1823,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_FERROTHORN, NATIONAL_DEX_MUDBRAY, NATIONAL_DEX_ZACIAN, // Hero of Many Battles + NATIONAL_DEX_BASCULEGION, //NATIONAL_DEX_CHARIZARD, // Mega X NATIONAL_DEX_SHELGON, //NATIONAL_DEX_SALAMENCE, // Mega @@ -1853,6 +1877,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_HYDREIGON, //NATIONAL_DEX_SABLEYE, // Mega NATIONAL_DEX_MILOTIC, + //NATIONAL_DEX_ARCANINE, //Hisuian Form NATIONAL_DEX_LUNATONE, NATIONAL_DEX_REGICE, NATIONAL_DEX_ARCTOVISH, @@ -1905,8 +1930,10 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_GIGALITH, NATIONAL_DEX_BEARTIC, NATIONAL_DEX_TERRAKION, + //NATIONAL_DEX_AVALUGG, //Hisuian Form NATIONAL_DEX_TYRANTRUM, NATIONAL_DEX_RHYPERIOR, + NATIONAL_DEX_URSALUNA, NATIONAL_DEX_MAMOSWINE, // 661.4 - 667.0 lbs / 300.0 - 307.1 kg NATIONAL_DEX_GOLEM, @@ -1923,6 +1950,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_GOLURK, NATIONAL_DEX_RESHIRAM, NATIONAL_DEX_BUZZWOLE, + //NATIONAL_DEX_GOODRA, //Hisuian Form NATIONAL_DEX_PALKIA, NATIONAL_DEX_PROBOPASS, NATIONAL_DEX_ZEKROM, @@ -1949,6 +1977,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_METAGROSS, //NATIONAL_DEX_ZYGARDE, // Complete Forme //NATIONAL_DEX_GIRATINA, // Origin Forme + //NATIONAL_DEX_PALKIA, // Origin Form NATIONAL_DEX_DIALGA, //NATIONAL_DEX_STEELIX, // Mega NATIONAL_DEX_GIRATINA, // Altered Forme @@ -1957,6 +1986,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_GLASTRIER, //NATIONAL_DEX_CALYREX, // Ice Rider NATIONAL_DEX_STAKATAKA, + //NATIONAL_DEX_DIALGA, // Origin Form NATIONAL_DEX_GUZZLORD, NATIONAL_DEX_MUDSDALE, //NATIONAL_DEX_METAGROSS, // Mega @@ -2155,6 +2185,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ODDISH, NATIONAL_DEX_MANKEY, NATIONAL_DEX_VOLTORB, + //NATIONAL_DEX_VOLTORB, //Hisuian Form NATIONAL_DEX_KABUTO, NATIONAL_DEX_CYNDAQUIL, NATIONAL_DEX_SPINARAK, @@ -2162,6 +2193,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_MURKROW, NATIONAL_DEX_UNOWN, NATIONAL_DEX_QWILFISH, + //NATIONAL_DEX_QWILFISH, //Hisuian Form NATIONAL_DEX_PHANPY, NATIONAL_DEX_TREECKO, NATIONAL_DEX_POOCHYENA, @@ -2340,11 +2372,13 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_DARUMAKA, // Galarian Form NATIONAL_DEX_TIRTOUGA, NATIONAL_DEX_ZORUA, + //NATIONAL_DEX_ZORUA, // Hisuian Form NATIONAL_DEX_GOTHORITA, NATIONAL_DEX_STUNFISK, //NATIONAL_DEX_STUNFISK, // Galarian Form NATIONAL_DEX_QUILLADIN, NATIONAL_DEX_FLETCHINDER, + //NATIONAL_DEX_SLIGGOO, // Hisuian Form //NATIONAL_DEX_GOURGEIST, // Small Size NATIONAL_DEX_DIANCIE, NATIONAL_DEX_DARTRIX, @@ -2421,6 +2455,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_QUILAVA, NATIONAL_DEX_ESPEON, NATIONAL_DEX_SNEASEL, + //NATIONAL_DEX_SNEASEL, //Hisuian Form NATIONAL_DEX_OCTILLERY, NATIONAL_DEX_DELIBIRD, NATIONAL_DEX_GROVYLE, @@ -2572,6 +2607,7 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_SLOWPOKE, // Galarian Form NATIONAL_DEX_MUK, NATIONAL_DEX_ELECTRODE, + //NATIONAL_DEX_ELECTRODE, //Hisuian Form NATIONAL_DEX_LICKITUNG, NATIONAL_DEX_WEEZING, NATIONAL_DEX_SEADRA, @@ -2606,6 +2642,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_GURDURR, NATIONAL_DEX_LEAVANNY, NATIONAL_DEX_WHIRLIPEDE, + //NATIONAL_DEX_LILLIGANT, //Hisuian Form NATIONAL_DEX_CARRACOSTA, NATIONAL_DEX_FRILLISH, NATIONAL_DEX_ALOMOMOLA, @@ -2660,6 +2697,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_DUBWOOL, NATIONAL_DEX_BARRASKEWDA, NATIONAL_DEX_FROSMOTH, + NATIONAL_DEX_SNEASLER, // 4'07" / 1.4m //NATIONAL_DEX_BEEDRILL, // Mega //NATIONAL_DEX_RATICATE, // Alolan Form, Totem-sized @@ -2696,6 +2734,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ZWEILOUS, //NATIONAL_DEX_TORNADUS, // Therian Forme NATIONAL_DEX_KELDEO, + //NATIONAL_DEX_AVALUGG, // Hisuian Form //NATIONAL_DEX_GUMSHOOS, // Totem-sized NATIONAL_DEX_CINDERACE, NATIONAL_DEX_EISCUE, @@ -2730,6 +2769,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CRESSELIA, NATIONAL_DEX_DARKRAI, NATIONAL_DEX_SAMUROTT, + //NATIONAL_DEX_SAMUROTT, // Hisuian Form //NATIONAL_DEX_AUDINO, // Mega NATIONAL_DEX_CONKELDURR, NATIONAL_DEX_SEISMITOAD, @@ -2765,6 +2805,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_HYPNO, NATIONAL_DEX_ZAPDOS, //NATIONAL_DEX_ZAPDOS, // Galarian Form + //NATIONAL_DEX_TYPHLOSION, // Hisuian Form NATIONAL_DEX_NOCTOWL, NATIONAL_DEX_GARDEVOIR, //NATIONAL_DEX_GARDEVOIR, // Mega @@ -2777,17 +2818,22 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_EMBOAR, NATIONAL_DEX_ZEBSTRIKA, NATIONAL_DEX_ZOROARK, + //NATIONAL_DEX_ZOROARK, // Hisuian Form NATIONAL_DEX_DRUDDIGON, NATIONAL_DEX_BISHARP, NATIONAL_DEX_BOUFFALANT, + //NATIONAL_DEX_BRAVIARY, // Hisuian Form NATIONAL_DEX_VOLCARONA, NATIONAL_DEX_CHESNAUGHT, NATIONAL_DEX_DECIDUEYE, + //NATIONAL_DEX_DECIDUEYE, // Hisuian Form NATIONAL_DEX_KOMMO_O, NATIONAL_DEX_TOXTRICITY, NATIONAL_DEX_GRAPPLOCT, NATIONAL_DEX_OBSTAGOON, NATIONAL_DEX_RUNERIGUS, + NATIONAL_DEX_ENAMORUS, + //NATIONAL_DEX_ENAMORUS, //Therian Form // 5'07" / 1.7m NATIONAL_DEX_CHARIZARD, //NATIONAL_DEX_CHARIZARD, // Mega X @@ -2820,6 +2866,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_COFAGRIGUS, NATIONAL_DEX_GOGOAT, NATIONAL_DEX_AEGISLASH, + //NATIONAL_DEX_GOODRA, //Hisuian Form //NATIONAL_DEX_GOURGEIST, // Super Size NATIONAL_DEX_VOLCANION, NATIONAL_DEX_CRABOMINABLE, @@ -2853,6 +2900,8 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_DRACOZOLT, NATIONAL_DEX_DURALUDON, NATIONAL_DEX_ZARUDE, + NATIONAL_DEX_WYRDEER, + NATIONAL_DEX_KLEAVOR, // 6'03" / 1.9m NATIONAL_DEX_ARCANINE, NATIONAL_DEX_RHYDON, @@ -2878,6 +2927,7 @@ const u16 gPokedexOrder_Height[] = // 6'07" / 2.0m NATIONAL_DEX_VENUSAUR, NATIONAL_DEX_EKANS, + //NATIONAL_DEX_ARCANINE, //Hisuian Form //NATIONAL_DEX_SLOWBRO, // Mega NATIONAL_DEX_EXEGGUTOR, NATIONAL_DEX_MOLTRES, @@ -2947,6 +2997,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_NECROZMA, //NATIONAL_DEX_CALYREX, // Ice Rider //NATIONAL_DEX_CALYREX, // Shadow Rider + NATIONAL_DEX_URSALUNA, // 8'02" / 2.5m NATIONAL_DEX_LAPRAS, //NATIONAL_DEX_TYRANITAR, // Mega @@ -2959,6 +3010,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_MUDSDALE, NATIONAL_DEX_MELMETAL, NATIONAL_DEX_STONJOURNER, + NATIONAL_DEX_OVERQWIL, // 8'06" / 2.6m NATIONAL_DEX_BEARTIC, //NATIONAL_DEX_VIKAVOLT, // Totem-sized @@ -2985,6 +3037,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_FALINKS, NATIONAL_DEX_COPPERAJAH, NATIONAL_DEX_DRAGAPULT, + NATIONAL_DEX_BASCULEGION, // 10'02" / 3.1m //NATIONAL_DEX_ARAQUANID, // Totem-sized // 10'06" / 3.2m @@ -3034,6 +3087,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_YVELTAL, // 20'04" / 6.2m NATIONAL_DEX_MILOTIC, + //NATIONAL_DEX_PALKIA, //Origin Forme // 21'04" / 6.5m NATIONAL_DEX_GYARADOS, //NATIONAL_DEX_GYARADOS, // Mega @@ -3042,6 +3096,7 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_GIRATINA, // Origin Forme // 23'00" / 7.0m NATIONAL_DEX_RAYQUAZA, + //NATIONAL_DEX_DIALGA, //Origin Forme // 24'07" / 7.5m //NATIONAL_DEX_NECROZMA, // Ultra // 26'11" / 8.2m diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index c91e340c7..bf3293203 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -5349,4 +5349,45 @@ const u8 gCalyrexPokedexText[] = _( "providing healing and blessings. It\n" "reigned over the Galar region in times\n" "of yore."); + +const u8 gWyrdeerPokedexText[] = _( + "The black orbs shine with an uncanny light\n" + "when it is erecting invisible barriers.\n" + "The fur shed from its beard retains heat\n" + "and is useful for winter clothing."); + +const u8 gKleavorPokedexText[] = _( + "A violent creature that fells trees with\n" + "its crude axes and shields itself with hard\n" + "stone. Should one encounter this Pokémon\n" + "in the wild, one's only recourse is to flee."); + +const u8 gUrsalunaPokedexText[] = _( + "Swampy terrain gives Ursaluna its burly\n" + "physique and newfound capacity to\n" + "manipulate peat at will."); + +const u8 gBasculegionPokedexText[] = _( + "Clads itself in the souls of comrades that\n" + "perished before fulfilling their goals of\n" + "journeying upstream. No other species in\n" + "all Hisui's rivers is Basculegion's equal."); + +const u8 gSneaslerPokedexText[] = _( + "Because of its wicked poison and daunting\n" + "physical prowess, no other species could\n" + "hope to best it on frozen highlands. It\n" + "prefers solitude and doesn't form packs."); + +const u8 gOverqwilPokedexText[] = _( + "Its lancelike spikes and savage\n" + "temperament have earned it the\n" + "nickname “Sea Fiend”.\n" + "It slurps up poison to nourish itself."); + +const u8 gEnamorusPokedexText[] = _( + "Its arrival brings an end to the\n" + "winter. According to legend, this\n" + "Pokémon's love gives rise to the\n" + "budding of fresh life across the land."); #endif diff --git a/src/data/pokemon/teachable_learnset_pointers.h b/src/data/pokemon/teachable_learnset_pointers.h new file mode 100644 index 000000000..7727cde82 --- /dev/null +++ b/src/data/pokemon/teachable_learnset_pointers.h @@ -0,0 +1,1307 @@ +const u16 *const gTeachableLearnsets[NUM_SPECIES] = +{ + [SPECIES_NONE] = sBulbasaurTeachableLearnset, + [SPECIES_BULBASAUR] = sBulbasaurTeachableLearnset, + [SPECIES_IVYSAUR] = sIvysaurTeachableLearnset, + [SPECIES_VENUSAUR] = sVenusaurTeachableLearnset, + [SPECIES_CHARMANDER] = sCharmanderTeachableLearnset, + [SPECIES_CHARMELEON] = sCharmeleonTeachableLearnset, + [SPECIES_CHARIZARD] = sCharizardTeachableLearnset, + [SPECIES_SQUIRTLE] = sSquirtleTeachableLearnset, + [SPECIES_WARTORTLE] = sWartortleTeachableLearnset, + [SPECIES_BLASTOISE] = sBlastoiseTeachableLearnset, + [SPECIES_CATERPIE] = sCaterpieTeachableLearnset, + [SPECIES_METAPOD] = sMetapodTeachableLearnset, + [SPECIES_BUTTERFREE] = sButterfreeTeachableLearnset, + [SPECIES_WEEDLE] = sWeedleTeachableLearnset, + [SPECIES_KAKUNA] = sKakunaTeachableLearnset, + [SPECIES_BEEDRILL] = sBeedrillTeachableLearnset, + [SPECIES_PIDGEY] = sPidgeyTeachableLearnset, + [SPECIES_PIDGEOTTO] = sPidgeottoTeachableLearnset, + [SPECIES_PIDGEOT] = sPidgeotTeachableLearnset, + [SPECIES_RATTATA] = sRattataTeachableLearnset, + [SPECIES_RATICATE] = sRaticateTeachableLearnset, + [SPECIES_SPEAROW] = sSpearowTeachableLearnset, + [SPECIES_FEAROW] = sFearowTeachableLearnset, + [SPECIES_EKANS] = sEkansTeachableLearnset, + [SPECIES_ARBOK] = sArbokTeachableLearnset, + [SPECIES_PIKACHU] = sPikachuTeachableLearnset, + [SPECIES_RAICHU] = sRaichuTeachableLearnset, + [SPECIES_SANDSHREW] = sSandshrewTeachableLearnset, + [SPECIES_SANDSLASH] = sSandslashTeachableLearnset, + [SPECIES_NIDORAN_F] = sNidoranFTeachableLearnset, + [SPECIES_NIDORINA] = sNidorinaTeachableLearnset, + [SPECIES_NIDOQUEEN] = sNidoqueenTeachableLearnset, + [SPECIES_NIDORAN_M] = sNidoranMTeachableLearnset, + [SPECIES_NIDORINO] = sNidorinoTeachableLearnset, + [SPECIES_NIDOKING] = sNidokingTeachableLearnset, + [SPECIES_CLEFAIRY] = sClefairyTeachableLearnset, + [SPECIES_CLEFABLE] = sClefableTeachableLearnset, + [SPECIES_VULPIX] = sVulpixTeachableLearnset, + [SPECIES_NINETALES] = sNinetalesTeachableLearnset, + [SPECIES_JIGGLYPUFF] = sJigglypuffTeachableLearnset, + [SPECIES_WIGGLYTUFF] = sWigglytuffTeachableLearnset, + [SPECIES_ZUBAT] = sZubatTeachableLearnset, + [SPECIES_GOLBAT] = sGolbatTeachableLearnset, + [SPECIES_ODDISH] = sOddishTeachableLearnset, + [SPECIES_GLOOM] = sGloomTeachableLearnset, + [SPECIES_VILEPLUME] = sVileplumeTeachableLearnset, + [SPECIES_PARAS] = sParasTeachableLearnset, + [SPECIES_PARASECT] = sParasectTeachableLearnset, + [SPECIES_VENONAT] = sVenonatTeachableLearnset, + [SPECIES_VENOMOTH] = sVenomothTeachableLearnset, + [SPECIES_DIGLETT] = sDiglettTeachableLearnset, + [SPECIES_DUGTRIO] = sDugtrioTeachableLearnset, + [SPECIES_MEOWTH] = sMeowthTeachableLearnset, + [SPECIES_PERSIAN] = sPersianTeachableLearnset, + [SPECIES_PSYDUCK] = sPsyduckTeachableLearnset, + [SPECIES_GOLDUCK] = sGolduckTeachableLearnset, + [SPECIES_MANKEY] = sMankeyTeachableLearnset, + [SPECIES_PRIMEAPE] = sPrimeapeTeachableLearnset, + [SPECIES_GROWLITHE] = sGrowlitheTeachableLearnset, + [SPECIES_ARCANINE] = sArcanineTeachableLearnset, + [SPECIES_POLIWAG] = sPoliwagTeachableLearnset, + [SPECIES_POLIWHIRL] = sPoliwhirlTeachableLearnset, + [SPECIES_POLIWRATH] = sPoliwrathTeachableLearnset, + [SPECIES_ABRA] = sAbraTeachableLearnset, + [SPECIES_KADABRA] = sKadabraTeachableLearnset, + [SPECIES_ALAKAZAM] = sAlakazamTeachableLearnset, + [SPECIES_MACHOP] = sMachopTeachableLearnset, + [SPECIES_MACHOKE] = sMachokeTeachableLearnset, + [SPECIES_MACHAMP] = sMachampTeachableLearnset, + [SPECIES_BELLSPROUT] = sBellsproutTeachableLearnset, + [SPECIES_WEEPINBELL] = sWeepinbellTeachableLearnset, + [SPECIES_VICTREEBEL] = sVictreebelTeachableLearnset, + [SPECIES_TENTACOOL] = sTentacoolTeachableLearnset, + [SPECIES_TENTACRUEL] = sTentacruelTeachableLearnset, + [SPECIES_GEODUDE] = sGeodudeTeachableLearnset, + [SPECIES_GRAVELER] = sGravelerTeachableLearnset, + [SPECIES_GOLEM] = sGolemTeachableLearnset, + [SPECIES_PONYTA] = sPonytaTeachableLearnset, + [SPECIES_RAPIDASH] = sRapidashTeachableLearnset, + [SPECIES_SLOWPOKE] = sSlowpokeTeachableLearnset, + [SPECIES_SLOWBRO] = sSlowbroTeachableLearnset, + [SPECIES_MAGNEMITE] = sMagnemiteTeachableLearnset, + [SPECIES_MAGNETON] = sMagnetonTeachableLearnset, + [SPECIES_FARFETCHD] = sFarfetchdTeachableLearnset, + [SPECIES_DODUO] = sDoduoTeachableLearnset, + [SPECIES_DODRIO] = sDodrioTeachableLearnset, + [SPECIES_SEEL] = sSeelTeachableLearnset, + [SPECIES_DEWGONG] = sDewgongTeachableLearnset, + [SPECIES_GRIMER] = sGrimerTeachableLearnset, + [SPECIES_MUK] = sMukTeachableLearnset, + [SPECIES_SHELLDER] = sShellderTeachableLearnset, + [SPECIES_CLOYSTER] = sCloysterTeachableLearnset, + [SPECIES_GASTLY] = sGastlyTeachableLearnset, + [SPECIES_HAUNTER] = sHaunterTeachableLearnset, + [SPECIES_GENGAR] = sGengarTeachableLearnset, + [SPECIES_ONIX] = sOnixTeachableLearnset, + [SPECIES_DROWZEE] = sDrowzeeTeachableLearnset, + [SPECIES_HYPNO] = sHypnoTeachableLearnset, + [SPECIES_KRABBY] = sKrabbyTeachableLearnset, + [SPECIES_KINGLER] = sKinglerTeachableLearnset, + [SPECIES_VOLTORB] = sVoltorbTeachableLearnset, + [SPECIES_ELECTRODE] = sElectrodeTeachableLearnset, + [SPECIES_EXEGGCUTE] = sExeggcuteTeachableLearnset, + [SPECIES_EXEGGUTOR] = sExeggutorTeachableLearnset, + [SPECIES_CUBONE] = sCuboneTeachableLearnset, + [SPECIES_MAROWAK] = sMarowakTeachableLearnset, + [SPECIES_HITMONLEE] = sHitmonleeTeachableLearnset, + [SPECIES_HITMONCHAN] = sHitmonchanTeachableLearnset, + [SPECIES_LICKITUNG] = sLickitungTeachableLearnset, + [SPECIES_KOFFING] = sKoffingTeachableLearnset, + [SPECIES_WEEZING] = sWeezingTeachableLearnset, + [SPECIES_RHYHORN] = sRhyhornTeachableLearnset, + [SPECIES_RHYDON] = sRhydonTeachableLearnset, + [SPECIES_CHANSEY] = sChanseyTeachableLearnset, + [SPECIES_TANGELA] = sTangelaTeachableLearnset, + [SPECIES_KANGASKHAN] = sKangaskhanTeachableLearnset, + [SPECIES_HORSEA] = sHorseaTeachableLearnset, + [SPECIES_SEADRA] = sSeadraTeachableLearnset, + [SPECIES_GOLDEEN] = sGoldeenTeachableLearnset, + [SPECIES_SEAKING] = sSeakingTeachableLearnset, + [SPECIES_STARYU] = sStaryuTeachableLearnset, + [SPECIES_STARMIE] = sStarmieTeachableLearnset, + [SPECIES_MR_MIME] = sMrMimeTeachableLearnset, + [SPECIES_SCYTHER] = sScytherTeachableLearnset, + [SPECIES_JYNX] = sJynxTeachableLearnset, + [SPECIES_ELECTABUZZ] = sElectabuzzTeachableLearnset, + [SPECIES_MAGMAR] = sMagmarTeachableLearnset, + [SPECIES_PINSIR] = sPinsirTeachableLearnset, + [SPECIES_TAUROS] = sTaurosTeachableLearnset, + [SPECIES_MAGIKARP] = sMagikarpTeachableLearnset, + [SPECIES_GYARADOS] = sGyaradosTeachableLearnset, + [SPECIES_LAPRAS] = sLaprasTeachableLearnset, + [SPECIES_DITTO] = sDittoTeachableLearnset, + [SPECIES_EEVEE] = sEeveeTeachableLearnset, + [SPECIES_VAPOREON] = sVaporeonTeachableLearnset, + [SPECIES_JOLTEON] = sJolteonTeachableLearnset, + [SPECIES_FLAREON] = sFlareonTeachableLearnset, + [SPECIES_PORYGON] = sPorygonTeachableLearnset, + [SPECIES_OMANYTE] = sOmanyteTeachableLearnset, + [SPECIES_OMASTAR] = sOmastarTeachableLearnset, + [SPECIES_KABUTO] = sKabutoTeachableLearnset, + [SPECIES_KABUTOPS] = sKabutopsTeachableLearnset, + [SPECIES_AERODACTYL] = sAerodactylTeachableLearnset, + [SPECIES_SNORLAX] = sSnorlaxTeachableLearnset, + [SPECIES_ARTICUNO] = sArticunoTeachableLearnset, + [SPECIES_ZAPDOS] = sZapdosTeachableLearnset, + [SPECIES_MOLTRES] = sMoltresTeachableLearnset, + [SPECIES_DRATINI] = sDratiniTeachableLearnset, + [SPECIES_DRAGONAIR] = sDragonairTeachableLearnset, + [SPECIES_DRAGONITE] = sDragoniteTeachableLearnset, + [SPECIES_MEWTWO] = sMewtwoTeachableLearnset, + [SPECIES_MEW] = sMewTeachableLearnset, + [SPECIES_CHIKORITA] = sChikoritaTeachableLearnset, + [SPECIES_BAYLEEF] = sBayleefTeachableLearnset, + [SPECIES_MEGANIUM] = sMeganiumTeachableLearnset, + [SPECIES_CYNDAQUIL] = sCyndaquilTeachableLearnset, + [SPECIES_QUILAVA] = sQuilavaTeachableLearnset, + [SPECIES_TYPHLOSION] = sTyphlosionTeachableLearnset, + [SPECIES_TOTODILE] = sTotodileTeachableLearnset, + [SPECIES_CROCONAW] = sCroconawTeachableLearnset, + [SPECIES_FERALIGATR] = sFeraligatrTeachableLearnset, + [SPECIES_SENTRET] = sSentretTeachableLearnset, + [SPECIES_FURRET] = sFurretTeachableLearnset, + [SPECIES_HOOTHOOT] = sHoothootTeachableLearnset, + [SPECIES_NOCTOWL] = sNoctowlTeachableLearnset, + [SPECIES_LEDYBA] = sLedybaTeachableLearnset, + [SPECIES_LEDIAN] = sLedianTeachableLearnset, + [SPECIES_SPINARAK] = sSpinarakTeachableLearnset, + [SPECIES_ARIADOS] = sAriadosTeachableLearnset, + [SPECIES_CROBAT] = sCrobatTeachableLearnset, + [SPECIES_CHINCHOU] = sChinchouTeachableLearnset, + [SPECIES_LANTURN] = sLanturnTeachableLearnset, + [SPECIES_PICHU] = sPichuTeachableLearnset, + [SPECIES_CLEFFA] = sCleffaTeachableLearnset, + [SPECIES_IGGLYBUFF] = sIgglybuffTeachableLearnset, + [SPECIES_TOGEPI] = sTogepiTeachableLearnset, + [SPECIES_TOGETIC] = sTogeticTeachableLearnset, + [SPECIES_NATU] = sNatuTeachableLearnset, + [SPECIES_XATU] = sXatuTeachableLearnset, + [SPECIES_MAREEP] = sMareepTeachableLearnset, + [SPECIES_FLAAFFY] = sFlaaffyTeachableLearnset, + [SPECIES_AMPHAROS] = sAmpharosTeachableLearnset, + [SPECIES_BELLOSSOM] = sBellossomTeachableLearnset, + [SPECIES_MARILL] = sMarillTeachableLearnset, + [SPECIES_AZUMARILL] = sAzumarillTeachableLearnset, + [SPECIES_SUDOWOODO] = sSudowoodoTeachableLearnset, + [SPECIES_POLITOED] = sPolitoedTeachableLearnset, + [SPECIES_HOPPIP] = sHoppipTeachableLearnset, + [SPECIES_SKIPLOOM] = sSkiploomTeachableLearnset, + [SPECIES_JUMPLUFF] = sJumpluffTeachableLearnset, + [SPECIES_AIPOM] = sAipomTeachableLearnset, + [SPECIES_SUNKERN] = sSunkernTeachableLearnset, + [SPECIES_SUNFLORA] = sSunfloraTeachableLearnset, + [SPECIES_YANMA] = sYanmaTeachableLearnset, + [SPECIES_WOOPER] = sWooperTeachableLearnset, + [SPECIES_QUAGSIRE] = sQuagsireTeachableLearnset, + [SPECIES_ESPEON] = sEspeonTeachableLearnset, + [SPECIES_UMBREON] = sUmbreonTeachableLearnset, + [SPECIES_MURKROW] = sMurkrowTeachableLearnset, + [SPECIES_SLOWKING] = sSlowkingTeachableLearnset, + [SPECIES_MISDREAVUS] = sMisdreavusTeachableLearnset, + [SPECIES_UNOWN] = sUnownTeachableLearnset, + [SPECIES_WOBBUFFET] = sWobbuffetTeachableLearnset, + [SPECIES_GIRAFARIG] = sGirafarigTeachableLearnset, + [SPECIES_PINECO] = sPinecoTeachableLearnset, + [SPECIES_FORRETRESS] = sForretressTeachableLearnset, + [SPECIES_DUNSPARCE] = sDunsparceTeachableLearnset, + [SPECIES_GLIGAR] = sGligarTeachableLearnset, + [SPECIES_STEELIX] = sSteelixTeachableLearnset, + [SPECIES_SNUBBULL] = sSnubbullTeachableLearnset, + [SPECIES_GRANBULL] = sGranbullTeachableLearnset, + [SPECIES_QWILFISH] = sQwilfishTeachableLearnset, + [SPECIES_SCIZOR] = sScizorTeachableLearnset, + [SPECIES_SHUCKLE] = sShuckleTeachableLearnset, + [SPECIES_HERACROSS] = sHeracrossTeachableLearnset, + [SPECIES_SNEASEL] = sSneaselTeachableLearnset, + [SPECIES_TEDDIURSA] = sTeddiursaTeachableLearnset, + [SPECIES_URSARING] = sUrsaringTeachableLearnset, + [SPECIES_SLUGMA] = sSlugmaTeachableLearnset, + [SPECIES_MAGCARGO] = sMagcargoTeachableLearnset, + [SPECIES_SWINUB] = sSwinubTeachableLearnset, + [SPECIES_PILOSWINE] = sPiloswineTeachableLearnset, + [SPECIES_CORSOLA] = sCorsolaTeachableLearnset, + [SPECIES_REMORAID] = sRemoraidTeachableLearnset, + [SPECIES_OCTILLERY] = sOctilleryTeachableLearnset, + [SPECIES_DELIBIRD] = sDelibirdTeachableLearnset, + [SPECIES_MANTINE] = sMantineTeachableLearnset, + [SPECIES_SKARMORY] = sSkarmoryTeachableLearnset, + [SPECIES_HOUNDOUR] = sHoundourTeachableLearnset, + [SPECIES_HOUNDOOM] = sHoundoomTeachableLearnset, + [SPECIES_KINGDRA] = sKingdraTeachableLearnset, + [SPECIES_PHANPY] = sPhanpyTeachableLearnset, + [SPECIES_DONPHAN] = sDonphanTeachableLearnset, + [SPECIES_PORYGON2] = sPorygon2TeachableLearnset, + [SPECIES_STANTLER] = sStantlerTeachableLearnset, + [SPECIES_SMEARGLE] = sSmeargleTeachableLearnset, + [SPECIES_TYROGUE] = sTyrogueTeachableLearnset, + [SPECIES_HITMONTOP] = sHitmontopTeachableLearnset, + [SPECIES_SMOOCHUM] = sSmoochumTeachableLearnset, + [SPECIES_ELEKID] = sElekidTeachableLearnset, + [SPECIES_MAGBY] = sMagbyTeachableLearnset, + [SPECIES_MILTANK] = sMiltankTeachableLearnset, + [SPECIES_BLISSEY] = sBlisseyTeachableLearnset, + [SPECIES_RAIKOU] = sRaikouTeachableLearnset, + [SPECIES_ENTEI] = sEnteiTeachableLearnset, + [SPECIES_SUICUNE] = sSuicuneTeachableLearnset, + [SPECIES_LARVITAR] = sLarvitarTeachableLearnset, + [SPECIES_PUPITAR] = sPupitarTeachableLearnset, + [SPECIES_TYRANITAR] = sTyranitarTeachableLearnset, + [SPECIES_LUGIA] = sLugiaTeachableLearnset, + [SPECIES_HO_OH] = sHoOhTeachableLearnset, + [SPECIES_CELEBI] = sCelebiTeachableLearnset, + [SPECIES_TREECKO] = sTreeckoTeachableLearnset, + [SPECIES_GROVYLE] = sGrovyleTeachableLearnset, + [SPECIES_SCEPTILE] = sSceptileTeachableLearnset, + [SPECIES_TORCHIC] = sTorchicTeachableLearnset, + [SPECIES_COMBUSKEN] = sCombuskenTeachableLearnset, + [SPECIES_BLAZIKEN] = sBlazikenTeachableLearnset, + [SPECIES_MUDKIP] = sMudkipTeachableLearnset, + [SPECIES_MARSHTOMP] = sMarshtompTeachableLearnset, + [SPECIES_SWAMPERT] = sSwampertTeachableLearnset, + [SPECIES_POOCHYENA] = sPoochyenaTeachableLearnset, + [SPECIES_MIGHTYENA] = sMightyenaTeachableLearnset, + [SPECIES_ZIGZAGOON] = sZigzagoonTeachableLearnset, + [SPECIES_LINOONE] = sLinooneTeachableLearnset, + [SPECIES_WURMPLE] = sWurmpleTeachableLearnset, + [SPECIES_SILCOON] = sSilcoonTeachableLearnset, + [SPECIES_BEAUTIFLY] = sBeautiflyTeachableLearnset, + [SPECIES_CASCOON] = sCascoonTeachableLearnset, + [SPECIES_DUSTOX] = sDustoxTeachableLearnset, + [SPECIES_LOTAD] = sLotadTeachableLearnset, + [SPECIES_LOMBRE] = sLombreTeachableLearnset, + [SPECIES_LUDICOLO] = sLudicoloTeachableLearnset, + [SPECIES_SEEDOT] = sSeedotTeachableLearnset, + [SPECIES_NUZLEAF] = sNuzleafTeachableLearnset, + [SPECIES_SHIFTRY] = sShiftryTeachableLearnset, + [SPECIES_NINCADA] = sNincadaTeachableLearnset, + [SPECIES_NINJASK] = sNinjaskTeachableLearnset, + [SPECIES_SHEDINJA] = sShedinjaTeachableLearnset, + [SPECIES_TAILLOW] = sTaillowTeachableLearnset, + [SPECIES_SWELLOW] = sSwellowTeachableLearnset, + [SPECIES_SHROOMISH] = sShroomishTeachableLearnset, + [SPECIES_BRELOOM] = sBreloomTeachableLearnset, + [SPECIES_SPINDA] = sSpindaTeachableLearnset, + [SPECIES_WINGULL] = sWingullTeachableLearnset, + [SPECIES_PELIPPER] = sPelipperTeachableLearnset, + [SPECIES_SURSKIT] = sSurskitTeachableLearnset, + [SPECIES_MASQUERAIN] = sMasquerainTeachableLearnset, + [SPECIES_WAILMER] = sWailmerTeachableLearnset, + [SPECIES_WAILORD] = sWailordTeachableLearnset, + [SPECIES_SKITTY] = sSkittyTeachableLearnset, + [SPECIES_DELCATTY] = sDelcattyTeachableLearnset, + [SPECIES_KECLEON] = sKecleonTeachableLearnset, + [SPECIES_BALTOY] = sBaltoyTeachableLearnset, + [SPECIES_CLAYDOL] = sClaydolTeachableLearnset, + [SPECIES_NOSEPASS] = sNosepassTeachableLearnset, + [SPECIES_TORKOAL] = sTorkoalTeachableLearnset, + [SPECIES_SABLEYE] = sSableyeTeachableLearnset, + [SPECIES_BARBOACH] = sBarboachTeachableLearnset, + [SPECIES_WHISCASH] = sWhiscashTeachableLearnset, + [SPECIES_LUVDISC] = sLuvdiscTeachableLearnset, + [SPECIES_CORPHISH] = sCorphishTeachableLearnset, + [SPECIES_CRAWDAUNT] = sCrawdauntTeachableLearnset, + [SPECIES_FEEBAS] = sFeebasTeachableLearnset, + [SPECIES_MILOTIC] = sMiloticTeachableLearnset, + [SPECIES_CARVANHA] = sCarvanhaTeachableLearnset, + [SPECIES_SHARPEDO] = sSharpedoTeachableLearnset, + [SPECIES_TRAPINCH] = sTrapinchTeachableLearnset, + [SPECIES_VIBRAVA] = sVibravaTeachableLearnset, + [SPECIES_FLYGON] = sFlygonTeachableLearnset, + [SPECIES_MAKUHITA] = sMakuhitaTeachableLearnset, + [SPECIES_HARIYAMA] = sHariyamaTeachableLearnset, + [SPECIES_ELECTRIKE] = sElectrikeTeachableLearnset, + [SPECIES_MANECTRIC] = sManectricTeachableLearnset, + [SPECIES_NUMEL] = sNumelTeachableLearnset, + [SPECIES_CAMERUPT] = sCameruptTeachableLearnset, + [SPECIES_SPHEAL] = sSphealTeachableLearnset, + [SPECIES_SEALEO] = sSealeoTeachableLearnset, + [SPECIES_WALREIN] = sWalreinTeachableLearnset, + [SPECIES_CACNEA] = sCacneaTeachableLearnset, + [SPECIES_CACTURNE] = sCacturneTeachableLearnset, + [SPECIES_SNORUNT] = sSnoruntTeachableLearnset, + [SPECIES_GLALIE] = sGlalieTeachableLearnset, + [SPECIES_LUNATONE] = sLunatoneTeachableLearnset, + [SPECIES_SOLROCK] = sSolrockTeachableLearnset, + [SPECIES_AZURILL] = sAzurillTeachableLearnset, + [SPECIES_SPOINK] = sSpoinkTeachableLearnset, + [SPECIES_GRUMPIG] = sGrumpigTeachableLearnset, + [SPECIES_PLUSLE] = sPlusleTeachableLearnset, + [SPECIES_MINUN] = sMinunTeachableLearnset, + [SPECIES_MAWILE] = sMawileTeachableLearnset, + [SPECIES_MEDITITE] = sMedititeTeachableLearnset, + [SPECIES_MEDICHAM] = sMedichamTeachableLearnset, + [SPECIES_SWABLU] = sSwabluTeachableLearnset, + [SPECIES_ALTARIA] = sAltariaTeachableLearnset, + [SPECIES_WYNAUT] = sWynautTeachableLearnset, + [SPECIES_DUSKULL] = sDuskullTeachableLearnset, + [SPECIES_DUSCLOPS] = sDusclopsTeachableLearnset, + [SPECIES_ROSELIA] = sRoseliaTeachableLearnset, + [SPECIES_SLAKOTH] = sSlakothTeachableLearnset, + [SPECIES_VIGOROTH] = sVigorothTeachableLearnset, + [SPECIES_SLAKING] = sSlakingTeachableLearnset, + [SPECIES_GULPIN] = sGulpinTeachableLearnset, + [SPECIES_SWALOT] = sSwalotTeachableLearnset, + [SPECIES_TROPIUS] = sTropiusTeachableLearnset, + [SPECIES_WHISMUR] = sWhismurTeachableLearnset, + [SPECIES_LOUDRED] = sLoudredTeachableLearnset, + [SPECIES_EXPLOUD] = sExploudTeachableLearnset, + [SPECIES_CLAMPERL] = sClamperlTeachableLearnset, + [SPECIES_HUNTAIL] = sHuntailTeachableLearnset, + [SPECIES_GOREBYSS] = sGorebyssTeachableLearnset, + [SPECIES_ABSOL] = sAbsolTeachableLearnset, + [SPECIES_SHUPPET] = sShuppetTeachableLearnset, + [SPECIES_BANETTE] = sBanetteTeachableLearnset, + [SPECIES_SEVIPER] = sSeviperTeachableLearnset, + [SPECIES_ZANGOOSE] = sZangooseTeachableLearnset, + [SPECIES_RELICANTH] = sRelicanthTeachableLearnset, + [SPECIES_ARON] = sAronTeachableLearnset, + [SPECIES_LAIRON] = sLaironTeachableLearnset, + [SPECIES_AGGRON] = sAggronTeachableLearnset, + [SPECIES_CASTFORM] = 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] = sDeoxysTeachableLearnset, + [SPECIES_CHIMECHO] = sChimechoTeachableLearnset, +#if P_NEW_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] = sBurmyTeachableLearnset, + [SPECIES_WORMADAM] = sWormadamTeachableLearnset, + [SPECIES_MOTHIM] = sMothimTeachableLearnset, + [SPECIES_COMBEE] = sCombeeTeachableLearnset, + [SPECIES_VESPIQUEN] = sVespiquenTeachableLearnset, + [SPECIES_PACHIRISU] = sPachirisuTeachableLearnset, + [SPECIES_BUIZEL] = sBuizelTeachableLearnset, + [SPECIES_FLOATZEL] = sFloatzelTeachableLearnset, + [SPECIES_CHERUBI] = sCherubiTeachableLearnset, + [SPECIES_CHERRIM] = sCherrimTeachableLearnset, + [SPECIES_SHELLOS] = sShellosTeachableLearnset, + [SPECIES_GASTRODON] = 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] = sGiratinaTeachableLearnset, + [SPECIES_CRESSELIA] = sCresseliaTeachableLearnset, + [SPECIES_PHIONE] = sPhioneTeachableLearnset, + [SPECIES_MANAPHY] = sManaphyTeachableLearnset, + [SPECIES_DARKRAI] = sDarkraiTeachableLearnset, + [SPECIES_SHAYMIN] = sShayminTeachableLearnset, + [SPECIES_ARCEUS] = sArceusTeachableLearnset, + [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] = sBasculinTeachableLearnset, + [SPECIES_SANDILE] = sSandileTeachableLearnset, + [SPECIES_KROKOROK] = sKrokorokTeachableLearnset, + [SPECIES_KROOKODILE] = sKrookodileTeachableLearnset, + [SPECIES_DARUMAKA] = sDarumakaTeachableLearnset, + [SPECIES_DARMANITAN] = 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] = sDeerlingTeachableLearnset, + [SPECIES_SAWSBUCK] = 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] = sTornadusTeachableLearnset, + [SPECIES_THUNDURUS] = sThundurusTeachableLearnset, + [SPECIES_RESHIRAM] = sReshiramTeachableLearnset, + [SPECIES_ZEKROM] = sZekromTeachableLearnset, + [SPECIES_LANDORUS] = sLandorusTeachableLearnset, + [SPECIES_KYUREM] = sKyuremTeachableLearnset, + [SPECIES_KELDEO] = sKeldeoTeachableLearnset, + [SPECIES_MELOETTA] = sMeloettaTeachableLearnset, + [SPECIES_GENESECT] = sGenesectTeachableLearnset, + [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] = sVivillonTeachableLearnset, + [SPECIES_LITLEO] = sLitleoTeachableLearnset, + [SPECIES_PYROAR] = sPyroarTeachableLearnset, + [SPECIES_FLABEBE] = sFlabebeTeachableLearnset, + [SPECIES_FLOETTE] = sFloetteTeachableLearnset, + [SPECIES_FLORGES] = sFlorgesTeachableLearnset, + [SPECIES_SKIDDO] = sSkiddoTeachableLearnset, + [SPECIES_GOGOAT] = sGogoatTeachableLearnset, + [SPECIES_PANCHAM] = sPanchamTeachableLearnset, + [SPECIES_PANGORO] = sPangoroTeachableLearnset, + [SPECIES_FURFROU] = sFurfrouTeachableLearnset, + [SPECIES_ESPURR] = sEspurrTeachableLearnset, + [SPECIES_MEOWSTIC] = sMeowsticTeachableLearnset, + [SPECIES_HONEDGE] = sHonedgeTeachableLearnset, + [SPECIES_DOUBLADE] = sDoubladeTeachableLearnset, + [SPECIES_AEGISLASH] = 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] = sPumpkabooTeachableLearnset, + [SPECIES_GOURGEIST] = sGourgeistTeachableLearnset, + [SPECIES_BERGMITE] = sBergmiteTeachableLearnset, + [SPECIES_AVALUGG] = sAvaluggTeachableLearnset, + [SPECIES_NOIBAT] = sNoibatTeachableLearnset, + [SPECIES_NOIVERN] = sNoivernTeachableLearnset, + [SPECIES_XERNEAS] = sXerneasTeachableLearnset, + [SPECIES_YVELTAL] = sYveltalTeachableLearnset, + [SPECIES_ZYGARDE] = sZygardeTeachableLearnset, + [SPECIES_DIANCIE] = sDiancieTeachableLearnset, + [SPECIES_HOOPA] = sHoopaTeachableLearnset, + [SPECIES_VOLCANION] = sVolcanionTeachableLearnset, + [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] = sOricorioTeachableLearnset, + [SPECIES_CUTIEFLY] = sCutieflyTeachableLearnset, + [SPECIES_RIBOMBEE] = sRibombeeTeachableLearnset, + [SPECIES_ROCKRUFF] = sRockruffTeachableLearnset, + [SPECIES_LYCANROC] = sLycanrocTeachableLearnset, + [SPECIES_WISHIWASHI] = 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] = sSilvallyTeachableLearnset, + [SPECIES_MINIOR] = sMiniorTeachableLearnset, + [SPECIES_KOMALA] = sKomalaTeachableLearnset, + [SPECIES_TURTONATOR] = sTurtonatorTeachableLearnset, + [SPECIES_TOGEDEMARU] = sTogedemaruTeachableLearnset, + [SPECIES_MIMIKYU] = 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, + [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] = sToxtricityTeachableLearnset, + [SPECIES_SIZZLIPEDE] = sSizzlipedeTeachableLearnset, + [SPECIES_CENTISKORCH] = sCentiskorchTeachableLearnset, + [SPECIES_CLOBBOPUS] = sClobbopusTeachableLearnset, + [SPECIES_GRAPPLOCT] = sGrapploctTeachableLearnset, + [SPECIES_SINISTEA] = sSinisteaTeachableLearnset, + [SPECIES_POLTEAGEIST] = 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] = sAlcremieTeachableLearnset, + [SPECIES_FALINKS] = sFalinksTeachableLearnset, + [SPECIES_PINCURCHIN] = sPincurchinTeachableLearnset, + [SPECIES_SNOM] = sSnomTeachableLearnset, + [SPECIES_FROSMOTH] = sFrosmothTeachableLearnset, + [SPECIES_STONJOURNER] = sStonjournerTeachableLearnset, + [SPECIES_EISCUE] = sEiscueTeachableLearnset, + [SPECIES_INDEEDEE] = sIndeedeeTeachableLearnset, + [SPECIES_MORPEKO] = 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] = sZacianTeachableLearnset, + [SPECIES_ZAMAZENTA] = sZamazentaTeachableLearnset, + [SPECIES_ETERNATUS] = sEternatusTeachableLearnset, + [SPECIES_KUBFU] = sKubfuTeachableLearnset, + [SPECIES_URSHIFU] = sUrshifuTeachableLearnset, + [SPECIES_ZARUDE] = sZarudeTeachableLearnset, + [SPECIES_REGIELEKI] = sRegielekiTeachableLearnset, + [SPECIES_REGIDRAGO] = sRegidragoTeachableLearnset, + [SPECIES_GLASTRIER] = sGlastrierTeachableLearnset, + [SPECIES_SPECTRIER] = sSpectrierTeachableLearnset, + [SPECIES_CALYREX] = sCalyrexTeachableLearnset, + [SPECIES_WYRDEER] = sWyrdeerTeachableLearnset, + [SPECIES_KLEAVOR] = sKleavorTeachableLearnset, + [SPECIES_URSALUNA] = sUrsalunaTeachableLearnset, + [SPECIES_BASCULEGION] = sBasculegionTeachableLearnset, + [SPECIES_SNEASLER] = sSneaslerTeachableLearnset, + [SPECIES_OVERQWIL] = sOverqwilTeachableLearnset, + [SPECIES_ENAMORUS] = sEnamorusTeachableLearnset, + // 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, + [SPECIES_LOPUNNY_MEGA] = sLopunnyTeachableLearnset, + [SPECIES_GARCHOMP_MEGA] = sGarchompTeachableLearnset, + [SPECIES_LUCARIO_MEGA] = sLucarioTeachableLearnset, + [SPECIES_ABOMASNOW_MEGA] = sAbomasnowTeachableLearnset, + [SPECIES_GALLADE_MEGA] = sGalladeTeachableLearnset, + [SPECIES_AUDINO_MEGA] = sAudinoTeachableLearnset, + [SPECIES_DIANCIE_MEGA] = sDiancieTeachableLearnset, + // 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, + [SPECIES_DARUMAKA_GALARIAN] = sDarumakaGalarianTeachableLearnset, + [SPECIES_DARMANITAN_GALARIAN] = sDarmanitanGalarianTeachableLearnset, + [SPECIES_YAMASK_GALARIAN] = sYamaskGalarianTeachableLearnset, + [SPECIES_STUNFISK_GALARIAN] = sStunfiskGalarianTeachableLearnset, + // 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, + [SPECIES_SAMUROTT_HISUIAN] = sSamurottHisuianTeachableLearnset, + [SPECIES_LILLIGANT_HISUIAN] = sLilligantHisuianTeachableLearnset, + [SPECIES_ZORUA_HISUIAN] = sZoruaHisuianTeachableLearnset, + [SPECIES_ZOROARK_HISUIAN] = sZoroarkHisuianTeachableLearnset, + [SPECIES_BRAVIARY_HISUIAN] = sBraviaryHisuianTeachableLearnset, + [SPECIES_SLIGGOO_HISUIAN] = sSliggooHisuianTeachableLearnset, + [SPECIES_GOODRA_HISUIAN] = sGoodraHisuianTeachableLearnset, + [SPECIES_AVALUGG_HISUIAN] = sAvaluggHisuianTeachableLearnset, + [SPECIES_DECIDUEYE_HISUIAN] = sDecidueyeHisuianTeachableLearnset, + // 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, +#endif + // 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_NEW_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, + // Basculin + [SPECIES_BASCULIN_BLUE_STRIPED] = sBasculinTeachableLearnset, + [SPECIES_BASCULIN_WHITE_STRIPED] = sBasculinTeachableLearnset, + // Darmanitan + [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanTeachableLearnset, + [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = 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, + [SPECIES_ENAMORUS_THERIAN] = sEnamorusTeachableLearnset, + // 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, + // 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] = sZygardeTeachableLearnset, + [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sZygardeTeachableLearnset, + [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sZygardeTeachableLearnset, + [SPECIES_ZYGARDE_COMPLETE] = sZygardeTeachableLearnset, + // Hoopa + [SPECIES_HOOPA_UNBOUND] = sHoopaUnboundTeachableLearnset, + // 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, + // Cramorant + [SPECIES_CRAMORANT_GULPING] = sCramorantTeachableLearnset, + [SPECIES_CRAMORANT_GORGING] = sCramorantTeachableLearnset, + // Toxtricity + [SPECIES_TOXTRICITY_LOW_KEY] = sToxtricityLowKeyTeachableLearnset, + // Sinistea + [SPECIES_SINISTEA_ANTIQUE] = sSinisteaTeachableLearnset, + // Polteageist + [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistTeachableLearnset, + // Alcremie + [SPECIES_ALCREMIE_RUBY_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_MATCHA_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_MINT_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_LEMON_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_SALTED_CREAM] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RUBY_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, + [SPECIES_ALCREMIE_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, + // Eiscue + [SPECIES_EISCUE_NOICE_FACE] = sEiscueTeachableLearnset, + // Indeedee + [SPECIES_INDEEDEE_FEMALE] = sIndeedeeFemaleTeachableLearnset, + // Morpeko + [SPECIES_MORPEKO_HANGRY] = sMorpekoTeachableLearnset, + // Zacian + [SPECIES_ZACIAN_CROWNED_SWORD] = sZacianTeachableLearnset, + // Zamazenta + [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = sZamazentaTeachableLearnset, + // Eternatus + [SPECIES_ETERNATUS_ETERNAMAX] = sEternatusTeachableLearnset, + // Urshifu + [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = sUrshifuRapidStrikeStyleTeachableLearnset, + // Zarude + [SPECIES_ZARUDE_DADA] = sZarudeTeachableLearnset, + // Calyrex + [SPECIES_CALYREX_ICE_RIDER] = sCalyrexIceRiderTeachableLearnset, + [SPECIES_CALYREX_SHADOW_RIDER] = sCalyrexShadowRiderTeachableLearnset, +#endif +}; diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h new file mode 100644 index 000000000..30405b044 --- /dev/null +++ b/src/data/pokemon/teachable_learnsets.h @@ -0,0 +1,33556 @@ +static const u16 sBulbasaurTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIvysaurTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVenusaurTeachableLearnset[] = { + MOVE_ATTRACT, + 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_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCharmanderTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCharmeleonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCharizardTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSquirtleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWartortleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBlastoiseTeachableLearnset[] = { + 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_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCaterpieTeachableLearnset[] = { + MOVE_SNORE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMetapodTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sButterfreeTeachableLearnset[] = { + 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_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sWeedleTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sKakunaTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sBeedrillTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + 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_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + 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, +}; + +static const u16 sPidgeyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPidgeottoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPidgeotTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRattataTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_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_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRaticateTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSpearowTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sFearowTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sEkansTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sArbokTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPikachuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + 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 sRaichuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + 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_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + 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 sSandshrewTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + 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_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSandslashTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + 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_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sNidoranFTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNidorinaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNidoqueenTeachableLearnset[] = { + MOVE_AERIAL_ACE, + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sNidoranMTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNidorinoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNidokingTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sClefairyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + 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_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_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SOFT_BOILED, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sClefableTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + 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_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_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SOFT_BOILED, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVulpixTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sNinetalesTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sJigglypuffTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_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_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_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWigglytuffTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZubatTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + 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_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, +}; + +static const u16 sGolbatTeachableLearnset[] = { + 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, +}; + +static const u16 sOddishTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + 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, +}; + +static const u16 sGloomTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + 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, +}; + +static const u16 sVileplumeTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sParasTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sParasectTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVenonatTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sVenomothTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sDiglettTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDugtrioTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + 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_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMeowthTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + 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_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPersianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + 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_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + 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_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPsyduckTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + 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_UNAVAILABLE, +}; + +static const u16 sGolduckTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + 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_UNAVAILABLE, +}; + +static const u16 sMankeyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPrimeapeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrowlitheTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sArcanineTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPoliwagTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPoliwhirlTeachableLearnset[] = { + 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_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_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, +}; + +static const u16 sPoliwrathTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_ROCK_TOMB, + 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_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAbraTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + 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_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKadabraTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + 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_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAlakazamTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_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_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMachopTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + 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_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMachokeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + 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_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMachampTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + 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_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sBellsproutTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWeepinbellTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVictreebelTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTentacoolTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTentacruelTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGeodudeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGravelerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGolemTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + 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_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPonytaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRapidashTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlowpokeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_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_SKILL_SWAP, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + 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_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlowbroTeachableLearnset[] = { + 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_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_REFLECT, + 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, +}; + +static const u16 sMagnemiteTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMagnetonTeachableLearnset[] = { + 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_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFarfetchdTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + 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 sDoduoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDodrioTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSeelTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + 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_UNAVAILABLE, +}; + +static const u16 sDewgongTeachableLearnset[] = { + 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_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + 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_UNAVAILABLE, +}; + +static const u16 sGrimerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMukTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sShellderTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCloysterTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGastlyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sHaunterTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGengarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sOnixTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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, +}; + +static const u16 sDrowzeeTeachableLearnset[] = { + 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_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHypnoTeachableLearnset[] = { + MOVE_ATTRACT, + 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_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKrabbyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKinglerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVoltorbTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sElectrodeTeachableLearnset[] = { + 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_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sExeggcuteTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sExeggutorTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCuboneTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMarowakTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sHitmonleeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + 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 sHitmonchanTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + 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_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sLickitungTeachableLearnset[] = { + 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_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_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sKoffingTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWeezingTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRhyhornTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRhydonTeachableLearnset[] = { + 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_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sChanseyTeachableLearnset[] = { + 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_REFLECT, + 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, +}; + +static const u16 sTangelaTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKangaskhanTeachableLearnset[] = { + MOVE_AERIAL_ACE, + 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_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_ROCK_TOMB, + MOVE_SAFEGUARD, + 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_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sHorseaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + 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_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSeadraTeachableLearnset[] = { + 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_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGoldeenTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + 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_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSeakingTeachableLearnset[] = { + 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_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sStaryuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + 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_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sStarmieTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMrMimeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + 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_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + 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_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sScytherTeachableLearnset[] = { + 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_SECRET_POWER, + MOVE_STEEL_WING, + 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, +}; + +static const u16 sJynxTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + 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_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + 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_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 sElectabuzzTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + 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_METRONOME, + 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 sMagmarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + 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_SECRET_POWER, + MOVE_STRENGTH, + 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_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPinsirTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTaurosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + 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_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMagikarpTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sGyaradosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLaprasTeachableLearnset[] = { + 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_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDittoTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sEeveeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sVaporeonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sJolteonTeachableLearnset[] = { + MOVE_ATTRACT, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlareonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPorygonTeachableLearnset[] = { + 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_REFLECT, + 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, +}; + +static const u16 sOmanyteTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sOmastarTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKabutoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKabutopsTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + 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_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAerodactylTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + 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_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSnorlaxTeachableLearnset[] = { + 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_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + 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_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_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sArticunoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sZapdosTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMoltresTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sDratiniTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDragonairTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDragoniteTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + 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_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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 sMewtwoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + 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_REFLECT, + 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_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + 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_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMewTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FLY, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + 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_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sChikoritaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBayleefTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMeganiumTeachableLearnset[] = { + MOVE_ATTRACT, + 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_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCyndaquilTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sQuilavaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + 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_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sTyphlosionTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + 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_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + 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_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sTotodileTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCroconawTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + 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_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFeraligatrTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + 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_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + 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_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSentretTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sFurretTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_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_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sHoothootTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + 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 sNoctowlTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + 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 sLedybaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sLedianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSpinarakTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAriadosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + 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_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sChinchouTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLanturnTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_SHOCK_WAVE, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sTogepiTeachableLearnset[] = { + MOVE_ATTRACT, + 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_ROCK_SMASH, + 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_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_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTogeticTeachableLearnset[] = { + 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_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + 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_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sNatuTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + 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_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sXatuTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_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_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMareepTeachableLearnset[] = { + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlaaffyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + 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 sAmpharosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + 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 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, +}; + +static const u16 sMarillTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + 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_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + 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_UNAVAILABLE, +}; + +static const u16 sAzumarillTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DIVE, + 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_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + 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_UNAVAILABLE, +}; + +static const u16 sSudowoodoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sHoppipTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkiploomTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sJumpluffTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAipomTeachableLearnset[] = { + 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_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_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + 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_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSunkernTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + 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, +}; + +static const u16 sSunfloraTeachableLearnset[] = { + 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_LIGHT_SCREEN, + 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, +}; + +static const u16 sYanmaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + 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_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sWooperTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sQuagsireTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sMurkrowTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_DOUBLE_EDGE, + 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_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sMisdreavusTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_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, +}; + +static const u16 sUnownTeachableLearnset[] = { + MOVE_HIDDEN_POWER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWobbuffetTeachableLearnset[] = { + MOVE_SAFEGUARD, + MOVE_COUNTER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGirafarigTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + 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_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPinecoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sForretressTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDunsparceTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGligarTeachableLearnset[] = { + 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_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_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sSnubbullTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + 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_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGranbullTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sQwilfishTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + 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_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + 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, + MOVE_UNAVAILABLE, +}; + +static const u16 sShuckleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sHeracrossTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSneaselTeachableLearnset[] = { + 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_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_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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 sTeddiursaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + 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_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sUrsaringTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + 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_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlugmaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMagcargoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwinubTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + 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_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPiloswineTeachableLearnset[] = { + 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_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCorsolaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRemoraidTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BULLET_SEED, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sOctilleryTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BULLET_SEED, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDelibirdTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + 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_UNAVAILABLE, +}; + +static const u16 sMantineTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BULLET_SEED, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROCK_TOMB, + 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_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkarmoryTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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 sHoundourTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sHoundoomTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sPhanpyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDonphanTeachableLearnset[] = { + MOVE_ATTRACT, + 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_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sStantlerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + 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_ROAR, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSmeargleTeachableLearnset[] = { + MOVE_FLAMETHROWER, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sMiltankTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + 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_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + 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_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sRaikouTeachableLearnset[] = { + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEnteiTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + 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 sSuicuneTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sLarvitarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + 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_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPupitarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + 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_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTyranitarTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + 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_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLugiaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + 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_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + 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_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHoOhTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCelebiTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTreeckoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrovyleTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSceptileTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sTorchicTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCombuskenTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sBlazikenTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMudkipTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMarshtompTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwampertTeachableLearnset[] = { + 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_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPoochyenaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMightyenaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + 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_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sZigzagoonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_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_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLinooneTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWurmpleTeachableLearnset[] = { + MOVE_SNORE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSilcoonTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sBeautiflyTeachableLearnset[] = { + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCascoonTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sDustoxTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sLotadTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLombreTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sLudicoloTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + 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_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSeedotTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sNuzleafTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MIMIC, + 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, +}; + +static const u16 sShiftryTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MIMIC, + 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, +}; + +static const u16 sTaillowTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwellowTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sWingullTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STEEL_WING, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPelipperTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + 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_SHOCK_WAVE, + MOVE_STEEL_WING, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRaltsTeachableLearnset[] = { + 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_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKirliaTeachableLearnset[] = { + 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_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGardevoirTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSurskitTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sMasquerainTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sShroomishTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBreloomTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlakothTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sVigorothTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + 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_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlakingTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + 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_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sNincadaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNinjaskTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sShedinjaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CUT, + MOVE_DIG, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWhismurTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + 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_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + 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_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sLoudredTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sExploudTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMakuhitaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + 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_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sHariyamaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + 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_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sNosepassTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MIMIC, + 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 sSkittyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + 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_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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 sDelcattyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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 sSableyeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + 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_FIRE_PUNCH, + MOVE_FURY_CUTTER, + 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_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMawileTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sAronTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sLaironTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAggronTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + 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_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMedititeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMedichamTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sElectrikeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sManectricTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPlusleTeachableLearnset[] = { + 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_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + 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 sMinunTeachableLearnset[] = { + 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_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + 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 sVolbeatTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + 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_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + 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_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIllumiseTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + 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_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + 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_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRoseliaTeachableLearnset[] = { + 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_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + 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 sGulpinTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + 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_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwalotTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + 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_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCarvanhaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + 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_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSharpedoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sWailmerTeachableLearnset[] = { + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + 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_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWailordTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + 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_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNumelTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCameruptTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTorkoalTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSpoinkTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + 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, +}; + +static const u16 sGrumpigTeachableLearnset[] = { + MOVE_ATTRACT, + 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_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_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + 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 sSpindaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + 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_THIEF, + 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_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sTrapinchTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sVibravaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlygonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCacneaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCacturneTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwabluTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + 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 sAltariaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + 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 sZangooseTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + 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_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSeviperTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLunatoneTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSolrockTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBarboachTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWhiscashTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCorphishTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCrawdauntTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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 sBaltoyTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sClaydolTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sLileepTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + 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 sCradilyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MIMIC, + 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 sAnorithTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sArmaldoTeachableLearnset[] = { + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFeebasTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + 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_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sMiloticTeachableLearnset[] = { + 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_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + 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_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCastformTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + 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, +}; + +static const u16 sKecleonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + 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_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sShuppetTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_BODY_SLAM, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBanetteTeachableLearnset[] = { + 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_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_METRONOME, + 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 sDuskullTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + 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_UNAVAILABLE, +}; + +static const u16 sDusclopsTeachableLearnset[] = { + 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_BODY_SLAM, + MOVE_COUNTER, + 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_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sTropiusTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sChimechoTeachableLearnset[] = { + 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_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAbsolTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWynautTeachableLearnset[] = { + MOVE_SAFEGUARD, + MOVE_COUNTER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSnoruntTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGlalieTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSphealTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + 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_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSealeoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + 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_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWalreinTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sClamperlTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + 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_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sHuntailTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGorebyssTeachableLearnset[] = { + 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_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRelicanthTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + 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_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sLuvdiscTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBagonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sShelgonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSalamenceTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBeldumTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sMetangTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMetagrossTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sRegirockTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRegiceTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + 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_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRegisteelTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLatiasTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + 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_ROAR, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLatiosTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + 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_ROAR, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKyogreTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + 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_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGroudonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_FURY_CUTTER, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SEISMIC_TOSS, + 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 sRayquazaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + 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_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MIMIC, + 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_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sJirachiTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_METRONOME, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDeoxysTeachableLearnset[] = { + 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_BODY_SLAM, + MOVE_COUNTER, + 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_MIMIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +#if P_NEW_POKEMON == TRUE + +static const u16 sTurtwigTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrotleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTorterraTeachableLearnset[] = { + MOVE_ATTRACT, + 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_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sChimcharTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sMonfernoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sInfernapeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + 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_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPiplupTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPrinplupTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sEmpoleonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sStarlyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sStaraviaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sStaraptorTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBidoofTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_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_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBibarelTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKricketotTeachableLearnset[] = { + MOVE_MUD_SLAP, + MOVE_SNORE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKricketuneTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sShinxTeachableLearnset[] = { + 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_ROAR, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLuxioTeachableLearnset[] = { + 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_ROAR, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLuxrayTeachableLearnset[] = { + MOVE_ATTRACT, + 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_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sCranidosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sRampardosTeachableLearnset[] = { + 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_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sShieldonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBastiodonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + 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_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBurmyTeachableLearnset[] = { + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_SNORE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWormadamTeachableLearnset[] = { + MOVE_ATTRACT, + 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_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + 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, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + 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_SOLAR_BEAM, + 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 sCombeeTeachableLearnset[] = { + MOVE_MUD_SLAP, + MOVE_SNORE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sVespiquenTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPachirisuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + 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_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBuizelTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sFloatzelTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DIVE, + 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_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCherubiTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCherrimTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + 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_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sShellosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + 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_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGastrodonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + 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 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, +}; + +static const u16 sDrifloonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + 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 sDrifblimTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + 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 sBunearyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_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_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + 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, +}; + +static const u16 sLopunnyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DEFENSE_CURL, + 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, +}; + +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, +}; + +static const u16 sGlameowTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPuruglyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + 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_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sStunkyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkuntankTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + 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_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBronzorTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBronzongTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sChatotTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MIMIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSpiritombTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGibleTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGabiteTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_STRENGTH, + MOVE_SUNNY_DAY, + 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_UNAVAILABLE, +}; + +static const u16 sGarchompTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + 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 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, +}; + +static const u16 sRioluTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sLucarioTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + 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_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sHippopotasTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sHippowdonTeachableLearnset[] = { + MOVE_ATTRACT, + 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_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkorupiTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDrapionTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + 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_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCroagunkTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sToxicroakTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCarnivineTeachableLearnset[] = { + 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_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFinneonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sLumineonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sSnoverTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAbomasnowTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sRotomTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + 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_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sUxieTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMespritTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAzelfTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + 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_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDialgaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPalkiaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHeatranTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRegigigasTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_RAIN_DANCE, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGiratinaTeachableLearnset[] = { + 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_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + 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, +}; + +static const u16 sCresseliaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + 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, +}; + +static const u16 sPhioneTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sManaphyTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIVE, + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sDarkraiTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + 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_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_ICY_WIND, + 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_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sShayminTeachableLearnset[] = { + 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_DEFENSE_CURL, + 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 sArceusTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVictiniTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSnivyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sServineTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSerperiorTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTepigTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPigniteTeachableLearnset[] = { + 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_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sEmboarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sOshawottTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDewottTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSamurottTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + 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_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPatratTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWatchogTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + 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_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLillipupTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHerdierTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sStoutlandTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPurrloinTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLiepardTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + 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_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPansageTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSimisageTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPansearTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSimisearTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPanpourTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSimipourTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMunnaTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMusharnaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPidoveTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTranquillTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sUnfezantTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBlitzleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZebstrikaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRoggenrolaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBoldoreTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGigalithTeachableLearnset[] = { + 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_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWoobatTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + 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_STEEL_WING, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwoobatTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + 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_STEEL_WING, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDrilburTeachableLearnset[] = { + 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_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sExcadrillTeachableLearnset[] = { + 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_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAudinoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_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_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_DREAM_EATER, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTimburrTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGurdurrTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_DYNAMIC_PUNCH, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sConkeldurrTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_DYNAMIC_PUNCH, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sTympoleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPalpitoadTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSeismitoadTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sThrohTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSawkTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSewaddleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwadloonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sLeavannyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVenipedeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWhirlipedeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sScolipedeTeachableLearnset[] = { + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCottoneeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWhimsicottTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPetililTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sLilligantTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBasculinTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + 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_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSandileTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKrokorokTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKrookodileTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + 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_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDarumakaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDarmanitanTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + 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_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMaractusTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDwebbleTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCrustleTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + 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_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sScraggyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sScraftyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sSigilyphTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sYamaskTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + 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 sCofagrigusTeachableLearnset[] = { + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTirtougaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCarracostaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + 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_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sArchenTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sArcheopsTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + 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_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTrubbishTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGarbodorTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_EXPLOSION, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sZoruaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZoroarkTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMinccinoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCinccinoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGothitaTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGothoritaTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGothitelleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSolosisTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDuosionTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sReuniclusTeachableLearnset[] = { + MOVE_ATTRACT, + 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_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_THUNDER, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_PSYCH_UP, + 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 sDucklettTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwannaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + 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_STEEL_WING, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sVanilliteTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sVanillishTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sVanilluxeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDeerlingTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSawsbuckTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEmolgaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + 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_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKarrablastTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEscavalierTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFoongusTeachableLearnset[] = { + MOVE_ATTRACT, + 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_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAmoongussTeachableLearnset[] = { + MOVE_ATTRACT, + 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_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sFrillishTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sJellicentTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAlomomolaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + 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_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sJoltikTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGalvantulaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFerroseedTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFerrothornTeachableLearnset[] = { + MOVE_AERIAL_ACE, + 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_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKlinkTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKlangTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKlinklangTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTynamoTeachableLearnset[] = { + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEelektrikTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + 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_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEelektrossTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sElgyemTeachableLearnset[] = { + 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_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STEEL_WING, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBeheeyemTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STEEL_WING, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLitwickTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + 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 sLampentTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sChandelureTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAxewTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFraxureTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHaxorusTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + 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_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCubchooTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBearticTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCryogonalTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + 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_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sShelmetTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAccelgorTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sStunfiskTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMienfooTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMienshaoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDruddigonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGolettTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DYNAMIC_PUNCH, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGolurkTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + 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_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DYNAMIC_PUNCH, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_MEGA_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPawniardTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBisharpTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBouffalantTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + 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_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRuffletTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBraviaryTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sVullabyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMandibuzzTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sHeatmorTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_FIRE_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sDurantTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_FURY_CUTTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDeinoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZweilousTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHydreigonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLarvestaTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sVolcaronaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCobalionTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTerrakionTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVirizionTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTornadusTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + 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_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sThundurusTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + 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_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sReshiramTeachableLearnset[] = { + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sZekromTeachableLearnset[] = { + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FLY, + 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_STEEL_WING, + MOVE_STRENGTH, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLandorusTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKyuremTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HAIL, + 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_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKeldeoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMeloettaTeachableLearnset[] = { + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGenesectTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sChespinTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + 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 sQuilladinTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + 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 sChesnaughtTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + 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 sFennekinTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBraixenTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_FIRE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sDelphoxTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + 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_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_FIRE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sFroakieTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sFrogadierTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGreninjaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CUT, + MOVE_DIG, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBunnelbyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDiggersbyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sFletchlingTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFletchinderTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTalonflameTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sScatterbugTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sSpewpaTeachableLearnset[] = { + MOVE_PROTECT, + MOVE_UNAVAILABLE, +}; + +static const u16 sVivillonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sLitleoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPyroarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlabebeTeachableLearnset[] = { + 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_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sFloetteTeachableLearnset[] = { + 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_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlorgesTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + 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_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkiddoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGogoatTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + 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_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPanchamTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPangoroTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sFurfrouTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TOXIC, + MOVE_MIMIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEspurrTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_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, +}; + +static const u16 sMeowsticTeachableLearnset[] = { + 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, +}; + +static const u16 sHonedgeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDoubladeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAegislashTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSpritzeeTeachableLearnset[] = { + 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_SECRET_POWER, + MOVE_SKILL_SWAP, + 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_UNAVAILABLE, +}; + +static const u16 sAromatisseTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + 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_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSwirlixTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlurpuffTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sInkayTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SECRET_POWER, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMalamarTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLASH, + 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_SECRET_POWER, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBinacleTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBarbaracleTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkrelpTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDragalgeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sClauncherTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sClawitzerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHelioptileTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + 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_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHelioliskTeachableLearnset[] = { + 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_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTyruntTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + 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_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTyrantrumTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + 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_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAmauraTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAurorusTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + 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_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +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, +}; + +static const u16 sHawluchaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SECRET_POWER, + MOVE_STEEL_WING, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sDedenneTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCarbinkTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGoomyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSliggooTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SUNNY_DAY, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGoodraTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + 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_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_FIRE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sKlefkiTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + 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_SUNNY_DAY, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPhantumpTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTrevenantTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPumpkabooTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGourgeistTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBergmiteTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAvaluggTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SECRET_POWER, + MOVE_STRENGTH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNoibatTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sNoivernTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sXerneasTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SECRET_POWER, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sYveltalTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + 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_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sZygardeTeachableLearnset[] = { + MOVE_BRICK_BREAK, + 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_ROCK_SMASH, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SHOCK_WAVE, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDiancieTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sHoopaTeachableLearnset[] = { + 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_DREAM_EATER, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVolcanionTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_SMASH, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_BODY_SLAM, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRowletTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDartrixTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDecidueyeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLittenTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTorracatTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIncineroarTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPopplioTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sBrionneTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPrimarinaTeachableLearnset[] = { + 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_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPikipekTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTrumbeakTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sToucannonTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_DOUBLE_TEAM, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sYungoosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHOCK_WAVE, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGumshoosTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHOCK_WAVE, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrubbinTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCharjabugTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVikavoltTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + 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_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCrabrawlerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DYNAMIC_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCrabominableTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DYNAMIC_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sOricorioTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_STEEL_WING, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCutieflyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRibombeeTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sRockruffTeachableLearnset[] = { + MOVE_ATTRACT, + 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_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sLycanrocTeachableLearnset[] = { + 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_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWishiwashiTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DOUBLE_EDGE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMareanieTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sToxapexTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMudbrayTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_MEGA_KICK, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMudsdaleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_MEGA_KICK, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sDewpiderTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sAraquanidTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SURF, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sFomantisTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLurantisTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMorelullTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sShiinoticTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FLASH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSalanditTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSalazzleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sStuffulTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sBewearTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sBounsweetTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sSteeneeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTsareenaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sComfeyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sOranguruTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPassimianTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + 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_ROCK_TOMB, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ROCK_SLIDE, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sWimpodTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGolisopodTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SLUDGE_BOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_FURY_CUTTER, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSandygastTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPalossandTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLUDGE_BOMB, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sPyukumukuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_HAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTypeNullTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SANDSTORM, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSilvallyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_EXPLOSION, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMiniorTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SOLAR_BEAM, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_EXPLOSION, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sKomalaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_RETURN, + MOVE_SUNNY_DAY, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTurtonatorTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTogedemaruTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DEFENSE_CURL, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMimikyuTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_MIMIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBruxishTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SNATCH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_DREAM_EATER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDrampaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDhelmiseTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sJangmooTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHakamooTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKommooTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SHOCK_WAVE, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_WATER_PULSE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sTapuKokoTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SAFEGUARD, + MOVE_SHOCK_WAVE, + MOVE_STEEL_WING, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTapuLeleTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sTapuBuluTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTapuFiniTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SURF, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCosmogTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sCosmoemTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sSolgaleoTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLunalaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROAR, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_DREAM_EATER, + MOVE_ICY_WIND, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sNihilegoTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SLUDGE_BOMB, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBuzzwoleTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_TAUNT, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPheromosaTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sXurkitreeTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCelesteelaTeachableLearnset[] = { + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sKartanaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CUT, + MOVE_DOUBLE_TEAM, + MOVE_FRUSTRATION, + MOVE_GIGA_DRAIN, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_TOXIC, + MOVE_FURY_CUTTER, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGuzzlordTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sNecrozmaTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMagearnaTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_SHOCK_WAVE, + MOVE_SOLAR_BEAM, + MOVE_THUNDERBOLT, + MOVE_DEFENSE_CURL, + MOVE_EXPLOSION, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMarshadowTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SHADOW_BALL, + MOVE_SNATCH, + MOVE_THIEF, + MOVE_TOXIC, + MOVE_COUNTER, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_PSYCH_UP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sPoipoleTeachableLearnset[] = { + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sNaganadelTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DOUBLE_TEAM, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_SNATCH, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sStakatakaTeachableLearnset[] = { + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_SKILL_SWAP, + MOVE_TOXIC, + MOVE_DOUBLE_EDGE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBlacephalonTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_TOXIC, + MOVE_EXPLOSION, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sZeraoraTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_FRUSTRATION, + MOVE_HIDDEN_POWER, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_RETURN, + MOVE_SHOCK_WAVE, + MOVE_SNATCH, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_FIRE_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMeltanTeachableLearnset[] = { + MOVE_HIDDEN_POWER, + MOVE_UNAVAILABLE, +}; + +static const u16 sMelmetalTeachableLearnset[] = { + MOVE_HIDDEN_POWER, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrookeyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_STRENGTH, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sThwackeyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRillaboomTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sScorbunnyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRabootTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCinderaceTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_COUNTER, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSobbleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SURF, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sDrizzileTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_FACADE, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SURF, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sInteleonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkwovetTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DIG, + MOVE_FACADE, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGreedentTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRookideeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_FLY, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCorvisquireTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_FLY, + MOVE_PROTECT, + MOVE_REST, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCorviknightTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBlipbugTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sDottlerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sOrbeetleTeachableLearnset[] = { + MOVE_ATTRACT, + 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_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sNickitTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sThievulTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGossifleurTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEldegossTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWoolooTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_COUNTER, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDubwoolTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sChewtleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SURF, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDrednawTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIG, + MOVE_DIVE, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sYamperTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBoltundTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROAR, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sRolycolyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_ENDURE, + MOVE_EXPLOSION, + MOVE_MUD_SLAP, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCarkolTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCoalossalTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SOLAR_BEAM, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sApplinTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DEFENSE_CURL, + MOVE_ROLLOUT, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlappleTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_FLY, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAppletunTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BULLET_SEED, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSilicobraTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_ENDURE, + MOVE_MUD_SLAP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSandacondaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCramorantTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_FACADE, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_SURF, + MOVE_THIEF, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sArrokudaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIVE, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_WATERFALL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBarraskewdaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIVE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sToxelTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sToxtricityTeachableLearnset[] = { + 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 sSizzlipedeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_SUNNY_DAY, + MOVE_DEFENSE_CURL, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCentiskorchTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sClobbopusTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIVE, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_TAUNT, + MOVE_WATERFALL, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_SEISMIC_TOSS, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrapploctTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DIVE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_SURF, + MOVE_TAUNT, + MOVE_WATERFALL, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_MEGA_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSinisteaTeachableLearnset[] = { + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPolteageistTeachableLearnset[] = { + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHatennaTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SKILL_SWAP, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHattremTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SKILL_SWAP, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sHattereneTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sImpidimpTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMorgremTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrimmsnarlTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_TORMENT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_THUNDER_PUNCH, + 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, +}; + +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, +}; + +static const u16 sMilceryTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAlcremieTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFalinksTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_COUNTER, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPincurchinTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SURF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSnomTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFrosmothTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sStonjournerTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SAFEGUARD, + MOVE_SANDSTORM, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sEiscueTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_FACADE, + MOVE_HAIL, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIndeedeeTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_PSYCH_UP, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sMorpekoTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_TAUNT, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TORMENT, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCufantTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_STRENGTH, + MOVE_BODY_SLAM, + MOVE_DEFENSE_CURL, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWAGGER, + MOVE_UNAVAILABLE, +}; + +static const u16 sCopperajahTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_STRENGTH, + MOVE_TAUNT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_ROCK_SLIDE, + MOVE_ROLLOUT, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDracozoltTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_DRAGON_CLAW, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sArctozoltTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_FACADE, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SURF, + MOVE_TAUNT, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDracovishTeachableLearnset[] = { + MOVE_DIVE, + MOVE_EARTHQUAKE, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_MEGA_KICK, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sArctovishTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_DIVE, + MOVE_FACADE, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDuraludonTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_SOLAR_BEAM, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_ENDURE, + MOVE_ROCK_SLIDE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDreepyTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDrakloakTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_PROTECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_STEEL_WING, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDragapultTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_DIVE, + MOVE_DRAGON_CLAW, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SOLAR_BEAM, + MOVE_STEEL_WING, + MOVE_SURF, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZacianTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_PROTECT, + MOVE_REST, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sZamazentaTeachableLearnset[] = { + MOVE_DIG, + MOVE_FACADE, + MOVE_HYPER_BEAM, + MOVE_IRON_TAIL, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SOLAR_BEAM, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +static const u16 sEternatusTeachableLearnset[] = { + MOVE_FACADE, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_TOXIC, + MOVE_ENDURE, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKubfuTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, + MOVE_ENDURE, + MOVE_FIRE_PUNCH, + MOVE_ICE_PUNCH, + MOVE_MEGA_KICK, + MOVE_MEGA_PUNCH, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sUrshifuTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_ATTRACT, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_TAUNT, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, + 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_SWIFT, + MOVE_THUNDER_PUNCH, + 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 sBasculegionTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sSneaslerTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sOverqwilTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sEnamorusTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +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, +}; + +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, +}; + +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, +}; + +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, +}; + +static const u16 sSliggooHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sGoodraHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sAvaluggHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sDecidueyeHisuianTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +#endif + +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_NEW_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, +}; + +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, +}; + +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, +}; + +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, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_DIG, + MOVE_DIVE, + MOVE_FACADE, + MOVE_FOCUS_PUNCH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SMASH, + MOVE_ROCK_TOMB, + MOVE_TAUNT, + MOVE_WATERFALL, + MOVE_BODY_SLAM, + MOVE_COUNTER, + MOVE_DYNAMIC_PUNCH, + 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_SWIFT, + MOVE_THUNDER_PUNCH, + MOVE_UNAVAILABLE, +}; + +static const u16 sCalyrexIceRiderTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BULLET_SEED, + MOVE_CALM_MIND, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_HAIL, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SAFEGUARD, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TORMENT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_ICY_WIND, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCalyrexShadowRiderTeachableLearnset[] = { + 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_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SOLAR_BEAM, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_ENDURE, + MOVE_METRONOME, + MOVE_SLEEP_TALK, + MOVE_SNORE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_UNAVAILABLE, +}; + +#endif diff --git a/src/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h deleted file mode 100644 index 014e4a598..000000000 --- a/src/data/pokemon/tmhm_learnsets.h +++ /dev/null @@ -1,24757 +0,0 @@ -#define TMHM_LEARNSET(moves) {(u32)(moves), ((u64)(moves) >> 32)} -#define TMHM(tmhm) ((u64)1 << (ITEM_##tmhm - ITEM_TM01_FOCUS_PUNCH - ((ITEM_##tmhm > ITEM_TM100) ? 50 : 0))) - -// This table determines which TMs and HMs a species is capable of learning. -// Each entry is a 64-bit bit array spread across two 32-bit values, with -// each bit corresponding to a TM or HM. -const u32 gTMHMLearnsets[][2] = -{ - [SPECIES_NONE] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM26_EARTHQUAKE) - | TMHM(HM02_FLY) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_BULBASAUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_IVYSAUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_VENUSAUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHARMANDER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHARMELEON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHARIZARD] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SQUIRTLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WARTORTLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BLASTOISE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CATERPIE] = TMHM_LEARNSET(0), - - [SPECIES_METAPOD] = TMHM_LEARNSET(0), - - [SPECIES_BUTTERFREE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_WEEDLE] = TMHM_LEARNSET(0), - - [SPECIES_KAKUNA] = TMHM_LEARNSET(0), - - [SPECIES_BEEDRILL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIDGEY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIDGEOTTO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIDGEOT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_RATTATA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RATICATE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SPEAROW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FEAROW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_EKANS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ARBOK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RAICHU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SANDSHREW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SANDSLASH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_NIDORAN_F] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NIDORINA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NIDOQUEEN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NIDORAN_M] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NIDORINO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NIDOKING] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CLEFAIRY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CLEFABLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VULPIX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_NINETALES] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_JIGGLYPUFF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WIGGLYTUFF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ZUBAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOLBAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ODDISH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GLOOM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_VILEPLUME] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_PARAS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PARASECT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VENONAT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VENOMOTH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_DIGLETT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUGTRIO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MEOWTH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PERSIAN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PSYDUCK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GOLDUCK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MANKEY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PRIMEAPE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GROWLITHE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ARCANINE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_POLIWAG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_POLIWHIRL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_POLIWRATH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ABRA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KADABRA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ALAKAZAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MACHOP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MACHOKE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MACHAMP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_BELLSPROUT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_WEEPINBELL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VICTREEBEL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_TENTACOOL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TENTACRUEL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GEODUDE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GRAVELER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOLEM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_PONYTA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_RAPIDASH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SLOWPOKE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SLOWBRO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MAGNEMITE] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGNETON] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FARFETCHD] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_DODUO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_DODRIO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SEEL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DEWGONG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GRIMER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MUK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHELLDER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CLOYSTER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GASTLY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HAUNTER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GENGAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ONIX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DROWZEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HYPNO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KRABBY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KINGLER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VOLTORB] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ELECTRODE] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_EXEGGCUTE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_EXEGGUTOR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_CUBONE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAROWAK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_HITMONLEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_HITMONCHAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LICKITUNG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KOFFING] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_WEEZING] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RHYHORN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RHYDON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHANSEY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TANGELA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_KANGASKHAN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HORSEA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SEADRA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GOLDEEN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SEAKING] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_STARYU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_STARMIE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MR_MIME] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SCYTHER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_JYNX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ELECTABUZZ] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGMAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PINSIR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_TAUROS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MAGIKARP] = TMHM_LEARNSET(0), - - [SPECIES_GYARADOS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LAPRAS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DITTO] = TMHM_LEARNSET(0), - - [SPECIES_EEVEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_VAPOREON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_JOLTEON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLAREON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_PORYGON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_OMANYTE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_OMASTAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KABUTO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KABUTOPS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_AERODACTYL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SNORLAX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARTICUNO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ZAPDOS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MOLTRES] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DRATINI] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DRAGONAIR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DRAGONITE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MEWTWO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MEW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CHIKORITA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BAYLEEF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_MEGANIUM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CYNDAQUIL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_QUILAVA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TYPHLOSION] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TOTODILE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CROCONAW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_FERALIGATR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SENTRET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_FURRET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HOOTHOOT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_NOCTOWL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LEDYBA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LEDIAN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SPINARAK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ARIADOS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_CROBAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHINCHOU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LANTURN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PICHU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CLEFFA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_IGGLYBUFF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TOGEPI] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TOGETIC] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NATU] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_XATU] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAREEP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLAAFFY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_AMPHAROS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BELLOSSOM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_MARILL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_AZUMARILL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SUDOWOODO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_POLITOED] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HOPPIP] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SKIPLOOM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_JUMPLUFF] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_AIPOM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SUNKERN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SUNFLORA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_YANMA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_WOOPER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_QUAGSIRE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ESPEON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_UMBREON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MURKROW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SLOWKING] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MISDREAVUS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_UNOWN] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_WOBBUFFET] = TMHM_LEARNSET(TMHM(TM20_SAFEGUARD)), - - [SPECIES_GIRAFARIG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PINECO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FORRETRESS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUNSPARCE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GLIGAR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_STEELIX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SNUBBULL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GRANBULL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_QWILFISH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SCIZOR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHUCKLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_HERACROSS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SNEASEL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TEDDIURSA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_URSARING] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SLUGMA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGCARGO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SWINUB] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_PILOSWINE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_CORSOLA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_REMORAID] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_OCTILLERY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DELIBIRD] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MANTINE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SKARMORY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HOUNDOUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HOUNDOOM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KINGDRA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PHANPY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DONPHAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_PORYGON2] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_STANTLER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SMEARGLE] = TMHM_LEARNSET(TMHM(TM35_FLAMETHROWER)), - - [SPECIES_TYROGUE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_HITMONTOP] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SMOOCHUM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ELEKID] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGBY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MILTANK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BLISSEY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_RAIKOU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ENTEI] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SUICUNE] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LARVITAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PUPITAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TYRANITAR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LUGIA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HO_OH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CELEBI] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TREECKO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GROVYLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SCEPTILE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TORCHIC] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_COMBUSKEN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BLAZIKEN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_MUDKIP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MARSHTOMP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SWAMPERT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_POOCHYENA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MIGHTYENA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZIGZAGOON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LINOONE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WURMPLE] = TMHM_LEARNSET(0), - - [SPECIES_SILCOON] = TMHM_LEARNSET(0), - - [SPECIES_BEAUTIFLY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_CASCOON] = TMHM_LEARNSET(0), - - [SPECIES_DUSTOX] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LOTAD] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LOMBRE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LUDICOLO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SEEDOT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_NUZLEAF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHIFTRY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TAILLOW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SWELLOW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_WINGULL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PELIPPER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_RALTS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KIRLIA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GARDEVOIR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SURSKIT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MASQUERAIN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SHROOMISH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BRELOOM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SLAKOTH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VIGOROTH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SLAKING] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NINCADA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_NINJASK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHEDINJA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_WHISMUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LOUDRED] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_EXPLOUD] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MAKUHITA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_HARIYAMA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_AZURILL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NOSEPASS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SKITTY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DELCATTY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SABLEYE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MAWILE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ARON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LAIRON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_AGGRON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MEDITITE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_MEDICHAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ELECTRIKE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MANECTRIC] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PLUSLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINUN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_VOLBEAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ILLUMISE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ROSELIA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GULPIN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SWALOT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CARVANHA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SHARPEDO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WAILMER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WAILORD] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NUMEL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CAMERUPT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TORKOAL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SPOINK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GRUMPIG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SPINDA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TRAPINCH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIBRAVA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLYGON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CACNEA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CACTURNE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SWABLU] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ALTARIA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZANGOOSE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SEVIPER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LUNATONE] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM06_TOXIC)), - - [SPECIES_SOLROCK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BARBOACH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WHISCASH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CORPHISH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CRAWDAUNT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BALTOY] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CLAYDOL] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_LILEEP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CRADILY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ANORITH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARMALDO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_FEEBAS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MILOTIC] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CASTFORM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KECLEON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SHUPPET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BANETTE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUSKULL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUSCLOPS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TROPIUS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHIMECHO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ABSOL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WYNAUT] = TMHM_LEARNSET(TMHM(TM20_SAFEGUARD)), - - [SPECIES_SNORUNT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GLALIE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SPHEAL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SEALEO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WALREIN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CLAMPERL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HUNTAIL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GOREBYSS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_RELICANTH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LUVDISC] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BAGON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHELGON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SALAMENCE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BELDUM] = TMHM_LEARNSET(0), - - [SPECIES_METANG] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_METAGROSS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_REGIROCK] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_REGICE] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_REGISTEEL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LATIAS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LATIOS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KYOGRE] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GROUDON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RAYQUAZA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_JIRACHI] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DEOXYS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - -#if P_NEW_POKEMON == TRUE - [SPECIES_TURTWIG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GROTLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TORTERRA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHIMCHAR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MONFERNO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_INFERNAPE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIPLUP] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PRINPLUP] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_EMPOLEON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_STARLY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_STARAVIA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_STARAPTOR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_BIDOOF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BIBAREL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KRICKETOT] = TMHM_LEARNSET(0), - - [SPECIES_KRICKETUNE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHINX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LUXIO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LUXRAY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BUDEW] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ROSERADE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CRANIDOS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RAMPARDOS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHIELDON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BASTIODON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BURMY] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT)), - - [SPECIES_WORMADAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MOTHIM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_COMBEE] = TMHM_LEARNSET(0), - - [SPECIES_VESPIQUEN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PACHIRISU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BUIZEL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_FLOATZEL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CHERUBI] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHERRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHELLOS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GASTRODON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_AMBIPOM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DRIFLOON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DRIFBLIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BUNEARY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LOPUNNY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MISMAGIUS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HONCHKROW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GLAMEOW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PURUGLY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CHINGLING] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_STUNKY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SKUNTANK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BRONZOR] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BRONZONG] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BONSLY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MIME_JR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HAPPINY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CHATOT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SPIRITOMB] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GIBLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GABITE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GARCHOMP] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MUNCHLAX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_RIOLU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_LUCARIO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HIPPOPOTAS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HIPPOWDON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SKORUPI] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DRAPION] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CROAGUNK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TOXICROAK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CARNIVINE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FINNEON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_LUMINEON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MANTYKE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SNOVER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ABOMASNOW] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_WEAVILE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGNEZONE] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LICKILICKY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_RHYPERIOR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TANGROWTH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ELECTIVIRE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGMORTAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TOGEKISS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_YANMEGA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LEAFEON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GLACEON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GLISCOR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAMOSWINE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_PORYGON_Z] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GALLADE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PROBOPASS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUSKNOIR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FROSLASS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ROTOM] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_UXIE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MESPRIT] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_AZELF] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DIALGA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PALKIA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HEATRAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_REGIGIGAS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GIRATINA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CRESSELIA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_PHIONE] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MANAPHY] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DARKRAI] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHAYMIN] = TMHM_LEARNSET(TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ARCEUS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VICTINI] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SNIVY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SERVINE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SERPERIOR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TEPIG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIGNITE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_EMBOAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_OSHAWOTT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DEWOTT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SAMUROTT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PATRAT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_WATCHOG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LILLIPUP] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HERDIER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_STOUTLAND] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PURRLOIN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LIEPARD] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PANSAGE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SIMISAGE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PANSEAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SIMISEAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PANPOUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SIMIPOUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MUNNA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MUSHARNA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIDOVE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TRANQUILL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_UNFEZANT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BLITZLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZEBSTRIKA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ROGGENROLA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_BOLDORE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_GIGALITH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_WOOBAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SWOOBAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DRILBUR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_EXCADRILL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_AUDINO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TIMBURR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GURDURR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CONKELDURR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TYMPOLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PALPITOAD] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SEISMITOAD] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_THROH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SAWK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SEWADDLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SWADLOON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_LEAVANNY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_VENIPEDE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_WHIRLIPEDE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SCOLIPEDE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_COTTONEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_WHIMSICOTT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PETILIL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_LILLIGANT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BASCULIN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL)), - - [SPECIES_SANDILE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KROKOROK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KROOKODILE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DARUMAKA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_DARMANITAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MARACTUS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DWEBBLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_CRUSTLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_SCRAGGY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SCRAFTY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SIGILYPH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_YAMASK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_COFAGRIGUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_TIRTOUGA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CARRACOSTA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCHEN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ARCHEOPS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TRUBBISH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_GARBODOR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZORUA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZOROARK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINCCINO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CINCCINO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOTHITA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOTHORITA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOTHITELLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SOLOSIS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUOSION] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_REUNICLUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUCKLETT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SWANNA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VANILLITE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VANILLISH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VANILLUXE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DEERLING] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SAWSBUCK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_EMOLGA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KARRABLAST] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM06_TOXIC)), - - [SPECIES_ESCAVALIER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM06_TOXIC)), - - [SPECIES_FOONGUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_AMOONGUSS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FRILLISH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_JELLICENT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ALOMOMOLA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_JOLTIK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GALVANTULA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FERROSEED] = TMHM_LEARNSET(TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FERROTHORN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KLINK] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KLANG] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KLINKLANG] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TYNAMO] = TMHM_LEARNSET(0), - - [SPECIES_EELEKTRIK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_EELEKTROSS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ELGYEM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BEHEEYEM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LITWICK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LAMPENT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHANDELURE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_AXEW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FRAXURE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HAXORUS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CUBCHOO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BEARTIC] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CRYOGONAL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SHELMET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM06_TOXIC)), - - [SPECIES_ACCELGOR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM06_TOXIC)), - - [SPECIES_STUNFISK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MIENFOO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MIENSHAO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DRUDDIGON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOLETT] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOLURK] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PAWNIARD] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BISHARP] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BOUFFALANT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RUFFLET] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_BRAVIARY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_VULLABY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MANDIBUZZ] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HEATMOR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_DURANT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_DEINO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZWEILOUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HYDREIGON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LARVESTA] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_VOLCARONA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_COBALION] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TERRAKION] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIRIZION] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TORNADUS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_THUNDURUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RESHIRAM] = TMHM_LEARNSET(TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZEKROM] = TMHM_LEARNSET(TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LANDORUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_KYUREM] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_KELDEO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MELOETTA] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GENESECT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHESPIN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_QUILLADIN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHESNAUGHT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FENNEKIN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_BRAIXEN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_DELPHOX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FROAKIE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_FROGADIER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GRENINJA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BUNNELBY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DIGGERSBY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLETCHLING] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLETCHINDER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_TALONFLAME] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SCATTERBUG] = TMHM_LEARNSET(0), - - [SPECIES_SPEWPA] = TMHM_LEARNSET(TMHM(TM17_PROTECT)), - - [SPECIES_VIVILLON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_LITLEO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PYROAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLABEBE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLOETTE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLORGES] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SKIDDO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOGOAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PANCHAM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PANGORO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ESPURR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MEOWSTIC] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HONEDGE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM06_TOXIC)), - - [SPECIES_DOUBLADE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM06_TOXIC)), - - [SPECIES_AEGISLASH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SPRITZEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_AROMATISSE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SWIRLIX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SLURPUFF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_INKAY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MALAMAR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BINACLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BARBARACLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SKRELP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DRAGALGE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CLAUNCHER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CLAWITZER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_HELIOPTILE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HELIOLISK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TYRUNT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TYRANTRUM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_AMAURA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_AURORUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SYLVEON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_HAWLUCHA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_DEDENNE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CARBINK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOOMY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SLIGGOO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GOODRA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_KLEFKI] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PHANTUMP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_TREVENANT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PUMPKABOO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOURGEIST] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_BERGMITE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_AVALUGG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NOIBAT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_NOIVERN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_XERNEAS] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_YVELTAL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZYGARDE] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DIANCIE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_HOOPA] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_VOLCANION] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ROWLET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DARTRIX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DECIDUEYE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_LITTEN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TORRACAT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_INCINEROAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_POPPLIO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BRIONNE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PRIMARINA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_PIKIPEK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_TRUMBEAK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_TOUCANNON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_YUNGOOS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GUMSHOOS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GRUBBIN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CHARJABUG] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIKAVOLT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CRABRAWLER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_CRABOMINABLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ORICORIO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CUTIEFLY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_RIBOMBEE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ROCKRUFF] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LYCANROC] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_WISHIWASHI] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MAREANIE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TOXAPEX] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_MUDBRAY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM06_TOXIC)), - - [SPECIES_MUDSDALE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM06_TOXIC)), - - [SPECIES_DEWPIDER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARAQUANID] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_FOMANTIS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_LURANTIS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_MORELULL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHIINOTIC] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SALANDIT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SALAZZLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_STUFFUL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BEWEAR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BOUNSWEET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_STEENEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TSAREENA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_COMFEY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ORANGURU] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PASSIMIAN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_WIMPOD] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL)), - - [SPECIES_GOLISOPOD] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SANDYGAST] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM06_TOXIC)), - - [SPECIES_PALOSSAND] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM06_TOXIC)), - - [SPECIES_PYUKUMUKU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM07_HAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TYPE_NULL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_KOMALA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM27_RETURN) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TURTONATOR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TOGEDEMARU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MIMIKYU] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BRUXISH] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM49_SNATCH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DRAMPA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DHELMISE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_JANGMO_O] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_HAKAMO_O] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_KOMMO_O] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_TAPU_KOKO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TAPU_LELE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TAPU_BULU] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_TAPU_FINI] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_COSMOG] = TMHM_LEARNSET(0), - - [SPECIES_COSMOEM] = TMHM_LEARNSET(0), - - [SPECIES_SOLGALEO] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LUNALA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_NIHILEGO] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_BUZZWOLE] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PHEROMOSA] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_XURKITREE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_CELESTEELA] = TMHM_LEARNSET(TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_KARTANA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM06_TOXIC)), - - [SPECIES_GUZZLORD] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_NECROZMA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGEARNA] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM27_RETURN) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_MARSHADOW] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM49_SNATCH) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_POIPOLE] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM06_TOXIC)), - - [SPECIES_NAGANADEL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM49_SNATCH) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_STAKATAKA] = TMHM_LEARNSET(TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM06_TOXIC)), - - [SPECIES_BLACEPHALON] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZERAORA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM49_SNATCH) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - //TMs of LGPE don't match with USUM - [SPECIES_MELTAN] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_MELMETAL] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_GROOKEY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT)), - - [SPECIES_THWACKEY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT)), - - [SPECIES_RILLABOOM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT)), - - [SPECIES_SCORBUNNY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT)), - - [SPECIES_RABOOT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT)), - - [SPECIES_CINDERACE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT)), - - [SPECIES_SOBBLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(HM03_SURF) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DRIZZILE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(HM03_SURF) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_INTELEON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM03_SURF) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SKWOVET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM46_THIEF)), - - [SPECIES_GREEDENT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM46_THIEF)), - - [SPECIES_ROOKIDEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_CORVISQUIRE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_CORVIKNIGHT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_BLIPBUG] = TMHM_LEARNSET(0), - - [SPECIES_DOTTLER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ORBEETLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_NICKIT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT)), - - [SPECIES_THIEVUL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_GOSSIFLEUR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_ELDEGOSS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_WOOLOO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST)), - - [SPECIES_DUBWOOL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST)), - - [SPECIES_CHEWTLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(HM03_SURF)), - - [SPECIES_DREDNAW] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(HM03_SURF) - | TMHM(HM07_WATERFALL)), - - [SPECIES_YAMPER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM05_ROAR) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_BOLTUND] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM05_ROAR) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_ROLYCOLY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM)), - - [SPECIES_CARKOL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM)), - - [SPECIES_COALOSSAL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_APPLIN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT)), - - [SPECIES_FLAPPLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_APPLETUN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_SILICOBRA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM37_SANDSTORM)), - - [SPECIES_SANDACONDA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM)), - - [SPECIES_CRAMORANT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM47_STEEL_WING) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF)), - - [SPECIES_ARROKUDA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(HM07_WATERFALL)), - - [SPECIES_BARRASKEWDA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(HM03_SURF) - | TMHM(HM07_WATERFALL)), - - [SPECIES_TOXEL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST)), - - [SPECIES_TOXTRICITY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SIZZLIPEDE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_CENTISKORCH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_CLOBBOPUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM12_TAUNT) - | TMHM(HM07_WATERFALL)), - - [SPECIES_GRAPPLOCT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(HM07_WATERFALL)), - - [SPECIES_SINISTEA] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL)), - - [SPECIES_POLTEAGEIST] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL)), - - [SPECIES_HATENNA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM48_SKILL_SWAP)), - - [SPECIES_HATTREM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM48_SKILL_SWAP)), - - [SPECIES_HATTERENE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP)), - - [SPECIES_IMPIDIMP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT)), - - [SPECIES_MORGREM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT)), - - [SPECIES_GRIMMSNARL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT)), - - [SPECIES_OBSTAGOON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_PERRSERKER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_CURSOLA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF)), - - [SPECIES_SIRFETCHD] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_MR_RIME] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_RUNERIGUS] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_MILCERY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST)), - - [SPECIES_ALCREMIE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_FALINKS] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB)), - - [SPECIES_PINCURCHIN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_SNOM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST)), - - [SPECIES_FROSMOTH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD)), - - [SPECIES_STONJOURNER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM)), - - [SPECIES_EISCUE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM07_HAIL) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(HM03_SURF) - | TMHM(HM07_WATERFALL)), - - [SPECIES_INDEEDEE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL)), - - [SPECIES_MORPEKO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT)), - - [SPECIES_CUFANT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(HM04_STRENGTH)), - - [SPECIES_COPPERAJAH] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT)), - - [SPECIES_DRACOZOLT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_ARCTOZOLT] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM42_FACADE) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_DRACOVISH] = TMHM_LEARNSET(TMHM(HM08_DIVE) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(HM03_SURF) - | TMHM(HM07_WATERFALL)), - - [SPECIES_ARCTOVISH] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(HM03_SURF) - | TMHM(HM07_WATERFALL)), - - [SPECIES_DURALUDON] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_DREEPY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST)), - - [SPECIES_DRAKLOAK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_DRAGAPULT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM08_DIVE) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM47_STEEL_WING) - | TMHM(HM03_SURF) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_ZACIAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST)), - - [SPECIES_ZAMAZENTA] = TMHM_LEARNSET(TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ETERNATUS] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM02_FLY) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_KUBFU] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH)), - - [SPECIES_URSHIFU] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT)), - - [SPECIES_ZARUDE] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_REGIELEKI] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_REGIDRAGO] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST)), - - [SPECIES_GLASTRIER] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM42_FACADE) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT)), - - [SPECIES_SPECTRIER] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM12_TAUNT)), - - [SPECIES_CALYREX] = TMHM_LEARNSET(TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_RATTATA_ALOLAN] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RATICATE_ALOLAN] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM08_BULK_UP) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_RAICHU_ALOLAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(HM04_STRENGTH) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_SANDSHREW_ALOLAN] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_SANDSLASH_ALOLAN] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_VULPIX_ALOLAN] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM06_TOXIC)), - - [SPECIES_NINETALES_ALOLAN] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM06_TOXIC)), - - [SPECIES_DIGLETT_ALOLAN] = TMHM_LEARNSET(TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM06_TOXIC)), - - [SPECIES_DUGTRIO_ALOLAN] = TMHM_LEARNSET(TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM06_TOXIC)), - - [SPECIES_MEOWTH_ALOLAN] = TMHM_LEARNSET(TMHM(HM01_CUT) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM12_TAUNT) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_PERSIAN_ALOLAN] = TMHM_LEARNSET(TMHM(HM01_CUT) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM12_TAUNT) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_GEODUDE_ALOLAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(HM04_STRENGTH) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_GRAVELER_ALOLAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(HM04_STRENGTH) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOLEM_ALOLAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(HM04_STRENGTH) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_GRIMER_ALOLAN] = TMHM_LEARNSET(TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MUK_ALOLAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_EXEGGUTOR_ALOLAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAROWAK_ALOLAN] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM30_SHADOW_BALL) - | TMHM(HM04_STRENGTH) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM25_THUNDER) - | TMHM(TM06_TOXIC)), - - [SPECIES_MEOWTH_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_PONYTA_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST)), - - [SPECIES_RAPIDASH_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST)), - - [SPECIES_SLOWPOKE_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM07_HAIL) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_SLOWBRO_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_FARFETCHD_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY)), - - [SPECIES_WEEZING_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MR_MIME_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_ARTICUNO_GALARIAN] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM47_STEEL_WING)), - - [SPECIES_ZAPDOS_GALARIAN] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT)), - - [SPECIES_MOLTRES_GALARIAN] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT)), - - [SPECIES_SLOWKING_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_CORSOLA_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ZIGZAGOON_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_LINOONE_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_DARUMAKA_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_DARMANITAN_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_YAMASK_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM46_THIEF)), - - [SPECIES_STUNFISK_GALARIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM03_SURF)), - - [SPECIES_PIKACHU_COSPLAY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_ROCK_STAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_BELLE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_POP_STAR] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_PH_D] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_LIBRE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_ORIGINAL_CAP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_HOENN_CAP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_SINNOH_CAP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_UNOVA_CAP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_KALOS_CAP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_ALOLA_CAP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PIKACHU_PARTNER_CAP] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PICHU_SPIKY_EARED] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), -#endif - [SPECIES_UNOWN_B] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_C] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_D] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_E] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_F] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_G] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_H] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_I] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_J] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_K] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_L] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_M] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_N] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_O] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_P] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_Q] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_R] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_S] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_T] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_U] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_V] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_W] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_X] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_Y] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_Z] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_EMARK] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_UNOWN_QMARK] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), - - [SPECIES_DEOXYS_ATTACK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DEOXYS_DEFENSE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_DEOXYS_SPEED] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - -#if P_NEW_POKEMON == TRUE - [SPECIES_BURMY_SANDY_CLOAK] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT)), - - [SPECIES_BURMY_TRASH_CLOAK] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT)), - - [SPECIES_WORMADAM_SANDY_CLOAK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_WORMADAM_TRASH_CLOAK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHELLOS_EAST_SEA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GASTRODON_EAST_SEA] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ROTOM_HEAT] = TMHM_LEARNSET(TMHM(TM50_OVERHEAT)), - - [SPECIES_ROTOM_WASH] = TMHM_LEARNSET(0), - - [SPECIES_ROTOM_FROST] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD)), - - [SPECIES_ROTOM_FAN] = TMHM_LEARNSET(0), - - [SPECIES_ROTOM_MOW] = TMHM_LEARNSET(0), - - [SPECIES_GIRATINA_ORIGIN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SHAYMIN_SKY] = TMHM_LEARNSET(TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ARCEUS_FIGHTING] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_FLYING] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_POISON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_GROUND] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_ROCK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_BUG] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_GHOST] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_STEEL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_FIRE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_WATER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_GRASS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_ELECTRIC] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_PSYCHIC] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_ICE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_DRAGON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_DARK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_ARCEUS_FAIRY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM50_OVERHEAT) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_BASCULIN_BLUE_STRIPED] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL)), - - [SPECIES_DEERLING_SUMMER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DEERLING_AUTUMN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_DEERLING_WINTER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SAWSBUCK_SUMMER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SAWSBUCK_AUTUMN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_SAWSBUCK_WINTER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_TORNADUS_THERIAN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_THUNDURUS_THERIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LANDORUS_THERIAN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM04_CALM_MIND) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(HM04_STRENGTH) - | TMHM(TM06_TOXIC)), - - [SPECIES_KYUREM_WHITE] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_KYUREM_BLACK] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_KELDEO_RESOLUTE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_GENESECT_DOUSE_DRIVE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GENESECT_SHOCK_DRIVE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GENESECT_BURN_DRIVE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GENESECT_CHILL_DRIVE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM14_BLIZZARD) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_GRENINJA_BATTLE_BOND] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM14_BLIZZARD) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM49_SNATCH) - | TMHM(HM04_STRENGTH) - | TMHM(HM03_SURF) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC) - | TMHM(HM07_WATERFALL) - | TMHM(TM03_WATER_PULSE)), - - [SPECIES_VIVILLON_POLAR] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_TUNDRA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_CONTINENTAL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_GARDEN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_ELEGANT] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_MEADOW] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_MODERN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_MARINE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_ARCHIPELAGO] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_HIGH_PLAINS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_SANDSTORM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_RIVER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_MONSOON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_SAVANNA] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_SUN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_OCEAN] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_JUNGLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_FANCY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_VIVILLON_POKE_BALL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLABEBE_YELLOW_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLABEBE_ORANGE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLABEBE_BLUE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLABEBE_WHITE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLOETTE_YELLOW_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLOETTE_ORANGE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLOETTE_BLUE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLOETTE_WHITE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLOETTE_ETERNAL_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLORGES_YELLOW_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLORGES_ORANGE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLORGES_BLUE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FLORGES_WHITE_FLOWER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_HEART_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_STAR_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_DIAMOND_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_DEBUTANTE_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_MATRON_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_DANDY_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_LA_REINE_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_KABUKI_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_FURFROU_PHARAOH_TRIM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MEOWSTIC_FEMALE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(HM01_CUT) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_PUMPKABOO_SMALL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PUMPKABOO_LARGE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_PUMPKABOO_SUPER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOURGEIST_SMALL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOURGEIST_LARGE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_GOURGEIST_SUPER] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM38_FIRE_BLAST) - | TMHM(TM35_FLAMETHROWER) - | TMHM(HM05_FLASH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZYGARDE_10] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_ZYGARDE_COMPLETE] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM28_DIG) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(HM04_STRENGTH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM06_TOXIC)), - - [SPECIES_HOOPA_UNBOUND] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM05_FLASH) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM43_SECRET_POWER) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM49_SNATCH) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM41_TORMENT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ORICORIO_POM_POM] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ORICORIO_PAU] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ORICORIO_SENSU] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(HM02_FLY) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM47_STEEL_WING) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_ROCKRUFF_OWN_TEMPO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LYCANROC_MIDNIGHT] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_LYCANROC_DUSK] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_FIGHTING] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_FLYING] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_POISON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_GROUND] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_ROCK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_BUG] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_GHOST] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_STEEL] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_FIRE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_WATER] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_GRASS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_ELECTRIC] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_PSYCHIC] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_ICE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_DRAGON] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_DARK] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SILVALLY_FAIRY] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM02_DRAGON_CLAW) - | TMHM(TM42_FACADE) - | TMHM(TM35_FLAMETHROWER) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM07_HAIL) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM05_ROAR) - | TMHM(TM37_SANDSTORM) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM47_STEEL_WING) - | TMHM(TM11_SUNNY_DAY) - | TMHM(HM03_SURF) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR_CORE_RED] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR_CORE_ORANGE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR_CORE_YELLOW] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR_CORE_GREEN] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR_CORE_BLUE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR_CORE_INDIGO] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_MINIOR_CORE_VIOLET] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM37_SANDSTORM) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM06_TOXIC)), - - [SPECIES_NECROZMA_DUSK_MANE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_NECROZMA_DAWN_WINGS] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM26_EARTHQUAKE) - | TMHM(TM42_FACADE) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM27_RETURN) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM46_THIEF) - | TMHM(TM06_TOXIC)), - - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM04_CALM_MIND) - | TMHM(TM32_DOUBLE_TEAM) - | TMHM(TM21_FRUSTRATION) - | TMHM(TM10_HIDDEN_POWER) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM33_REFLECT) - | TMHM(TM27_RETURN) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM24_THUNDERBOLT)), - - [SPECIES_TOXTRICITY_LOW_KEY] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM42_FACADE) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM34_SHOCK_WAVE) - | TMHM(TM36_SLUDGE_BOMB) - | TMHM(TM12_TAUNT) - | TMHM(TM25_THUNDER) - | TMHM(TM24_THUNDERBOLT) - | TMHM(TM06_TOXIC)), - - [SPECIES_SINISTEA_ANTIQUE] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL)), - - [SPECIES_POLTEAGEIST_ANTIQUE] = TMHM_LEARNSET(TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM30_SHADOW_BALL)), - - [SPECIES_ALCREMIE_RUBY_CREAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ALCREMIE_MATCHA_CREAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ALCREMIE_MINT_CREAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ALCREMIE_LEMON_CREAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ALCREMIE_SALTED_CREAM] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ALCREMIE_RUBY_SWIRL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ALCREMIE_CARAMEL_SWIRL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_ALCREMIE_RAINBOW_SWIRL] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM22_SOLAR_BEAM)), - - [SPECIES_INDEEDEE_FEMALE] = TMHM_LEARNSET(TMHM(TM45_ATTRACT) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL)), - - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = TMHM_LEARNSET(TMHM(TM40_AERIAL_ACE) - | TMHM(TM45_ATTRACT) - | TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM28_DIG) - | TMHM(HM08_DIVE) - | TMHM(TM42_FACADE) - | TMHM(TM01_FOCUS_PUNCH) - | TMHM(TM17_PROTECT) - | TMHM(TM18_RAIN_DANCE) - | TMHM(TM44_REST) - | TMHM(HM06_ROCK_SMASH) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM12_TAUNT) - | TMHM(HM07_WATERFALL)), - - [SPECIES_ZARUDE_DADA] = TMHM_LEARNSET(TMHM(TM31_BRICK_BREAK) - | TMHM(TM08_BULK_UP) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM28_DIG) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM23_IRON_TAIL) - | TMHM(TM17_PROTECT) - | TMHM(TM44_REST) - | TMHM(TM39_ROCK_TOMB) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM46_THIEF)), - - [SPECIES_CALYREX_ICE_RIDER] = TMHM_LEARNSET(TMHM(TM14_BLIZZARD) - | TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM07_HAIL) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM13_ICE_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT) - | TMHM(TM41_TORMENT)), - - [SPECIES_CALYREX_SHADOW_RIDER] = TMHM_LEARNSET(TMHM(TM09_BULLET_SEED) - | TMHM(TM04_CALM_MIND) - | TMHM(TM42_FACADE) - | TMHM(TM19_GIGA_DRAIN) - | TMHM(TM15_HYPER_BEAM) - | TMHM(TM16_LIGHT_SCREEN) - | TMHM(TM17_PROTECT) - | TMHM(TM29_PSYCHIC) - | TMHM(TM33_REFLECT) - | TMHM(TM44_REST) - | TMHM(TM20_SAFEGUARD) - | TMHM(TM30_SHADOW_BALL) - | TMHM(TM48_SKILL_SWAP) - | TMHM(TM22_SOLAR_BEAM) - | TMHM(TM11_SUNNY_DAY) - | TMHM(TM12_TAUNT)), -#endif -}; diff --git a/src/data/pokemon/tutor_learnsets.h b/src/data/pokemon/tutor_learnsets.h deleted file mode 100644 index 7d4eb99df..000000000 --- a/src/data/pokemon/tutor_learnsets.h +++ /dev/null @@ -1,10595 +0,0 @@ -const u16 gTutorMoves[] = -{ - [TUTOR_MOVE_MEGA_PUNCH] = MOVE_MEGA_PUNCH, - [TUTOR_MOVE_SWORDS_DANCE] = MOVE_SWORDS_DANCE, - [TUTOR_MOVE_MEGA_KICK] = MOVE_MEGA_KICK, - [TUTOR_MOVE_BODY_SLAM] = MOVE_BODY_SLAM, - [TUTOR_MOVE_DOUBLE_EDGE] = MOVE_DOUBLE_EDGE, - [TUTOR_MOVE_COUNTER] = MOVE_COUNTER, - [TUTOR_MOVE_SEISMIC_TOSS] = MOVE_SEISMIC_TOSS, - [TUTOR_MOVE_MIMIC] = MOVE_MIMIC, - [TUTOR_MOVE_METRONOME] = MOVE_METRONOME, - [TUTOR_MOVE_SOFT_BOILED] = MOVE_SOFT_BOILED, - [TUTOR_MOVE_DREAM_EATER] = MOVE_DREAM_EATER, - [TUTOR_MOVE_THUNDER_WAVE] = MOVE_THUNDER_WAVE, - [TUTOR_MOVE_EXPLOSION] = MOVE_EXPLOSION, - [TUTOR_MOVE_ROCK_SLIDE] = MOVE_ROCK_SLIDE, - [TUTOR_MOVE_SUBSTITUTE] = MOVE_SUBSTITUTE, - [TUTOR_MOVE_DYNAMIC_PUNCH] = MOVE_DYNAMIC_PUNCH, - [TUTOR_MOVE_ROLLOUT] = MOVE_ROLLOUT, - [TUTOR_MOVE_PSYCH_UP] = MOVE_PSYCH_UP, - [TUTOR_MOVE_SNORE] = MOVE_SNORE, - [TUTOR_MOVE_ICY_WIND] = MOVE_ICY_WIND, - [TUTOR_MOVE_ENDURE] = MOVE_ENDURE, - [TUTOR_MOVE_MUD_SLAP] = MOVE_MUD_SLAP, - [TUTOR_MOVE_ICE_PUNCH] = MOVE_ICE_PUNCH, - [TUTOR_MOVE_SWAGGER] = MOVE_SWAGGER, - [TUTOR_MOVE_SLEEP_TALK] = MOVE_SLEEP_TALK, - [TUTOR_MOVE_SWIFT] = MOVE_SWIFT, - [TUTOR_MOVE_DEFENSE_CURL] = MOVE_DEFENSE_CURL, - [TUTOR_MOVE_THUNDER_PUNCH] = MOVE_THUNDER_PUNCH, - [TUTOR_MOVE_FIRE_PUNCH] = MOVE_FIRE_PUNCH, - [TUTOR_MOVE_FURY_CUTTER] = MOVE_FURY_CUTTER, -}; - -#define TUTOR_LEARNSET(moves) ((u32)(moves)) -#define TUTOR(move) ((u64)1 << (TUTOR_##move)) - -static const u32 sTutorLearnsets[] = -{ - [SPECIES_NONE] = (0), - - [SPECIES_BULBASAUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_IVYSAUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_VENUSAUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CHARMANDER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CHARMELEON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CHARIZARD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SQUIRTLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WARTORTLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BLASTOISE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CATERPIE] = TUTOR_LEARNSET(TUTOR(MOVE_SNORE)), - - [SPECIES_METAPOD] = TUTOR_LEARNSET(0), - - [SPECIES_BUTTERFREE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_WEEDLE] = TUTOR_LEARNSET(0), - - [SPECIES_KAKUNA] = TUTOR_LEARNSET(0), - - [SPECIES_BEEDRILL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_PIDGEY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PIDGEOTTO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PIDGEOT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_RATTATA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_RATICATE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SPEAROW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_FEAROW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_EKANS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ARBOK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PIKACHU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_RAICHU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SANDSHREW] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SANDSLASH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_NIDORAN_F] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NIDORINA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NIDOQUEEN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_NIDORAN_M] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NIDORINO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NIDOKING] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CLEFAIRY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CLEFABLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_VULPIX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_NINETALES] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_JIGGLYPUFF] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_WIGGLYTUFF] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ZUBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GOLBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_ODDISH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_GLOOM] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_VILEPLUME] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_PARAS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_PARASECT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_VENONAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_VENOMOTH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_DIGLETT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DUGTRIO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MEOWTH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PERSIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PSYDUCK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GOLDUCK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MANKEY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_PRIMEAPE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GROWLITHE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_ARCANINE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_POLIWAG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_POLIWHIRL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_POLIWRATH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ABRA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KADABRA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ALAKAZAM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MACHOP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MACHOKE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MACHAMP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_BELLSPROUT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_WEEPINBELL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_VICTREEBEL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TENTACOOL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TENTACRUEL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_GEODUDE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GRAVELER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GOLEM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_PONYTA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_RAPIDASH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SLOWPOKE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SLOWBRO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MAGNEMITE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MAGNETON] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_FARFETCHD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DODUO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DODRIO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SEEL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DEWGONG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GRIMER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MUK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SHELLDER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CLOYSTER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GASTLY] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_HAUNTER] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GENGAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_ONIX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DROWZEE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HYPNO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KRABBY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_KINGLER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_VOLTORB] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ELECTRODE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_EXEGGCUTE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_EXEGGUTOR] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CUBONE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MAROWAK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_HITMONLEE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_HITMONCHAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_LICKITUNG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_KOFFING] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WEEZING] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_RHYHORN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_RHYDON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CHANSEY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TANGELA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_KANGASKHAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_HORSEA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SEADRA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GOLDEEN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SEAKING] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_STARYU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_STARMIE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MR_MIME] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SCYTHER] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_JYNX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ELECTABUZZ] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MAGMAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_PINSIR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TAUROS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MAGIKARP] = TUTOR_LEARNSET(0), - - [SPECIES_GYARADOS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LAPRAS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DITTO] = TUTOR_LEARNSET(0), - - [SPECIES_EEVEE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_VAPOREON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_JOLTEON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_FLAREON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PORYGON] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_OMANYTE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_OMASTAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_KABUTO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_KABUTOPS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_AERODACTYL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SNORLAX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_ARTICUNO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_ZAPDOS] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MOLTRES] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_DRATINI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRAGONAIR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRAGONITE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MEWTWO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MEW] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CHIKORITA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_BAYLEEF] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MEGANIUM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CYNDAQUIL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_QUILAVA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_TYPHLOSION] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TOTODILE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CROCONAW] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_FERALIGATR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SENTRET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_FURRET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_HOOTHOOT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_NOCTOWL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_LEDYBA] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_LEDIAN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SPINARAK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ARIADOS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CROBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CHINCHOU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LANTURN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PICHU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CLEFFA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_IGGLYBUFF] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TOGEPI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TOGETIC] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_NATU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_XATU] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MAREEP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_FLAAFFY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_AMPHAROS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BELLOSSOM] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MARILL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_AZUMARILL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SUDOWOODO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_POLITOED] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_HOPPIP] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SKIPLOOM] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_JUMPLUFF] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_AIPOM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SUNKERN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SUNFLORA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_YANMA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_WOOPER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_QUAGSIRE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ESPEON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_UMBREON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MURKROW] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SLOWKING] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MISDREAVUS] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_UNOWN] = TUTOR_LEARNSET(0), - - [SPECIES_WOBBUFFET] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER)), - - [SPECIES_GIRAFARIG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PINECO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_FORRETRESS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DUNSPARCE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GLIGAR] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_STEELIX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SNUBBULL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GRANBULL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_QWILFISH] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SCIZOR] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SHUCKLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_HERACROSS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SNEASEL] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TEDDIURSA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_URSARING] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SLUGMA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MAGCARGO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SWINUB] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PILOSWINE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CORSOLA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_REMORAID] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_OCTILLERY] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DELIBIRD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MANTINE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SKARMORY] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_HOUNDOUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_HOUNDOOM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_KINGDRA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PHANPY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DONPHAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PORYGON2] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_STANTLER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SMEARGLE] = TUTOR_LEARNSET(TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK)), - - [SPECIES_TYROGUE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_HITMONTOP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SMOOCHUM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ELEKID] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MAGBY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MILTANK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BLISSEY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SOFT_BOILED) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_RAIKOU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ENTEI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SUICUNE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_LARVITAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PUPITAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TYRANITAR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LUGIA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HO_OH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CELEBI] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TREECKO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GROVYLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SCEPTILE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TORCHIC] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_COMBUSKEN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_BLAZIKEN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MUDKIP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MARSHTOMP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SWAMPERT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_POOCHYENA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MIGHTYENA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ZIGZAGOON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LINOONE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_WURMPLE] = TUTOR_LEARNSET(TUTOR(MOVE_SNORE)), - - [SPECIES_SILCOON] = TUTOR_LEARNSET(0), - - [SPECIES_BEAUTIFLY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CASCOON] = TUTOR_LEARNSET(0), - - [SPECIES_DUSTOX] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_LOTAD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_LOMBRE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_LUDICOLO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SEEDOT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_NUZLEAF] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SHIFTRY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TAILLOW] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SWELLOW] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_WINGULL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PELIPPER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_RALTS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KIRLIA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GARDEVOIR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SURSKIT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MASQUERAIN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SHROOMISH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_BRELOOM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SLAKOTH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_VIGOROTH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SLAKING] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_NINCADA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NINJASK] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SHEDINJA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_WHISMUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_LOUDRED] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_EXPLOUD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MAKUHITA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_HARIYAMA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_AZURILL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_NOSEPASS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SKITTY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DELCATTY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SABLEYE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MAWILE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_ARON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LAIRON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_AGGRON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MEDITITE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MEDICHAM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_ELECTRIKE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MANECTRIC] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PLUSLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MINUN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_VOLBEAT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ILLUMISE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROSELIA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_GULPIN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SWALOT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CARVANHA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SHARPEDO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_WAILMER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WAILORD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NUMEL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CAMERUPT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TORKOAL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SPOINK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GRUMPIG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SPINDA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TRAPINCH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_VIBRAVA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_FLYGON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CACNEA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CACTURNE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SWABLU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_ALTARIA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_ZANGOOSE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SEVIPER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_LUNATONE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SOLROCK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_BARBOACH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WHISCASH] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CORPHISH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CRAWDAUNT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_BALTOY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CLAYDOL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LILEEP] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CRADILY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ANORITH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ARMALDO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_FEEBAS] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MILOTIC] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CASTFORM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KECLEON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SHUPPET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BANETTE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DUSKULL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DUSCLOPS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TROPIUS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CHIMECHO] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ABSOL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_WYNAUT] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER)), - - [SPECIES_SNORUNT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GLALIE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SPHEAL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SEALEO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WALREIN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CLAMPERL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_HUNTAIL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GOREBYSS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_RELICANTH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LUVDISC] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_BAGON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SHELGON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SALAMENCE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_BELDUM] = TUTOR_LEARNSET(0), - - [SPECIES_METANG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_METAGROSS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_REGIROCK] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_REGICE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_REGISTEEL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LATIAS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LATIOS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KYOGRE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GROUDON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_RAYQUAZA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_JIRACHI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DEOXYS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - -#if P_NEW_POKEMON == TRUE - [SPECIES_TURTWIG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_GROTLE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TORTERRA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CHIMCHAR] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_MONFERNO] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_INFERNAPE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_PIPLUP] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PRINPLUP] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_EMPOLEON] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_STARLY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_STARAVIA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_STARAPTOR] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_BIDOOF] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BIBAREL] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KRICKETOT] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SNORE)), - - [SPECIES_KRICKETUNE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SHINX] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LUXIO] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LUXRAY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BUDEW] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ROSERADE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CRANIDOS] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_RAMPARDOS] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SHIELDON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BASTIODON] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BURMY] = TUTOR_LEARNSET(TUTOR(MOVE_SNORE)), - - [SPECIES_WORMADAM] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MOTHIM] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_COMBEE] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_VESPIQUEN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PACHIRISU] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BUIZEL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_FLOATZEL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CHERUBI] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CHERRIM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SHELLOS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GASTRODON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_AMBIPOM] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRIFLOON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRIFBLIM] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BUNEARY] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LOPUNNY] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MISMAGIUS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HONCHKROW] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GLAMEOW] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_PURUGLY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CHINGLING] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_STUNKY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SKUNTANK] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_BRONZOR] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BRONZONG] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BONSLY] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MIME_JR] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HAPPINY] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CHATOT] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SPIRITOMB] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GIBLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GABITE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GARCHOMP] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MUNCHLAX] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_RIOLU] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_LUCARIO] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_HIPPOPOTAS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_HIPPOWDON] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SKORUPI] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DRAPION] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CROAGUNK] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TOXICROAK] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CARNIVINE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_FINNEON] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_LUMINEON] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MANTYKE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SNOVER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ABOMASNOW] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_WEAVILE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MAGNEZONE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LICKILICKY] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_RHYPERIOR] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TANGROWTH] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ELECTIVIRE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MAGMORTAR] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TOGEKISS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_YANMEGA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_LEAFEON] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_GLACEON] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GLISCOR] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MAMOSWINE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PORYGON_Z] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GALLADE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PROBOPASS] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DUSKNOIR] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_FROSLASS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROTOM] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_UXIE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MESPRIT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_AZELF] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DIALGA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PALKIA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HEATRAN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_REGIGIGAS] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GIRATINA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CRESSELIA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PHIONE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MANAPHY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_DARKRAI] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SHAYMIN] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ARCEUS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_VICTINI] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SNIVY] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SERVINE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SERPERIOR] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TEPIG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PIGNITE] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_EMBOAR] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_OSHAWOTT] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DEWOTT] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SAMUROTT] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_PATRAT] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_WATCHOG] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LILLIPUP] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HERDIER] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_STOUTLAND] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PURRLOIN] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LIEPARD] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PANSAGE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SIMISAGE] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PANSEAR] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SIMISEAR] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PANPOUR] = TUTOR_LEARNSET(TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SIMIPOUR] = TUTOR_LEARNSET(TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MUNNA] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MUSHARNA] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PIDOVE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TRANQUILL] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_UNFEZANT] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BLITZLE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ZEBSTRIKA] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROGGENROLA] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BOLDORE] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GIGALITH] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WOOBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SWOOBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRILBUR] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_EXCADRILL] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_AUDINO] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TIMBURR] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GURDURR] = TUTOR_LEARNSET(TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CONKELDURR] = TUTOR_LEARNSET(TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TYMPOLE] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PALPITOAD] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SEISMITOAD] = TUTOR_LEARNSET(TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_THROH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SAWK] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SEWADDLE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SWADLOON] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LEAVANNY] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_VENIPEDE] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WHIRLIPEDE] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SCOLIPEDE] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_COTTONEE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WHIMSICOTT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PETILIL] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LILLIGANT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_BASCULIN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SANDILE] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_KROKOROK] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_KROOKODILE] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DARUMAKA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DARMANITAN] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MARACTUS] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DWEBBLE] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CRUSTLE] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SCRAGGY] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SCRAFTY] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_SIGILYPH] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_YAMASK] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_COFAGRIGUS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TIRTOUGA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CARRACOSTA] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ARCHEN] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ARCHEOPS] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TRUBBISH] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GARBODOR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ZORUA] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ZOROARK] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MINCCINO] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CINCCINO] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GOTHITA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GOTHORITA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GOTHITELLE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SOLOSIS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DUOSION] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_REUNICLUS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DUCKLETT] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SWANNA] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_VANILLITE] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_VANILLISH] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_VANILLUXE] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DEERLING] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SAWSBUCK] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_EMOLGA] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KARRABLAST] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ESCAVALIER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_FOONGUS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_AMOONGUSS] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_FRILLISH] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_JELLICENT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ALOMOMOLA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_JOLTIK] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GALVANTULA] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_FERROSEED] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_FERROTHORN] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KLINK] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KLANG] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KLINKLANG] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TYNAMO] = TUTOR_LEARNSET(TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_EELEKTRIK] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_EELEKTROSS] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ELGYEM] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BEHEEYEM] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LITWICK] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LAMPENT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CHANDELURE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_AXEW] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_FRAXURE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_HAXORUS] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CUBCHOO] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BEARTIC] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CRYOGONAL] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SHELMET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ACCELGOR] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_STUNFISK] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MIENFOO] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MIENSHAO] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DRUDDIGON] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GOLETT] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GOLURK] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_PAWNIARD] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BISHARP] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BOUFFALANT] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_RUFFLET] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BRAVIARY] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_VULLABY] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MANDIBUZZ] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_HEATMOR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_DURANT] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DEINO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ZWEILOUS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HYDREIGON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LARVESTA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_VOLCARONA] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_COBALION] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TERRAKION] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_VIRIZION] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TORNADUS] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_THUNDURUS] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_RESHIRAM] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ZEKROM] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LANDORUS] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_KYUREM] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_KELDEO] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MELOETTA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GENESECT] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CHESPIN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_QUILLADIN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CHESNAUGHT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_FENNEKIN] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BRAIXEN] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_DELPHOX] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_FROAKIE] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_FROGADIER] = TUTOR_LEARNSET(TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GRENINJA] = TUTOR_LEARNSET(TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BUNNELBY] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DIGGERSBY] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_FLETCHLING] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_FLETCHINDER] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TALONFLAME] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SCATTERBUG] = TUTOR_LEARNSET(0), - - [SPECIES_SPEWPA] = TUTOR_LEARNSET(0), - - [SPECIES_VIVILLON] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LITLEO] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PYROAR] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_FLABEBE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_FLOETTE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_FLORGES] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SKIDDO] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GOGOAT] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PANCHAM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_PANGORO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_FURFROU] = TUTOR_LEARNSET(TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ESPURR] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MEOWSTIC] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HONEDGE] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DOUBLADE] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_AEGISLASH] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SPRITZEE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_AROMATISSE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SWIRLIX] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SLURPUFF] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_INKAY] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MALAMAR] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BINACLE] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_BARBARACLE] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SKRELP] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DRAGALGE] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_CLAUNCHER] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CLAWITZER] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_HELIOPTILE] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HELIOLISK] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TYRUNT] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TYRANTRUM] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_AMAURA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_AURORUS] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SYLVEON] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_HAWLUCHA] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_DEDENNE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CARBINK] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GOOMY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SLIGGOO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GOODRA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_KLEFKI] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PHANTUMP] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TREVENANT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PUMPKABOO] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GOURGEIST] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BERGMITE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_AVALUGG] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NOIBAT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_NOIVERN] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_XERNEAS] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_YVELTAL] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ZYGARDE] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DIANCIE] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_HOOPA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_VOLCANION] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ROWLET] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DARTRIX] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DECIDUEYE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_LITTEN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TORRACAT] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_INCINEROAR] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_POPPLIO] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_BRIONNE] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PRIMARINA] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PIKIPEK] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TRUMBEAK] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TOUCANNON] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_YUNGOOS] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GUMSHOOS] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_GRUBBIN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CHARJABUG] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_VIKAVOLT] = TUTOR_LEARNSET(TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CRABRAWLER] = TUTOR_LEARNSET(TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_CRABOMINABLE] = TUTOR_LEARNSET(TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_ORICORIO] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CUTIEFLY] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_RIBOMBEE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ROCKRUFF] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_LYCANROC] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_WISHIWASHI] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MAREANIE] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TOXAPEX] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MUDBRAY] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MUDSDALE] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_DEWPIDER] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ARAQUANID] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_FOMANTIS] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_LURANTIS] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MORELULL] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SHIINOTIC] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SALANDIT] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_SALAZZLE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_STUFFUL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_BEWEAR] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_BOUNSWEET] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_STEENEE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TSAREENA] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_COMFEY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ORANGURU] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PASSIMIAN] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WIMPOD] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_GOLISOPOD] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SANDYGAST] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PALOSSAND] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_PYUKUMUKU] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TYPE_NULL] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SILVALLY] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MINIOR] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_KOMALA] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TURTONATOR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TOGEDEMARU] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MIMIKYU] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BRUXISH] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_DRAMPA] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DHELMISE] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_JANGMO_O] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_HAKAMO_O] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_KOMMO_O] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_TAPU_KOKO] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TAPU_LELE] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_TAPU_BULU] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_TAPU_FINI] = TUTOR_LEARNSET(TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_COSMOG] = TUTOR_LEARNSET(0), - - [SPECIES_COSMOEM] = TUTOR_LEARNSET(0), - - [SPECIES_SOLGALEO] = TUTOR_LEARNSET(TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LUNALA] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_NIHILEGO] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BUZZWOLE] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_PHEROMOSA] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_XURKITREE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CELESTEELA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_KARTANA] = TUTOR_LEARNSET(TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_GUZZLORD] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_NECROZMA] = TUTOR_LEARNSET(TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MAGEARNA] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MARSHADOW] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_POIPOLE] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_NAGANADEL] = TUTOR_LEARNSET(TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_STAKATAKA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_BLACEPHALON] = TUTOR_LEARNSET(TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ZERAORA] = TUTOR_LEARNSET(TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GROOKEY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_THWACKEY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_RILLABOOM] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SCORBUNNY] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_RABOOT] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CINDERACE] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SOBBLE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_DRIZZILE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_INTELEON] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SKWOVET] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_GREEDENT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ROOKIDEE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CORVISQUIRE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CORVIKNIGHT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_BLIPBUG] = TUTOR_LEARNSET(0), - - [SPECIES_DOTTLER] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ORBEETLE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_NICKIT] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_THIEVUL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_GOSSIFLEUR] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ELDEGOSS] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_WOOLOO] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DUBWOOL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CHEWTLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_DREDNAW] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_YAMPER] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BOLTUND] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROLYCOLY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_CARKOL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_COALOSSAL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_APPLIN] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ROLLOUT)), - - [SPECIES_FLAPPLE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_APPLETUN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_SILICOBRA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_SANDACONDA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_CRAMORANT] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ARROKUDA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_BARRASKEWDA] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_TOXEL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_TOXTRICITY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SIZZLIPEDE] = TUTOR_LEARNSET(TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_CENTISKORCH] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_CLOBBOPUS] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SEISMIC_TOSS) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_GRAPPLOCT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_SINISTEA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_POLTEAGEIST] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_HATENNA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HATTREM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_HATTERENE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_IMPIDIMP] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_MORGREM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_GRIMMSNARL] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_OBSTAGOON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_PERRSERKER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CURSOLA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_SIRFETCHD] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_MR_RIME] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_RUNERIGUS] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_MILCERY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_FALINKS] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_PINCURCHIN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SNOM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_FROSMOTH] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_STONJOURNER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_EISCUE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_INDEEDEE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MORPEKO] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CUFANT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DEFENSE_CURL) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_COPPERAJAH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_DRACOZOLT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ARCTOZOLT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRACOVISH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ARCTOVISH] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_DURALUDON] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DREEPY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRAKLOAK] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DRAGAPULT] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ZACIAN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_ZAMAZENTA] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_ETERNATUS] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_KUBFU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_URSHIFU] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_ZARUDE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_REGIELEKI] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_REGIDRAGO] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_GLASTRIER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SPECTRIER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CALYREX] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MEOWTH_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_PONYTA_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_RAPIDASH_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_SLOWPOKE_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SLOWBRO_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_FARFETCHD_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FURY_CUTTER) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_WEEZING_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_EXPLOSION) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_MR_MIME_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_MIMIC) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ARTICUNO_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_ZAPDOS_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_MOLTRES_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_SLOWKING_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_CORSOLA_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ZIGZAGOON_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_LINOONE_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_DARUMAKA_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_DARMANITAN_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_YAMASK_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_STUNFISK_GALARIAN] = TUTOR_LEARNSET(TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_BURMY_SANDY_CLOAK] = TUTOR_LEARNSET(TUTOR(MOVE_SNORE)), - - [SPECIES_BURMY_TRASH_CLOAK] = TUTOR_LEARNSET(TUTOR(MOVE_SNORE)), - - [SPECIES_WORMADAM_SANDY_CLOAK] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_ROLLOUT) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_WORMADAM_TRASH_CLOAK] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_ROTOM_HEAT] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROTOM_WASH] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROTOM_FROST] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROTOM_FAN] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_ROTOM_MOW] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MUD_SLAP) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_KYUREM_WHITE] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_KYUREM_BLACK] = TUTOR_LEARNSET(TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER)), - - [SPECIES_MEOWSTIC_FEMALE] = TUTOR_LEARNSET(TUTOR(MOVE_DREAM_EATER) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_TOXTRICITY_LOW_KEY] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH) - | TUTOR(MOVE_THUNDER_WAVE)), - - [SPECIES_SINISTEA_ANTIQUE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_POLTEAGEIST_ANTIQUE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_RUBY_CREAM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_MATCHA_CREAM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_MINT_CREAM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_LEMON_CREAM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_SALTED_CREAM] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_RUBY_SWIRL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_CARAMEL_SWIRL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_ALCREMIE_RAINBOW_SWIRL] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE)), - - [SPECIES_INDEEDEE_FEMALE] = TUTOR_LEARNSET(TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_PSYCH_UP) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_COUNTER) - | TUTOR(MOVE_DYNAMIC_PUNCH) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_FIRE_PUNCH) - | TUTOR(MOVE_ICE_PUNCH) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_THUNDER_PUNCH)), - - [SPECIES_ZARUDE_DADA] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_MEGA_KICK) - | TUTOR(MOVE_MEGA_PUNCH) - | TUTOR(MOVE_ROCK_SLIDE) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWAGGER) - | TUTOR(MOVE_SWIFT)), - - [SPECIES_CALYREX_ICE_RIDER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_ICY_WIND) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT) - | TUTOR(MOVE_SWORDS_DANCE)), - - [SPECIES_CALYREX_SHADOW_RIDER] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) - | TUTOR(MOVE_DOUBLE_EDGE) - | TUTOR(MOVE_ENDURE) - | TUTOR(MOVE_METRONOME) - | TUTOR(MOVE_SLEEP_TALK) - | TUTOR(MOVE_SNORE) - | TUTOR(MOVE_SUBSTITUTE) - | TUTOR(MOVE_SWIFT)), -#endif -}; diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index 98aa69403..e04afe339 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -4500,6 +4500,41 @@ const struct MonCoords gMonBackPicCoords[] = .size = MON_COORDS_SIZE(56, 48), .y_offset = 10, }, + [SPECIES_WYRDEER] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, + }, + [SPECIES_KLEAVOR] = + { + .size = MON_COORDS_SIZE(64, 56), + .y_offset = 4, + }, + [SPECIES_URSALUNA] = + { + .size = MON_COORDS_SIZE(64, 40), + .y_offset = 14, + }, + [SPECIES_BASCULEGION] = + { + .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] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, + }, // Megas [SPECIES_VENUSAUR_MEGA] = { @@ -4938,6 +4973,87 @@ const struct MonCoords gMonBackPicCoords[] = { .size = MON_COORDS_SIZE(64, 24), .y_offset = 23, + }, + // 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 = 3, + }, + [SPECIES_QWILFISH_HISUIAN] = + { + .size = MON_COORDS_SIZE(56, 56), + .y_offset = 6, + }, + [SPECIES_SNEASEL_HISUIAN] = + { + .size = MON_COORDS_SIZE(56, 64), + .y_offset = 3, + }, + [SPECIES_SAMUROTT_HISUIAN] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, + }, + [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 = 0, + }, + [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 = 17, + }, + [SPECIES_DECIDUEYE_HISUIAN] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, }, // Misc Forms // Cosplay Pikachu @@ -5254,7 +5370,17 @@ const struct MonCoords gMonBackPicCoords[] = .size = MON_COORDS_SIZE(56, 48), .y_offset = 10, }, - // Giratina + // 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), @@ -5358,6 +5484,11 @@ const struct MonCoords gMonBackPicCoords[] = .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] = { @@ -5417,6 +5548,11 @@ const struct MonCoords gMonBackPicCoords[] = .size = MON_COORDS_SIZE(64, 56), .y_offset = 7, }, + [SPECIES_ENAMORUS_THERIAN] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, + }, // Kyurem [SPECIES_KYUREM_WHITE] = { diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index f9a97cdd5..30a711fc4 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -900,6 +900,13 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(GLASTRIER, gMonBackPic_Glastrier), SPECIES_SPRITE(SPECTRIER, gMonBackPic_Spectrier), SPECIES_SPRITE(CALYREX, gMonBackPic_Calyrex), + SPECIES_SPRITE(WYRDEER, gMonBackPic_CircledQuestionMark), //gMonBackPic_Wyrdeer), + SPECIES_SPRITE(KLEAVOR, gMonBackPic_Kleavor), + SPECIES_SPRITE(URSALUNA, gMonBackPic_Ursaluna), + SPECIES_SPRITE(BASCULEGION, gMonBackPic_CircledQuestionMark), //gMonBackPic_Basculegion), + SPECIES_SPRITE(SNEASLER, gMonBackPic_CircledQuestionMark), //gMonBackPic_Sneasler), + SPECIES_SPRITE(OVERQWIL, gMonBackPic_Overqwil), + SPECIES_SPRITE(ENAMORUS, gMonBackPic_CircledQuestionMark), //gMonBackPic_Enamorus), SPECIES_SPRITE(VENUSAUR_MEGA, gMonBackPic_VenusaurMega), SPECIES_SPRITE(CHARIZARD_MEGA_X, gMonBackPic_CharizardMegaX), @@ -992,6 +999,23 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(YAMASK_GALARIAN, gMonBackPic_YamaskGalarian), SPECIES_SPRITE(STUNFISK_GALARIAN, gMonBackPic_StunfiskGalarian), + 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), + SPECIES_SPRITE(SAMUROTT_HISUIAN, gMonBackPic_CircledQuestionMark), //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), + SPECIES_SPRITE(SLIGGOO_HISUIAN, gMonBackPic_SliggooHisuian), + SPECIES_SPRITE(GOODRA_HISUIAN, gMonBackPic_GoodraHisuian), + SPECIES_SPRITE(AVALUGG_HISUIAN, gMonBackPic_AvaluggHisuian), + SPECIES_SPRITE(DECIDUEYE_HISUIAN, gMonBackPic_CircledQuestionMark), //gMonBackPic_DecidueyeHisuian), + SPECIES_SPRITE(PIKACHU_COSPLAY, gMonBackPic_PikachuCosplay), SPECIES_SPRITE(PIKACHU_ROCK_STAR, gMonBackPic_PikachuRockStar), SPECIES_SPRITE(PIKACHU_BELLE, gMonBackPic_PikachuBelle), @@ -1064,6 +1088,8 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = 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), @@ -1087,6 +1113,7 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(ARCEUS_FAIRY, gMonBackPic_Arceus), SPECIES_SPRITE(BASCULIN_BLUE_STRIPED, gMonBackPic_BasculinBlueStriped), + SPECIES_SPRITE(BASCULIN_WHITE_STRIPED, gMonBackPic_BasculinWhiteStriped), SPECIES_SPRITE(DARMANITAN_ZEN_MODE, gMonBackPic_DarmanitanZenMode), SPECIES_SPRITE(DARMANITAN_ZEN_MODE_GALARIAN, gMonBackPic_DarmanitanZenModeGalarian), @@ -1102,6 +1129,7 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(TORNADUS_THERIAN, gMonBackPic_TornadusTherian), SPECIES_SPRITE(THUNDURUS_THERIAN, gMonBackPic_ThundurusTherian), SPECIES_SPRITE(LANDORUS_THERIAN, gMonBackPic_LandorusTherian), + SPECIES_SPRITE(ENAMORUS_THERIAN, gMonBackPic_CircledQuestionMark), //gMonBackPic_EnamorusTherian), SPECIES_SPRITE(KYUREM_WHITE, gMonBackPic_KyuremWhite), SPECIES_SPRITE(KYUREM_BLACK, gMonBackPic_KyuremBlack), @@ -1294,5 +1322,6 @@ const struct CompressedSpriteSheet gMonBackPicTableFemale[] = SPECIES_SPRITE(FRILLISH, gMonBackPic_FrillishF), SPECIES_SPRITE(JELLICENT, gMonBackPic_JellicentF), SPECIES_SPRITE(PYROAR, gMonBackPic_PyroarF), + SPECIES_SPRITE(BASCULEGION, gMonBackPic_CircledQuestionMark), //gMonBackPic_BasculegionF), #endif }; diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h index 26d49a528..8499650e0 100644 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ b/src/data/pokemon_graphics/enemy_mon_elevation.h @@ -178,6 +178,10 @@ const u8 gEnemyMonElevation[NUM_SPECIES] = [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, #endif // Other Forms [SPECIES_UNOWN_B] = 8, diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index bd3c82b20..cf59f314c 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -8528,6 +8528,48 @@ static const union AnimCmd sAnim_CALYREX_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_ENAMORUS_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + static const union AnimCmd sAnim_VENUSAUR_MEGA_1[] = { ANIMCMD_FRAME(0, 1), @@ -9050,12 +9092,120 @@ static const union AnimCmd sAnim_STUNFISK_GALARIAN_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_GROWLITHE_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ARCANINE_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_VOLTORB_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ELECTRODE_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_TYPHLOSION_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_QWILFISH_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SNEASEL_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SAMUROTT_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_LILLIGANT_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ZORUA_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_ZOROARK_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_BRAVIARY_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SLIGGOO_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_GOODRA_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AVALUGG_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_DECIDUEYE_HISUIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + static const union AnimCmd sAnim_SHAYMIN_SKY_1[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; +static const union AnimCmd sAnim_DIALGA_ORIGIN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_PALKIA_ORIGIN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + static const union AnimCmd sAnim_GIRATINA_ORIGIN_1[] = { ANIMCMD_FRAME(0, 1), @@ -9092,6 +9242,12 @@ static const union AnimCmd sAnim_LANDORUS_THERIAN_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_ENAMORUS_THERIAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + static const union AnimCmd sAnim_KELDEO_RESOLUTE_1[] = { ANIMCMD_FRAME(0, 1), @@ -14045,6 +14201,41 @@ static const union AnimCmd *const sAnims_CALYREX[] ={ sAnim_CALYREX_1, }; +static const union AnimCmd *const sAnims_WYRDEER[] ={ + sAnim_GeneralFrame0, + sAnim_WYRDEER_1, +}; + +static const union AnimCmd *const sAnims_KLEAVOR[] ={ + sAnim_GeneralFrame0, + sAnim_KLEAVOR_1, +}; + +static const union AnimCmd *const sAnims_URSALUNA[] ={ + sAnim_GeneralFrame0, + sAnim_URSALUNA_1, +}; + +static const union AnimCmd *const sAnims_BASCULEGION[] ={ + sAnim_GeneralFrame0, + sAnim_BASCULEGION_1, +}; + +static const union AnimCmd *const sAnims_SNEASLER[] ={ + sAnim_GeneralFrame0, + sAnim_SNEASLER_1, +}; + +static const union AnimCmd *const sAnims_OVERQWIL[] ={ + sAnim_GeneralFrame0, + sAnim_OVERQWIL_1, +}; + +static const union AnimCmd *const sAnims_ENAMORUS[] ={ + sAnim_GeneralFrame0, + sAnim_ENAMORUS_1, +}; + static const union AnimCmd *const sAnims_VENUSAUR_MEGA[] ={ sAnim_GeneralFrame0, sAnim_VENUSAUR_MEGA_1, @@ -14480,11 +14671,101 @@ static const union AnimCmd *const sAnims_STUNFISK_GALARIAN[] ={ sAnim_STUNFISK_GALARIAN_1, }; +static const union AnimCmd *const sAnims_GROWLITHE_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_GROWLITHE_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_ARCANINE_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_ARCANINE_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_VOLTORB_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_VOLTORB_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_ELECTRODE_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_ELECTRODE_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_TYPHLOSION_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_TYPHLOSION_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_QWILFISH_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_QWILFISH_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_SNEASEL_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_SNEASEL_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_SAMUROTT_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_SAMUROTT_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_LILLIGANT_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_LILLIGANT_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_ZORUA_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_ZORUA_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_ZOROARK_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_ZOROARK_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_BRAVIARY_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_BRAVIARY_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_SLIGGOO_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_SLIGGOO_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_GOODRA_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_GOODRA_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_AVALUGG_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_AVALUGG_HISUIAN_1, +}; + +static const union AnimCmd *const sAnims_DECIDUEYE_HISUIAN[] ={ + sAnim_GeneralFrame0, + sAnim_DECIDUEYE_HISUIAN_1, +}; + static const union AnimCmd *const sAnims_SHAYMIN_SKY[] ={ sAnim_GeneralFrame0, sAnim_SHAYMIN_SKY_1, }; +static const union AnimCmd *const sAnims_DIALGA_ORIGIN[] ={ + sAnim_GeneralFrame0, + sAnim_DIALGA_ORIGIN_1, +}; + +static const union AnimCmd *const sAnims_PALKIA_ORIGIN[] ={ + sAnim_GeneralFrame0, + sAnim_PALKIA_ORIGIN_1, +}; + static const union AnimCmd *const sAnims_GIRATINA_ORIGIN[] ={ sAnim_GeneralFrame0, sAnim_GIRATINA_ORIGIN_1, @@ -14515,6 +14796,11 @@ static const union AnimCmd *const sAnims_LANDORUS_THERIAN[] ={ sAnim_LANDORUS_THERIAN_1, }; +static const union AnimCmd *const sAnims_ENAMORUS_THERIAN[] ={ + sAnim_GeneralFrame0, + sAnim_ENAMORUS_THERIAN_1, +}; + static const union AnimCmd *const sAnims_KELDEO_RESOLUTE[] ={ sAnim_GeneralFrame0, sAnim_KELDEO_RESOLUTE_1, @@ -15580,6 +15866,13 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = ANIM_CMD(GLASTRIER), ANIM_CMD(SPECTRIER), ANIM_CMD(CALYREX), + ANIM_CMD(WYRDEER), + ANIM_CMD(KLEAVOR), + ANIM_CMD(URSALUNA), + ANIM_CMD(BASCULEGION), + ANIM_CMD(SNEASLER), + ANIM_CMD(OVERQWIL), + ANIM_CMD(ENAMORUS), ANIM_CMD(VENUSAUR_MEGA), ANIM_CMD(CHARIZARD_MEGA_X), ANIM_CMD(CHARIZARD_MEGA_Y), @@ -15667,6 +15960,22 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = ANIM_CMD(DARMANITAN_GALARIAN), ANIM_CMD(YAMASK_GALARIAN), ANIM_CMD(STUNFISK_GALARIAN), + ANIM_CMD(GROWLITHE_HISUIAN), + ANIM_CMD(ARCANINE_HISUIAN), + ANIM_CMD(VOLTORB_HISUIAN), + ANIM_CMD(ELECTRODE_HISUIAN), + ANIM_CMD(TYPHLOSION_HISUIAN), + ANIM_CMD(QWILFISH_HISUIAN), + ANIM_CMD(SNEASEL_HISUIAN), + ANIM_CMD(SAMUROTT_HISUIAN), + ANIM_CMD(LILLIGANT_HISUIAN), + ANIM_CMD(ZORUA_HISUIAN), + ANIM_CMD(ZOROARK_HISUIAN), + ANIM_CMD(BRAVIARY_HISUIAN), + ANIM_CMD(SLIGGOO_HISUIAN), + ANIM_CMD(GOODRA_HISUIAN), + ANIM_CMD(AVALUGG_HISUIAN), + ANIM_CMD(DECIDUEYE_HISUIAN), ANIM_CMD(PIKACHU_COSPLAY), ANIM_CMD(PIKACHU_ROCK_STAR), ANIM_CMD(PIKACHU_BELLE), @@ -15729,6 +16038,8 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = ANIM_CMD(ROTOM_FROST), ANIM_CMD(ROTOM_FAN), ANIM_CMD(ROTOM_MOW), + ANIM_CMD(DIALGA_ORIGIN), + ANIM_CMD(PALKIA_ORIGIN), ANIM_CMD(GIRATINA_ORIGIN), ANIM_CMD(SHAYMIN_SKY), ANIM_CMD_FULL(ARCEUS_FIGHTING, sAnims_ARCEUS), @@ -15749,6 +16060,7 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = ANIM_CMD_FULL(ARCEUS_DARK, sAnims_ARCEUS), ANIM_CMD_FULL(ARCEUS_FAIRY, sAnims_ARCEUS), ANIM_CMD_FULL(BASCULIN_BLUE_STRIPED, sAnims_BASCULIN), + ANIM_CMD_FULL(BASCULIN_WHITE_STRIPED, sAnims_BASCULIN), ANIM_CMD(DARMANITAN_ZEN_MODE), ANIM_CMD(DARMANITAN_ZEN_MODE_GALARIAN), ANIM_CMD_FULL(DEERLING_SUMMER, sAnims_DEERLING), @@ -15760,6 +16072,7 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = ANIM_CMD(TORNADUS_THERIAN), ANIM_CMD(THUNDURUS_THERIAN), ANIM_CMD(LANDORUS_THERIAN), + ANIM_CMD(ENAMORUS_THERIAN), ANIM_CMD(KYUREM_WHITE), ANIM_CMD(KYUREM_BLACK), ANIM_CMD(MELOETTA_PIROUETTE), diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 2f658eea9..4c41a50e1 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -4500,6 +4500,41 @@ const struct MonCoords gMonFrontPicCoords[] = .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] = + { + .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] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, + }, // Megas [SPECIES_VENUSAUR_MEGA] = { @@ -4938,6 +4973,87 @@ const struct MonCoords gMonFrontPicCoords[] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14, + }, + // 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, + }, + [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, + }, + [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, + }, + [SPECIES_DECIDUEYE_HISUIAN] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, }, // Misc Forms // Cosplay Pikachu @@ -5254,7 +5370,17 @@ const struct MonCoords gMonFrontPicCoords[] = .size = MON_COORDS_SIZE(56, 64), .y_offset = 12, }, - // Giratina + // 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), @@ -5358,6 +5484,11 @@ const struct MonCoords gMonFrontPicCoords[] = .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] = { @@ -5417,6 +5548,11 @@ const struct MonCoords gMonFrontPicCoords[] = .size = MON_COORDS_SIZE(64, 64), .y_offset = 0, }, + [SPECIES_ENAMORUS_THERIAN] = + { + .size = MON_COORDS_SIZE(64, 64), + .y_offset = 0, + }, // Kyurem [SPECIES_KYUREM_WHITE] = { diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 969ef7579..d94162a4b 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -900,6 +900,13 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(GLASTRIER, gMonFrontPic_Glastrier), SPECIES_SPRITE(SPECTRIER, gMonFrontPic_Spectrier), SPECIES_SPRITE(CALYREX, gMonFrontPic_Calyrex), + SPECIES_SPRITE(WYRDEER, gMonFrontPic_CircledQuestionMark), //gMonFrontPic_Wyrdeer), + SPECIES_SPRITE(KLEAVOR, gMonFrontPic_Kleavor), + SPECIES_SPRITE(URSALUNA, gMonFrontPic_Ursaluna), + SPECIES_SPRITE(BASCULEGION, gMonFrontPic_CircledQuestionMark), //gMonFrontPic_Basculegion), + SPECIES_SPRITE(SNEASLER, gMonFrontPic_CircledQuestionMark), //gMonFrontPic_Sneasler), + SPECIES_SPRITE(OVERQWIL, gMonFrontPic_Overqwil), + SPECIES_SPRITE(ENAMORUS, gMonFrontPic_CircledQuestionMark), //gMonFrontPic_Enamorus), SPECIES_SPRITE(VENUSAUR_MEGA, gMonFrontPic_VenusaurMega), SPECIES_SPRITE(CHARIZARD_MEGA_X, gMonFrontPic_CharizardMegaX), @@ -992,6 +999,23 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(YAMASK_GALARIAN, gMonFrontPic_YamaskGalarian), SPECIES_SPRITE(STUNFISK_GALARIAN, gMonFrontPic_StunfiskGalarian), + 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), + SPECIES_SPRITE(SAMUROTT_HISUIAN, gMonFrontPic_CircledQuestionMark), //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), + SPECIES_SPRITE(SLIGGOO_HISUIAN, gMonFrontPic_SliggooHisuian), + SPECIES_SPRITE(GOODRA_HISUIAN, gMonFrontPic_GoodraHisuian), + SPECIES_SPRITE(AVALUGG_HISUIAN, gMonFrontPic_AvaluggHisuian), + SPECIES_SPRITE(DECIDUEYE_HISUIAN, gMonFrontPic_CircledQuestionMark), //gMonFrontPic_DecidueyeHisuian), + SPECIES_SPRITE(PIKACHU_COSPLAY, gMonFrontPic_PikachuCosplay), SPECIES_SPRITE(PIKACHU_ROCK_STAR, gMonFrontPic_PikachuRockStar), SPECIES_SPRITE(PIKACHU_BELLE, gMonFrontPic_PikachuBelle), @@ -1064,6 +1088,8 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = 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), @@ -1087,6 +1113,7 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(ARCEUS_FAIRY, gMonFrontPic_Arceus), SPECIES_SPRITE(BASCULIN_BLUE_STRIPED, gMonFrontPic_BasculinBlueStriped), + SPECIES_SPRITE(BASCULIN_WHITE_STRIPED, gMonFrontPic_BasculinWhiteStriped), SPECIES_SPRITE(DARMANITAN_ZEN_MODE, gMonFrontPic_DarmanitanZenMode), SPECIES_SPRITE(DARMANITAN_ZEN_MODE_GALARIAN, gMonFrontPic_DarmanitanZenModeGalarian), @@ -1102,6 +1129,7 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(TORNADUS_THERIAN, gMonFrontPic_TornadusTherian), SPECIES_SPRITE(THUNDURUS_THERIAN, gMonFrontPic_ThundurusTherian), SPECIES_SPRITE(LANDORUS_THERIAN, gMonFrontPic_LandorusTherian), + SPECIES_SPRITE(ENAMORUS_THERIAN, gMonFrontPic_CircledQuestionMark), //gMonFrontPic_EnamorusTherian), SPECIES_SPRITE(KYUREM_WHITE, gMonFrontPic_KyuremWhite), SPECIES_SPRITE(KYUREM_BLACK, gMonFrontPic_KyuremBlack), @@ -1294,5 +1322,6 @@ const struct CompressedSpriteSheet gMonFrontPicTableFemale[] = SPECIES_SPRITE(FRILLISH, gMonFrontPic_FrillishF), SPECIES_SPRITE(JELLICENT, gMonFrontPic_JellicentF), SPECIES_SPRITE(PYROAR, gMonFrontPic_PyroarF), + SPECIES_SPRITE(BASCULEGION, gMonFrontPic_CircledQuestionMark), //gMonFrontPic_BasculegionF), #endif }; diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index ba7801bca..65fbf835b 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -900,6 +900,13 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(GLASTRIER, gMonPalette_Glastrier), SPECIES_PAL(SPECTRIER, gMonPalette_Spectrier), SPECIES_PAL(CALYREX, gMonPalette_Calyrex), + SPECIES_PAL(WYRDEER, gMonPalette_CircledQuestionMark), // gMonPalette_Wyrdeer), + SPECIES_PAL(KLEAVOR, gMonPalette_Kleavor), + SPECIES_PAL(URSALUNA, gMonPalette_Ursaluna), + SPECIES_PAL(BASCULEGION, gMonPalette_CircledQuestionMark), // gMonPalette_Basculegion), + SPECIES_PAL(SNEASLER, gMonPalette_CircledQuestionMark), // gMonPalette_Sneasler), + SPECIES_PAL(OVERQWIL, gMonPalette_Overqwil), + SPECIES_PAL(ENAMORUS, gMonPalette_CircledQuestionMark), // gMonPalette_Enamorus), SPECIES_PAL(VENUSAUR_MEGA, gMonPalette_VenusaurMega), SPECIES_PAL(CHARIZARD_MEGA_X, gMonPalette_CharizardMegaX), @@ -992,6 +999,23 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(YAMASK_GALARIAN, gMonPalette_YamaskGalarian), SPECIES_PAL(STUNFISK_GALARIAN, gMonPalette_StunfiskGalarian), + 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), + SPECIES_PAL(SAMUROTT_HISUIAN, gMonPalette_CircledQuestionMark), //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), + SPECIES_PAL(SLIGGOO_HISUIAN, gMonPalette_SliggooHisuian), + SPECIES_PAL(GOODRA_HISUIAN, gMonPalette_GoodraHisuian), + SPECIES_PAL(AVALUGG_HISUIAN, gMonPalette_AvaluggHisuian), + SPECIES_PAL(DECIDUEYE_HISUIAN, gMonPalette_CircledQuestionMark), //gMonPalette_DecidueyeHisuian), + SPECIES_PAL(PIKACHU_COSPLAY, gMonPalette_PikachuCosplay), SPECIES_PAL(PIKACHU_ROCK_STAR, gMonPalette_PikachuRockStar), SPECIES_PAL(PIKACHU_BELLE, gMonPalette_PikachuBelle), @@ -1064,6 +1088,8 @@ const struct CompressedSpritePalette gMonPaletteTable[] = 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), @@ -1087,6 +1113,7 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(ARCEUS_FAIRY, gMonPalette_ArceusFairy), SPECIES_PAL(BASCULIN_BLUE_STRIPED, gMonPalette_BasculinBlueStriped), + SPECIES_PAL(BASCULIN_WHITE_STRIPED, gMonPalette_BasculinWhiteStriped), SPECIES_PAL(DARMANITAN_ZEN_MODE, gMonPalette_DarmanitanZenMode), SPECIES_PAL(DARMANITAN_ZEN_MODE_GALARIAN, gMonPalette_DarmanitanZenModeGalarian), @@ -1102,6 +1129,7 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(TORNADUS_THERIAN, gMonPalette_TornadusTherian), SPECIES_PAL(THUNDURUS_THERIAN, gMonPalette_ThundurusTherian), SPECIES_PAL(LANDORUS_THERIAN, gMonPalette_LandorusTherian), + SPECIES_PAL(ENAMORUS_THERIAN, gMonPalette_CircledQuestionMark), // gMonPalette_EnamorusTherian), SPECIES_PAL(KYUREM_WHITE, gMonPalette_KyuremWhite), SPECIES_PAL(KYUREM_BLACK, gMonPalette_KyuremBlack), @@ -1294,5 +1322,6 @@ const struct CompressedSpritePalette gMonPaletteTableFemale[] = SPECIES_PAL(FRILLISH, gMonPalette_FrillishF), SPECIES_PAL(JELLICENT, gMonPalette_JellicentF), SPECIES_PAL(PYROAR, gMonPalette_PyroarF), + SPECIES_PAL(BASCULEGION, gMonPalette_CircledQuestionMark), // gMonPalette_BasculegionF), #endif }; diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index bc1b8266f..c029e91e1 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -900,6 +900,13 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(GLASTRIER, gMonShinyPalette_Glastrier), SPECIES_SHINY_PAL(SPECTRIER, gMonShinyPalette_Spectrier), SPECIES_SHINY_PAL(CALYREX, gMonShinyPalette_Calyrex), + SPECIES_SHINY_PAL(WYRDEER, gMonShinyPalette_CircledQuestionMark), // gMonShinyPalette_Wyrdeer), + SPECIES_SHINY_PAL(KLEAVOR, gMonShinyPalette_Kleavor), + SPECIES_SHINY_PAL(URSALUNA, gMonShinyPalette_Ursaluna), + SPECIES_SHINY_PAL(BASCULEGION, gMonShinyPalette_CircledQuestionMark), // gMonShinyPalette_Basculegion), + SPECIES_SHINY_PAL(SNEASLER, gMonShinyPalette_CircledQuestionMark), // gMonShinyPalette_Sneasler), + SPECIES_SHINY_PAL(OVERQWIL, gMonShinyPalette_Overqwil), + SPECIES_SHINY_PAL(ENAMORUS, gMonShinyPalette_CircledQuestionMark), // gMonShinyPalette_Enamorus), SPECIES_SHINY_PAL(VENUSAUR_MEGA, gMonShinyPalette_VenusaurMega), SPECIES_SHINY_PAL(CHARIZARD_MEGA_X, gMonShinyPalette_CharizardMegaX), @@ -992,6 +999,23 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(YAMASK_GALARIAN, gMonShinyPalette_YamaskGalarian), SPECIES_SHINY_PAL(STUNFISK_GALARIAN, gMonShinyPalette_StunfiskGalarian), + 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), + SPECIES_SHINY_PAL(SAMUROTT_HISUIAN, gMonShinyPalette_CircledQuestionMark), //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), + SPECIES_SHINY_PAL(SLIGGOO_HISUIAN, gMonShinyPalette_SliggooHisuian), + SPECIES_SHINY_PAL(GOODRA_HISUIAN, gMonShinyPalette_GoodraHisuian), + SPECIES_SHINY_PAL(AVALUGG_HISUIAN, gMonShinyPalette_AvaluggHisuian), + SPECIES_SHINY_PAL(DECIDUEYE_HISUIAN, gMonShinyPalette_CircledQuestionMark), //gMonShinyPalette_DecidueyeHisuian), + SPECIES_SHINY_PAL(PIKACHU_COSPLAY, gMonShinyPalette_PikachuCosplay), SPECIES_SHINY_PAL(PIKACHU_ROCK_STAR, gMonShinyPalette_PikachuRockStar), SPECIES_SHINY_PAL(PIKACHU_BELLE, gMonShinyPalette_PikachuBelle), @@ -1064,6 +1088,8 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = 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), @@ -1087,6 +1113,7 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(ARCEUS_FAIRY, gMonShinyPalette_ArceusFairy), 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_ZEN_MODE_GALARIAN, gMonShinyPalette_DarmanitanZenModeGalarian), @@ -1102,6 +1129,7 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(TORNADUS_THERIAN, gMonShinyPalette_TornadusTherian), SPECIES_SHINY_PAL(THUNDURUS_THERIAN, gMonShinyPalette_ThundurusTherian), SPECIES_SHINY_PAL(LANDORUS_THERIAN, gMonShinyPalette_LandorusTherian), + SPECIES_SHINY_PAL(ENAMORUS_THERIAN, gMonShinyPalette_CircledQuestionMark), //gMonShinyPalette_EnamorusTherian), SPECIES_SHINY_PAL(KYUREM_WHITE, gMonShinyPalette_KyuremWhite), SPECIES_SHINY_PAL(KYUREM_BLACK, gMonShinyPalette_KyuremBlack), @@ -1294,5 +1322,6 @@ const struct CompressedSpritePalette gMonShinyPaletteTableFemale[] = SPECIES_SHINY_PAL(FRILLISH, gMonShinyPalette_FrillishF), SPECIES_SHINY_PAL(JELLICENT, gMonShinyPalette_JellicentF), SPECIES_SHINY_PAL(PYROAR, gMonShinyPalette_PyroarF), + SPECIES_SHINY_PAL(BASCULEGION, gMonShinyPalette_CircledQuestionMark), // gMonShinyPalette_BasculegionF), #endif }; diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index 5f6bcfb0e..1275fa4c7 100644 --- a/src/data/text/move_descriptions.h +++ b/src/data/text/move_descriptions.h @@ -1,3 +1,10 @@ + +#if B_BINDING_TURNS >= GEN_5 +#define BINDING_TURNS "4 or 5" +#else +#define BINDING_TURNS "2 to 5" +#endif + static const u8 sNullDescription[] = _( ""); @@ -79,11 +86,7 @@ static const u8 sFlyDescription[] = _( static const u8 sBindDescription[] = _( "Binds and squeezes the foe\n" -#if B_BINDING_TURNS >= GEN_5 - "for 4 or 5 turns."); -#else - "for 2 to 5 turns."); -#endif + "for "BINDING_TURNS" turns."); static const u8 sSlamDescription[] = _( "Slams the foe with a long\n" @@ -143,11 +146,7 @@ static const u8 sBodySlamDescription[] = _( static const u8 sWrapDescription[] = _( "Wraps and squeezes the foe\n" -#if B_BINDING_TURNS >= GEN_5 - "4 or 5 times with vines, etc."); -#else - "2 to 5 times with vines, etc."); -#endif + BINDING_TURNS" times with vines, etc."); static const u8 sTakeDownDescription[] = _( "A reckless charge attack\n" @@ -339,11 +338,7 @@ static const u8 sDragonRageDescription[] = _( static const u8 sFireSpinDescription[] = _( "Traps the foe in a ring of\n" -#if B_BINDING_TURNS >= GEN_5 - "fire for 4 or 5 turns."); -#else - "fire for 2 to 5 turns."); -#endif + "fire for "BINDING_TURNS" turns."); static const u8 sThunderShockDescription[] = _( "An electrical attack that\n" @@ -523,11 +518,7 @@ static const u8 sWaterfallDescription[] = _( static const u8 sClampDescription[] = _( "Traps and squeezes the\n" -#if B_BINDING_TURNS >= GEN_5 - "foe for 4 or 5 turns."); -#else - "foe for 2 to 5 turns."); -#endif + "foe for "BINDING_TURNS" turns."); static const u8 sSwiftDescription[] = _( "Sprays star-shaped rays\n" @@ -1015,11 +1006,7 @@ static const u8 sRockSmashDescription[] = _( static const u8 sWhirlpoolDescription[] = _( "Traps and hurts the foe in\n" -#if B_BINDING_TURNS >= GEN_5 - "a whirlpool for 4 or 5 turns."); -#else - "a whirlpool for 2 to 5 turns."); -#endif + "a whirlpool for "BINDING_TURNS" turns."); static const u8 sBeatUpDescription[] = _( "Summons party Pokémon to\n" @@ -1030,7 +1017,11 @@ static const u8 sFakeOutDescription[] = _( "that causes flinching."); static const u8 sUproarDescription[] = _( +#if B_UPROAR_TURNS >= GEN_5 "Causes an uproar for 2 to 5\n" +#else + "Causes an uproar for 3\n" +#endif "turns and prevents sleep."); static const u8 sStockpileDescription[] = _( @@ -1331,11 +1322,7 @@ static const u8 sSkyUppercutDescription[] = _( static const u8 sSandTombDescription[] = _( "Traps and hurts the foe in\n" -#if B_BINDING_TURNS >= GEN_5 - "quicksand for 4 or 5 turns."); -#else - "quicksand for 2 to 5 turns."); -#endif + "quicksand for "BINDING_TURNS" turns."); static const u8 sSheerColdDescription[] = _( "A chilling attack that\n" @@ -1839,11 +1826,7 @@ static const u8 sSpacialRendDescription[] = _( static const u8 sMagmaStormDescription[] = _( "Traps the foe in a vortex\n" -#if B_BINDING_TURNS >= GEN_5 - "of fire for 4 or 5 turns."); -#else - "of fire for 2 to 5 turns."); -#endif + "of fire for "BINDING_TURNS" turns."); static const u8 sDarkVoidDescription[] = _( "Drags the foe into total\n" @@ -2395,11 +2378,7 @@ static const u8 sNuzzleDescription[] = _( static const u8 sInfestationDescription[] = _( "The foe is infested and\n" -#if B_BINDING_TURNS >= GEN_5 - "attacked for 4 or 5 turns."); -#else - "attacked for 2 to 5 turns."); -#endif + "attacked for "BINDING_TURNS" turns."); static const u8 sPowerUpPunchDescription[] = _( "A hard punch that raises\n" @@ -2944,11 +2923,7 @@ static const u8 sSurgingStrikesDescription[] = _( static const u8 sThunderCageDescription[] = _( "Traps the foe in a cage of\n" -#if B_BINDING_TURNS >= GEN_5 - "electricity for 4 or 5 turns."); -#else - "electricity for 2 to 5 turns."); -#endif + "electricity for "BINDING_TURNS" turns."); static const u8 sDragonEnergyDescription[] = _( "The higher the user's HP\n" @@ -2978,8 +2953,107 @@ static const u8 sEerieSpellDescription[] = _( "Attacks with psychic power.\n" "Foe's last move has 3 PP cut."); -static const u8 sNotDoneYetDescription[] = _( - "Not done yet."); +static const u8 sDireClawDescription[] = _( + "High critical hit chance. May\n" + "paralyze, poison or drowse."); + +static const u8 sPsyshieldBashDescription[] = _( + "Hits a foe with psychic\n" + "energy. May raise Defense."); + +static const u8 sPowerShiftDescription[] = _( + "The user swaps its offensive\n" + "and defensive stats."); + +static const u8 sStoneAxeDescription[] = _( + "High critical hit ratio. Sets\n" + "Splinters that hurt the foe."); + +static const u8 sSpringtideStormDescription[] = _( + "Wraps a foe in fierce winds.\n" + "Varies with the user's form."); + +static const u8 sMysticalPowerDescription[] = _( + "Increases the user's better\n" + "of Atk. and Def. stats."); + +static const u8 sRagingFuryDescription[] = _( + "Viciously spews flames at\n" + "a foe, becoming fixated."); + +static const u8 sWaveCrashDescription[] = _( + "A water slam. Hurts the user\n" + "and raises its Action Speed."); + +static const u8 sChloroblastDescription[] = _( + "An blast that hurts the user\n" + "and lowers its Action Speed."); + +static const u8 sMountainGaleDescription[] = _( + "The user hurls giant chunks\n" + "of ice to damage the foe."); + +static const u8 sVictoryDanceDescription[] = _( + "Dances to raise damage 50%,\n" + "plus offenses and defenses."); + +static const u8 sHeadlongRushDescription[] = _( + "Hits with a full-body tackle,\n" + "lowering the foe's Defense."); + +static const u8 sBarbBarrageDescription[] = _( + "Can poison on impact. Powers\n" + "up if the foe has an ailment."); + +static const u8 sEsperWingDescription[] = _( + "High critical hit ratio.\n" + "Ups the user's Action Speed."); + +static const u8 sBitterMaliceDescription[] = _( + "Hurts a foe harder if it has\n" + "an ailment. Can give FrstBte."); + +static const u8 sShelterDescription[] = _( + "The user hardens their skin\n" + "and obscures itself."); + +static const u8 sTripleArrowsDescription[] = _( + "Ups critical-hit ratio for 3\n" + "turns. Lowers foe Defenses."); + +static const u8 sInfernalParadeDescription[] = _( + "Hurts a foe harder if it has\n" + "an ailment. May leave a burn."); + +static const u8 sCeaselessEdgeDescription[] = _( + "High critical hit ratio. Sets\n" + "Splinters that hurt the foe."); + +static const u8 sBleakwindStormDescription[] = _( + "Hits with brutal, cold winds.\n" + "May inflict frostbite."); + +static const u8 sWildboltStormDescription[] = _( + "Hits with a brutal tempest.\n" + "May inflict paralysis."); + +static const u8 sSandsearStormDescription[] = _( + "Hits with brutally hot sand.\n" + "May inflict a burn."); + +static const u8 sLunarBlessingDescription[] = _( + "The user heals themself and\n" + "conceals their presence."); + +static const u8 sTakeHeartDescription[] = _( + "The user lifts its spirits to\n" + "heal and strengthen itself."); + +const u8 gNotDoneYetDescription[] = _( + "This move can't be used. Its\n" + "effect is in development."); + +#undef BINDING_TURNS // MOVE_NONE is ignored in this table. Make sure to always subtract 1 before getting the right pointer. const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] = @@ -3740,4 +3814,28 @@ const u8 *const gMoveDescriptionPointers[MOVES_COUNT - 1] = [MOVE_GLACIAL_LANCE - 1] = sGlacialLanceDescription, [MOVE_ASTRAL_BARRAGE - 1] = sAstralBarrageDescription, [MOVE_EERIE_SPELL - 1] = sEerieSpellDescription, + [MOVE_DIRE_CLAW - 1] = sDireClawDescription, + [MOVE_PSYSHIELD_BASH - 1] = sPsyshieldBashDescription, + [MOVE_POWER_SHIFT - 1] = sPowerShiftDescription, + [MOVE_STONE_AXE - 1] = sStoneAxeDescription, + [MOVE_SPRINGTIDE_STORM - 1] = sSpringtideStormDescription, + [MOVE_MYSTICAL_POWER - 1] = sMysticalPowerDescription, + [MOVE_RAGING_FURY - 1] = sRagingFuryDescription, + [MOVE_WAVE_CRASH - 1] = sWaveCrashDescription, + [MOVE_CHLOROBLAST - 1] = sChloroblastDescription, + [MOVE_MOUNTAIN_GALE - 1] = sMountainGaleDescription, + [MOVE_VICTORY_DANCE - 1] = sVictoryDanceDescription, + [MOVE_HEADLONG_RUSH - 1] = sHeadlongRushDescription, + [MOVE_BARB_BARRAGE - 1] = sBarbBarrageDescription, + [MOVE_ESPER_WING - 1] = sEsperWingDescription, + [MOVE_BITTER_MALICE - 1] = sBitterMaliceDescription, + [MOVE_SHELTER - 1] = sShelterDescription, + [MOVE_TRIPLE_ARROWS - 1] = sTripleArrowsDescription, + [MOVE_INFERNAL_PARADE - 1] = sInfernalParadeDescription, + [MOVE_CEASELESS_EDGE - 1] = sCeaselessEdgeDescription, + [MOVE_BLEAKWIND_STORM - 1] = sBleakwindStormDescription, + [MOVE_WILDBOLT_STORM - 1] = sWildboltStormDescription, + [MOVE_SANDSEAR_STORM - 1] = sSandsearStormDescription, + [MOVE_LUNAR_BLESSING - 1] = sLunarBlessingDescription, + [MOVE_TAKE_HEART - 1] = sTakeHeartDescription, }; diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h index 48556d7fa..ffa00e3f6 100644 --- a/src/data/text/move_names.h +++ b/src/data/text/move_names.h @@ -757,6 +757,30 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_GLACIAL_LANCE] = _("Glacial Lance"), [MOVE_ASTRAL_BARRAGE] = _("Astral Barrage"), [MOVE_EERIE_SPELL] = _("Eerie Spell"), + [MOVE_DIRE_CLAW] = _("Dire Claw"), + [MOVE_PSYSHIELD_BASH] = _("Psyshield Bash"), + [MOVE_POWER_SHIFT] = _("Power Shift"), + [MOVE_STONE_AXE] = _("Stone Axe"), + [MOVE_SPRINGTIDE_STORM] = _("Springtide Storm"), + [MOVE_MYSTICAL_POWER] = _("Mystical Power"), + [MOVE_RAGING_FURY] = _("Raging Fury"), + [MOVE_WAVE_CRASH] = _("Wave Crash"), + [MOVE_CHLOROBLAST] = _("Chloroblast"), + [MOVE_MOUNTAIN_GALE] = _("Mountain Gale"), + [MOVE_VICTORY_DANCE] = _("Victory Dance"), + [MOVE_HEADLONG_RUSH] = _("Headlong Rush"), + [MOVE_BARB_BARRAGE] = _("Barb Barrage"), + [MOVE_ESPER_WING] = _("Esper Wing"), + [MOVE_BITTER_MALICE] = _("Bitter Malice"), + [MOVE_SHELTER] = _("Shelter"), + [MOVE_TRIPLE_ARROWS] = _("Triple Arrows"), + [MOVE_INFERNAL_PARADE] = _("Infernal Parade"), + [MOVE_CEASELESS_EDGE] = _("Ceaseless Edge"), + [MOVE_BLEAKWIND_STORM] = _("Bleakwind Storm"), + [MOVE_WILDBOLT_STORM] = _("Wildbolt Storm"), + [MOVE_SANDSEAR_STORM] = _("Sandsear Storm"), + [MOVE_LUNAR_BLESSING] = _("Lunar Blessing"), + [MOVE_TAKE_HEART] = _("Take Heart"), }; #else // 12 letters @@ -1517,6 +1541,30 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_GLACIAL_LANCE] = _("GlacialLance"), [MOVE_ASTRAL_BARRAGE] = _("AstrlBarrage"), [MOVE_EERIE_SPELL] = _("Eerie Spell"), + [MOVE_DIRE_CLAW] = _("Dire Claw"), + [MOVE_PSYSHIELD_BASH] = _("PsyshieldBsh"), + [MOVE_POWER_SHIFT] = _("Power Shift"), + [MOVE_STONE_AXE] = _("Stone Axe"), + [MOVE_SPRINGTIDE_STORM] = _("SprngtdeStrm"), + [MOVE_MYSTICAL_POWER] = _("MystcalPower"), + [MOVE_RAGING_FURY] = _("Raging Fury"), + [MOVE_WAVE_CRASH] = _("Wave Crash"), + [MOVE_CHLOROBLAST] = _("Chloroblast"), + [MOVE_MOUNTAIN_GALE] = _("MountainGale"), + [MOVE_VICTORY_DANCE] = _("VictoryDance"), + [MOVE_HEADLONG_RUSH] = _("HeadlongRush"), + [MOVE_BARB_BARRAGE] = _("Barb Barrage"), + [MOVE_ESPER_WING] = _("Esper Wing"), + [MOVE_BITTER_MALICE] = _("BitterMalice"), + [MOVE_SHELTER] = _("Shelter"), + [MOVE_TRIPLE_ARROWS] = _("TripleArrows"), + [MOVE_INFERNAL_PARADE] = _("InfrnlParade"), + [MOVE_CEASELESS_EDGE] = _("CeaslessEdge"), + [MOVE_BLEAKWIND_STORM] = _("BlekwndStorm"), + [MOVE_WILDBOLT_STORM] = _("WildbltStorm"), + [MOVE_SANDSEAR_STORM] = _("SndsearStorm"), + [MOVE_LUNAR_BLESSING] = _("LunarBlessng"), + [MOVE_TAKE_HEART] = _("Take Heart"), }; #endif diff --git a/src/data/text/species_names.h b/src/data/text/species_names.h index 95774f963..ad0a1ba7c 100644 --- a/src/data/text/species_names.h +++ b/src/data/text/species_names.h @@ -899,6 +899,13 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = { [SPECIES_GLASTRIER] = _("Glastrier"), [SPECIES_SPECTRIER] = _("Spectrier"), [SPECIES_CALYREX] = _("Calyrex"), + [SPECIES_WYRDEER] = _("Wyrdeer"), + [SPECIES_KLEAVOR] = _("Kleavor"), + [SPECIES_URSALUNA] = _("Ursaluna"), + [SPECIES_BASCULEGION] = _("Bsculegion"), + [SPECIES_SNEASLER] = _("Sneasler"), + [SPECIES_OVERQWIL] = _("Overqwil"), + [SPECIES_ENAMORUS] = _("Enamorus"), // Megas [SPECIES_VENUSAUR_MEGA] = _("Venusaur"), @@ -994,6 +1001,24 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = { [SPECIES_YAMASK_GALARIAN] = _("Yamask"), [SPECIES_STUNFISK_GALARIAN] = _("Stunfisk"), +//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"), + [SPECIES_SAMUROTT_HISUIAN] = _("Samurott"), + [SPECIES_LILLIGANT_HISUIAN] = _("Lilligant"), + [SPECIES_ZORUA_HISUIAN] = _("Zorua"), + [SPECIES_ZOROARK_HISUIAN] = _("Zoroark"), + [SPECIES_BRAVIARY_HISUIAN] = _("Braviary"), + [SPECIES_SLIGGOO_HISUIAN] = _("Sliggoo"), + [SPECIES_GOODRA_HISUIAN] = _("Goodra"), + [SPECIES_AVALUGG_HISUIAN] = _("Avalugg"), + [SPECIES_DECIDUEYE_HISUIAN] = _("Decidueye"), + // Cosplay Pikachu [SPECIES_PIKACHU_COSPLAY] = _("Pikachu"), [SPECIES_PIKACHU_ROCK_STAR] = _("Pikachu"), @@ -1068,7 +1093,9 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = { [SPECIES_ROTOM_FROST] = _("Rotom"), [SPECIES_ROTOM_MOW] = _("Rotom"), [SPECIES_ROTOM_WASH] = _("Rotom"), - // Giratina + // Origin Forme + [SPECIES_DIALGA_ORIGIN] = _("Dialga"), + [SPECIES_PALKIA_ORIGIN] = _("Palkia"), [SPECIES_GIRATINA_ORIGIN] = _("Giratina"), // Shaymin [SPECIES_SHAYMIN_SKY] = _("Shaymin"), @@ -1092,6 +1119,7 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = { [SPECIES_ARCEUS_FAIRY] = _("Arceus"), // Basculin [SPECIES_BASCULIN_BLUE_STRIPED] = _("Basculin"), + [SPECIES_BASCULIN_WHITE_STRIPED] = _("Basculin"), // Darmanitan [SPECIES_DARMANITAN_ZEN_MODE] = _("Darmanitan"), [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = _("Darmanitan"), @@ -1107,6 +1135,7 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = { [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"), diff --git a/src/daycare.c b/src/daycare.c index d293e5117..6108c6daa 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -695,7 +695,8 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++) { - if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j)) + u16 moveId = ItemIdToBattleMoveId(ITEM_TM01 + j); + if (sHatchedEggFatherMoves[i] == moveId && CanLearnTeachableMove(GetMonData(egg, MON_DATA_SPECIES2), moveId)) { if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]); @@ -819,12 +820,12 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent eggSpecies = SPECIES_NIDORAN_M; else if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & EGG_GENDER_MALE) eggSpecies = SPECIES_VOLBEAT; - #if P_NIDORAN_M_DITTO_BREED >= GEN_5 - else if (eggSpecies == SPECIES_NIDORAN_M && !(daycare->offspringPersonality & EGG_GENDER_MALE)) - eggSpecies = SPECIES_NIDORAN_F; - else if (eggSpecies == SPECIES_VOLBEAT && !(daycare->offspringPersonality & EGG_GENDER_MALE)) - eggSpecies = SPECIES_ILLUMISE; - #endif +#if P_NIDORAN_M_DITTO_BREED >= GEN_5 + else if (eggSpecies == SPECIES_NIDORAN_M && !(daycare->offspringPersonality & EGG_GENDER_MALE)) + eggSpecies = SPECIES_NIDORAN_F; + else if (eggSpecies == SPECIES_VOLBEAT && !(daycare->offspringPersonality & EGG_GENDER_MALE)) + eggSpecies = SPECIES_ILLUMISE; +#endif else if (eggSpecies == SPECIES_MANAPHY) eggSpecies = SPECIES_PHIONE; else if (eggSpecies == SPECIES_SINISTEA_ANTIQUE) diff --git a/src/decompress.c b/src/decompress.c index 4f17edcf8..c94f74862 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -70,25 +70,18 @@ void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffe void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality) { - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if (ShouldShowFemaleDifferences(species, personality)) DecompressPicFromTable(&gMonFrontPicTableFemale[species], buffer, species); else DecompressPicFromTable(&gMonFrontPicTable[species], buffer, species); } -void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) +void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality) { - bool8 isFrontPic; - - if (src == &gMonFrontPicTable[species]) - isFrontPic = TRUE; // frontPic - else - isFrontPic = FALSE; // backPic - - LoadSpecialPokePic(src, dest, species, personality, isFrontPic); + LoadSpecialPokePic(dest, species, personality, isFrontPic); } -void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) +void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic) { if (species == SPECIES_UNOWN) { @@ -100,8 +93,13 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 LZ77UnCompWram(gMonFrontPicTable[id].data, dest); } else if (species > NUM_SPECIES) // is species unknown? draw the ? icon - LZ77UnCompWram(gMonFrontPicTable[0].data, dest); - else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + { + if (isFrontPic) + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + else + LZ77UnCompWram(gMonBackPicTable[0].data, dest); + } + else if (ShouldShowFemaleDifferences(species, personality)) { if (isFrontPic) LZ77UnCompWram(gMonFrontPicTableFemale[species].data, dest); @@ -109,49 +107,15 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 LZ77UnCompWram(gMonBackPicTableFemale[species].data, dest); } else - LZ77UnCompWram(src->data, dest); - - DrawSpindaSpots(species, personality, dest, isFrontPic); -} - -#if P_ENABLE_DEBUG == TRUE -static void LoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic, bool8 isFemale) -{ - if (species == SPECIES_UNOWN) - { - u32 id = GetUnownSpeciesId(personality); - - if (!isFrontPic) - LZ77UnCompWram(gMonBackPicTable[id].data, dest); - else - LZ77UnCompWram(gMonFrontPicTable[id].data, dest); - } - else if (species > NUM_SPECIES) // is species unknown? draw the ? icon - LZ77UnCompWram(gMonFrontPicTable[0].data, dest); - else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) { if (isFrontPic) - LZ77UnCompWram(gMonFrontPicTableFemale[species].data, dest); + LZ77UnCompWram(gMonFrontPicTable[species].data, dest); else - LZ77UnCompWram(gMonBackPicTableFemale[species].data, dest); + LZ77UnCompWram(gMonBackPicTable[species].data, dest); } - else - LZ77UnCompWram(src->data, dest); DrawSpindaSpots(species, personality, dest, isFrontPic); } -void HandleLoadSpecialPokePicCustom(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFemale) -{ - bool8 isFrontPic; - - if (src == &gMonFrontPicTable[species]) - isFrontPic = TRUE; // frontPic - else - isFrontPic = FALSE; // backPic - - LoadSpecialPokePicCustom(src, dest, species, personality, isFrontPic, isFemale); -} -#endif void Unused_LZDecompressWramIndirect(const void **src, void *dest) { diff --git a/src/easy_chat.c b/src/easy_chat.c index 91b44fb26..ebc843b3c 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -944,7 +944,8 @@ static const struct OamData sOamData_TriangleCursor = { .affineParam = 0, }; -static const struct SpriteTemplate sSpriteTemplate_TriangleCursor = { +static const struct SpriteTemplate sSpriteTemplate_TriangleCursor = +{ .tileTag = PALTAG_TRIANGLE_CURSOR, .paletteTag = GFXTAG_TRIANGLE_CURSOR, .oam = &sOamData_TriangleCursor, @@ -1005,7 +1006,8 @@ static const union AnimCmd *const sAnims_RectangleCursor[] = { [RECTCURSOR_ANIM_ON_LETTER] = sAnim_RectangleCursor_OnLetter, }; -static const struct SpriteTemplate sSpriteTemplate_RectangleCursor = { +static const struct SpriteTemplate sSpriteTemplate_RectangleCursor = +{ .tileTag = GFXTAG_RECTANGLE_CURSOR, .paletteTag = PALTAG_RECTANGLE_CURSOR, .oam = &sOamData_RectangleCursor, @@ -1075,7 +1077,8 @@ static const union AnimCmd *const sAnims_ModeWindow[] = { [MODEWINDOW_ANIM_TRANSITION] = sAnim_ModeWindow_Transition, }; -static const struct SpriteTemplate sSpriteTemplate_ModeWindow = { +static const struct SpriteTemplate sSpriteTemplate_ModeWindow = +{ .tileTag = GFXTAG_MODE_WINDOW, .paletteTag = PALTAG_MISC_UI, .oam = &sOamData_ModeWindow, @@ -1101,7 +1104,8 @@ static const struct OamData sOamData_ButtonWindow = { .affineParam = 0, }; -static const struct SpriteTemplate sSpriteTemplate_ButtonWindow = { +static const struct SpriteTemplate sSpriteTemplate_ButtonWindow = +{ .tileTag = GFXTAG_BUTTON_WINDOW, .paletteTag = PALTAG_MISC_UI, .oam = &sOamData_ButtonWindow, @@ -1159,7 +1163,8 @@ static const union AnimCmd *const sAnims_TwoFrame[] = { sAnim_Frame1, }; -static const struct SpriteTemplate sSpriteTemplate_StartSelectButton = { +static const struct SpriteTemplate sSpriteTemplate_StartSelectButton = +{ .tileTag = GFXTAG_START_SELECT_BUTTONS, .paletteTag = PALTAG_MISC_UI, .oam = &sOamData_StartSelectButton, @@ -1169,7 +1174,8 @@ static const struct SpriteTemplate sSpriteTemplate_StartSelectButton = { .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate sSpriteTemplate_ScrollIndicator = { +static const struct SpriteTemplate sSpriteTemplate_ScrollIndicator = +{ .tileTag = GFXTAG_SCROLL_INDICATOR, .paletteTag = PALTAG_MISC_UI, .oam = &sOamData_ScrollIndicator, diff --git a/src/egg_hatch.c b/src/egg_hatch.c index e280ef315..b7ae2e2ce 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -444,7 +444,7 @@ static u8 EggHatchCreateMonSprite(u8 useAlt, u8 state, u8 partyId, u16 *speciesL { u16 species = GetMonData(mon, MON_DATA_SPECIES); u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[(useAlt * 2) + B_POSITION_OPPONENT_LEFT], species, pid); LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); diff --git a/src/evolution_scene.c b/src/evolution_scene.c index c9c2641c6..91a312222 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -551,7 +551,10 @@ 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 - && (P_SHEDINJA_BALL == GEN_3 || CheckBagHasItem(ball, 1))) + #if P_SHEDINJA_BALL >= GEN_4 + && (CheckBagHasItem(ball, 1)) + #endif + ) { s32 i; struct Pokemon *shedinja = &gPlayerParty[gPlayerPartyCount]; @@ -563,10 +566,10 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon) SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MARKINGS, &data); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_ENCRYPT_SEPARATOR, &data); - #if P_SHEDINJA_BALL >= GEN_4 + #if P_SHEDINJA_BALL >= GEN_4 SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_POKEBALL, &ball); RemoveBagItem(ball, 1); - #endif + #endif for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + CONTEST_CATEGORIES_COUNT; i++) SetMonData(&gPlayerParty[gPlayerPartyCount], i, &data); diff --git a/src/field_effect.c b/src/field_effect.c index 2a1937f20..674125aaf 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -3766,7 +3766,8 @@ static const union AnimCmd *const sAnims_DeoxysRockFragment[] = { sAnim_RockFragment_BottomRight, }; -static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment = { +static const struct SpriteTemplate sSpriteTemplate_DeoxysRockFragment = +{ .tileTag = TAG_NONE, .paletteTag = 4378, .oam = &sOam_8x8, diff --git a/src/field_poison.c b/src/field_poison.c index e29e1ac98..fcb47acdb 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -67,40 +67,40 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) s16 *data = gTasks[taskId].data; switch (tState) { - case 0: - for (; tPartyIdx < PARTY_SIZE; tPartyIdx++) + case 0: + for (; tPartyIdx < PARTY_SIZE; tPartyIdx++) + { + if (MonFaintedFromPoison(tPartyIdx)) { - if (MonFaintedFromPoison(tPartyIdx)) - { - FaintFromFieldPoison(tPartyIdx); - ShowFieldMessage(gText_PkmnFainted_FldPsn); - tState++; - return; - } - } - tState = 2; // Finished checking party - break; - case 1: - // Wait for "{mon} fainted" message, then return to party loop - if (IsFieldMessageBoxHidden()) - tState--; - break; - case 2: - if (AllMonsFainted()) - { - // Battle facilities have their own white out script to handle the challenge loss - if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge()) - gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT; - else - gSpecialVar_Result = FLDPSN_WHITEOUT; + FaintFromFieldPoison(tPartyIdx); + ShowFieldMessage(gText_PkmnFainted_FldPsn); + tState++; + return; } + } + tState = 2; // Finished checking party + break; + case 1: + // Wait for "{mon} fainted" message, then return to party loop + if (IsFieldMessageBoxHidden()) + tState--; + break; + case 2: + if (AllMonsFainted()) + { + // Battle facilities have their own white out script to handle the challenge loss + if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge()) + gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT; else - { - gSpecialVar_Result = FLDPSN_NO_WHITEOUT; - } - ScriptContext_Enable(); - DestroyTask(taskId); - break; + gSpecialVar_Result = FLDPSN_WHITEOUT; + } + else + { + gSpecialVar_Result = FLDPSN_NO_WHITEOUT; + } + ScriptContext_Enable(); + DestroyTask(taskId); + break; } } diff --git a/src/field_specials.c b/src/field_specials.c index 7c226e7a3..eb4db96f8 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -65,6 +65,7 @@ #include "constants/weather.h" #include "constants/metatile_labels.h" #include "palette.h" +#include "battle_util.h" EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; @@ -868,7 +869,7 @@ static void PetalburgGymSetDoorMetatiles(u8 roomNumber, u16 metatileId) for (i = 0; i < nDoors; i++) { MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); - MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET + 1, (metatileId + 8) | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET + 1, (metatileId + METATILE_ROW_WIDTH) | MAPGRID_COLLISION_MASK); } DrawWholeMapView(); } @@ -939,21 +940,7 @@ u16 GetWeekCount(void) u8 GetLeadMonFriendshipScore(void) { - struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()]; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP) - return 6; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200) - return 5; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150) - return 4; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100) - return 3; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50) - return 2; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1) - return 1; - - return 0; + return GetMonFriendshipScore(&gPlayerParty[GetLeadMonIndex()]); } static void CB2_FieldShowRegionMap(void) @@ -2986,40 +2973,9 @@ static void HideFrontierExchangeCornerItemIcon(u16 menu, u16 unused) } } -static const u16 sBattleFrontier_TutorMoves1[] = -{ - MOVE_SOFT_BOILED, - MOVE_SEISMIC_TOSS, - MOVE_DREAM_EATER, - MOVE_MEGA_PUNCH, - MOVE_MEGA_KICK, - MOVE_BODY_SLAM, - MOVE_ROCK_SLIDE, - MOVE_COUNTER, - MOVE_THUNDER_WAVE, - MOVE_SWORDS_DANCE -}; - -static const u16 sBattleFrontier_TutorMoves2[] = -{ - MOVE_DEFENSE_CURL, - MOVE_SNORE, - MOVE_MUD_SLAP, - MOVE_SWIFT, - MOVE_ICY_WIND, - MOVE_ENDURE, - MOVE_PSYCH_UP, - MOVE_ICE_PUNCH, - MOVE_THUNDER_PUNCH, - MOVE_FIRE_PUNCH -}; - void BufferBattleFrontierTutorMoveName(void) { - if (gSpecialVar_0x8005 != 0) - StringCopy(gStringVar1, gMoveNames[sBattleFrontier_TutorMoves2[gSpecialVar_0x8004]]); - else - StringCopy(gStringVar1, gMoveNames[sBattleFrontier_TutorMoves1[gSpecialVar_0x8004]]); + StringCopy(gStringVar1, gMoveNames[gSpecialVar_0x8005]); } static void ShowBattleFrontierTutorWindow(u8 menu, u16 selection) @@ -3115,44 +3071,6 @@ void ScrollableMultichoice_RedrawPersistentMenu(void) } } -void GetBattleFrontierTutorMoveIndex(void) -{ - u8 i; - u16 moveTutor = 0; - u16 moveIndex = 0; - gSpecialVar_0x8005 = 0; - - moveTutor = VarGet(VAR_TEMP_E); - moveIndex = VarGet(VAR_TEMP_D); - - if (moveTutor != 0) - { - i = 0; - do - { - if (gTutorMoves[i] == sBattleFrontier_TutorMoves2[moveIndex]) - { - gSpecialVar_0x8005 = i; - break; - } - i++; - } while (i < TUTOR_MOVE_COUNT); - } - else - { - i = 0; - do - { - if (gTutorMoves[i] == sBattleFrontier_TutorMoves1[moveIndex]) - { - gSpecialVar_0x8005 = i; - break; - } - i++; - } while (i < TUTOR_MOVE_COUNT); - } -} - // Never called // Close a scrollable multichoice that stays open after selection void ScrollableMultichoice_ClosePersistentMenu(void) diff --git a/src/graphics.c b/src/graphics.c index 9e858deec..a59d91952 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -57,238 +57,240 @@ const u32 gBattleAnimSpritePal_Punishment[] = INCBIN_U32("graphics/battle_anims/ const u32 gBattleAnimSpriteGfx_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/quick_guard.4bpp.lz"); const u32 gBattleAnimSpritePal_QuickGuard[] = INCBIN_U32("graphics/battle_anims/sprites/quick_guard.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_AcupressureFinger[] = INCBIN_U32("graphics/battle_anims/sprites/new/acupressure_finger.4bpp.lz"); -const u32 gBattleAnimSpritePal_AcupressureFinger[] = INCBIN_U32("graphics/battle_anims/sprites/new/acupressure_finger.gbapal.lz"); +const u32 gBattleAnimSpritePal_AcupressureFinger[] = INCBIN_U32("graphics/battle_anims/sprites/acupressure_finger.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_AcupressureFinger[] = INCBIN_U32("graphics/battle_anims/sprites/acupressure_finger.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_AlphaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/alpha_stone.4bpp.lz"); -const u32 gBattleAnimSpritePal_AlphaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/alpha_stone.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_AlphaStone[] = INCBIN_U32("graphics/battle_anims/sprites/alpha_stone.4bpp.lz"); +const u32 gBattleAnimSpritePal_AlphaStone[] = INCBIN_U32("graphics/battle_anims/sprites/alpha_stone.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Anchor[] = INCBIN_U32("graphics/battle_anims/sprites/new/anchor.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Anchor[] = INCBIN_U32("graphics/battle_anims/sprites/anchor.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_Apple[] = INCBIN_U32("graphics/battle_anims/sprites/new/apple.4bpp.lz"); -const u32 gBattleAnimSpritePal_Apple[] = INCBIN_U32("graphics/battle_anims/sprites/new/apple.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Apple[] = INCBIN_U32("graphics/battle_anims/sprites/apple.4bpp.lz"); +const u32 gBattleAnimSpritePal_Apple[] = INCBIN_U32("graphics/battle_anims/sprites/apple.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Arrows[] = INCBIN_U32("graphics/battle_anims/sprites/new/arrows.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_Arrows[] = INCBIN_U32("graphics/battle_anims/sprites/arrows.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_AssuranceHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/assurance_hand.4bpp.lz"); -const u32 gBattleAnimSpritePal_AssuranceHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/assurance_hand.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_AssuranceHand[] = INCBIN_U32("graphics/battle_anims/sprites/assurance_hand.4bpp.lz"); +const u32 gBattleAnimSpritePal_AssuranceHand[] = INCBIN_U32("graphics/battle_anims/sprites/assurance_hand.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_AuraSphere[] = INCBIN_U32("graphics/battle_anims/sprites/new/aura_sphere.4bpp.lz"); -const u32 gBattleAnimSpritePal_AuraSphere[] = INCBIN_U32("graphics/battle_anims/sprites/new/aura_sphere.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_AuraSphere[] = INCBIN_U32("graphics/battle_anims/sprites/aura_sphere.4bpp.lz"); +const u32 gBattleAnimSpritePal_AuraSphere[] = INCBIN_U32("graphics/battle_anims/sprites/aura_sphere.gbapal.lz"); -const u32 gBattleAnimSpritePal_AvalancheRocks[] = INCBIN_U32("graphics/battle_anims/sprites/new/avalanche_rocks.gbapal.lz"); +const u32 gBattleAnimSpritePal_AvalancheRocks[] = INCBIN_U32("graphics/battle_anims/sprites/avalanche_rocks.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/new/baton_pass_ball.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/new/baton_pass_ball.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/baton_pass_ball.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewPokeball[] = INCBIN_U32("graphics/battle_anims/sprites/baton_pass_ball.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_eaten.4bpp.lz"); -const u32 gBattleAnimSpritePal_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_eaten.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/berry_eaten.4bpp.lz"); +const u32 gBattleAnimSpritePal_BerryEaten[] = INCBIN_U32("graphics/battle_anims/sprites/berry_eaten.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_BerryNormal[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_normal.4bpp.lz"); -const u32 gBattleAnimSpritePal_BerryNormal[] = INCBIN_U32("graphics/battle_anims/sprites/new/berry_normal.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BerryNormal[] = INCBIN_U32("graphics/battle_anims/sprites/berry_normal.4bpp.lz"); +const u32 gBattleAnimSpritePal_BerryNormal[] = INCBIN_U32("graphics/battle_anims/sprites/berry_normal.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_BigRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/big_rock.4bpp.lz"); -const u32 gBattleAnimSpritePal_BigRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/big_rock.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BigRock[] = INCBIN_U32("graphics/battle_anims/sprites/big_rock.4bpp.lz"); +const u32 gBattleAnimSpritePal_BigRock[] = INCBIN_U32("graphics/battle_anims/sprites/big_rock.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_BlacephalonHead[] = INCBIN_U32("graphics/battle_anims/sprites/new/blacephalon_head.4bpp.lz"); -const u32 gBattleAnimSpritePal_BlacephalonHead[] = INCBIN_U32("graphics/battle_anims/sprites/new/blacephalon_head.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_BlacephalonHead[] = INCBIN_U32("graphics/battle_anims/sprites/blacephalon_head.4bpp.lz"); +const u32 gBattleAnimSpritePal_BlacephalonHead[] = INCBIN_U32("graphics/battle_anims/sprites/blacephalon_head.gbapal.lz"); -const u32 gBattleAnimSpritePal_BlueFlare[] = INCBIN_U32("graphics/battle_anims/sprites/new/blue_flare.gbapal.lz"); +const u32 gBattleAnimSpritePal_BlueFlare[] = INCBIN_U32("graphics/battle_anims/sprites/blue_flare.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Branch[] = INCBIN_U32("graphics/battle_anims/sprites/new/branch.4bpp.lz"); -const u32 gBattleAnimSpritePal_Branch[] = INCBIN_U32("graphics/battle_anims/sprites/new/branch.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Branch[] = INCBIN_U32("graphics/battle_anims/sprites/branch.4bpp.lz"); +const u32 gBattleAnimSpritePal_Branch[] = INCBIN_U32("graphics/battle_anims/sprites/branch.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Brine[] = INCBIN_U32("graphics/battle_anims/sprites/new/brine.4bpp.lz"); -const u32 gBattleAnimSpritePal_Brine[] = INCBIN_U32("graphics/battle_anims/sprites/new/brine.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Brine[] = INCBIN_U32("graphics/battle_anims/sprites/brine.4bpp.lz"); +const u32 gBattleAnimSpritePal_Brine[] = INCBIN_U32("graphics/battle_anims/sprites/brine.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_ChainLink[] = INCBIN_U32("graphics/battle_anims/sprites/new/chain_link.4bpp.lz"); -const u32 gBattleAnimSpritePal_ChainLink[] = INCBIN_U32("graphics/battle_anims/sprites/new/chain_link.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ChainLink[] = INCBIN_U32("graphics/battle_anims/sprites/chain_link.4bpp.lz"); +const u32 gBattleAnimSpritePal_ChainLink[] = INCBIN_U32("graphics/battle_anims/sprites/chain_link.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Chop[] = INCBIN_U32("graphics/battle_anims/sprites/new/chop.4bpp.lz"); -const u32 gBattleAnimSpritePal_Chop[] = INCBIN_U32("graphics/battle_anims/sprites/new/chop.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Chop[] = INCBIN_U32("graphics/battle_anims/sprites/chop.4bpp.lz"); +const u32 gBattleAnimSpritePal_Chop[] = INCBIN_U32("graphics/battle_anims/sprites/chop.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Cacoon[] = INCBIN_U32("graphics/battle_anims/sprites/new/cacoon.4bpp.lz"); -const u32 gBattleAnimSpritePal_Cacoon[] = INCBIN_U32("graphics/battle_anims/sprites/new/cacoon.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Cacoon[] = INCBIN_U32("graphics/battle_anims/sprites/cacoon.4bpp.lz"); +const u32 gBattleAnimSpritePal_Cacoon[] = INCBIN_U32("graphics/battle_anims/sprites/cacoon.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Confide[] = INCBIN_U32("graphics/battle_anims/sprites/new/confide.4bpp.lz"); -const u32 gBattleAnimSpritePal_Confide[] = INCBIN_U32("graphics/battle_anims/sprites/new/confide.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Confide[] = INCBIN_U32("graphics/battle_anims/sprites/confide.4bpp.lz"); +const u32 gBattleAnimSpritePal_Confide[] = INCBIN_U32("graphics/battle_anims/sprites/confide.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_CraftyShield[] = INCBIN_U32("graphics/battle_anims/sprites/new/crafty_shield.4bpp.lz"); -const u32 gBattleAnimSpritePal_CraftyShield[] = INCBIN_U32("graphics/battle_anims/sprites/new/crafty_shield.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_CraftyShield[] = INCBIN_U32("graphics/battle_anims/sprites/crafty_shield.4bpp.lz"); +const u32 gBattleAnimSpritePal_CraftyShield[] = INCBIN_U32("graphics/battle_anims/sprites/crafty_shield.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewNail[] = INCBIN_U32("graphics/battle_anims/sprites/new/curse_nail.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewNail[] = INCBIN_U32("graphics/battle_anims/sprites/new/curse_nail.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewNail[] = INCBIN_U32("graphics/battle_anims/sprites/curse_nail.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewNail[] = INCBIN_U32("graphics/battle_anims/sprites/curse_nail.gbapal.lz"); -const u32 gBattleAnimSpritePal_DracoMeteor[] = INCBIN_U32("graphics/battle_anims/sprites/new/draco_meteor.gbapal.lz"); +const u32 gBattleAnimSpritePal_DracoMeteor[] = INCBIN_U32("graphics/battle_anims/sprites/draco_meteor.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_DragonPulseRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/dragon_pulse_ring.4bpp.lz"); -const u32 gBattleAnimSpritePal_DragonPulseRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/dragon_pulse_ring.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_DragonPulseRing[] = INCBIN_U32("graphics/battle_anims/sprites/dragon_pulse_ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_DragonPulseRing[] = INCBIN_U32("graphics/battle_anims/sprites/dragon_pulse_ring.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_DreepyMissile[] = INCBIN_U32("graphics/battle_anims/sprites/new/dreepy_missile.4bpp.lz"); -const u32 gBattleAnimSpritePal_DreepyMissile[] = INCBIN_U32("graphics/battle_anims/sprites/new/dreepy_missile.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_DreepyMissile[] = INCBIN_U32("graphics/battle_anims/sprites/dreepy_missile.4bpp.lz"); +const u32 gBattleAnimSpritePal_DreepyMissile[] = INCBIN_U32("graphics/battle_anims/sprites/dreepy_missile.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Drill[] = INCBIN_U32("graphics/battle_anims/sprites/new/drill.4bpp.lz"); -const u32 gBattleAnimSpritePal_Drill[] = INCBIN_U32("graphics/battle_anims/sprites/new/drill.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Drill[] = INCBIN_U32("graphics/battle_anims/sprites/drill.4bpp.lz"); +const u32 gBattleAnimSpritePal_Drill[] = INCBIN_U32("graphics/battle_anims/sprites/drill.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/new/embers.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/new/embers.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/embers.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewEmbers[] = INCBIN_U32("graphics/battle_anims/sprites/embers.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_FairyLockChains[] = INCBIN_U32("graphics/battle_anims/sprites/new/fairy_lock_chains.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_FairyLockChains[] = INCBIN_U32("graphics/battle_anims/sprites/fairy_lock_chains.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/new/fishies.4bpp.lz"); -const u32 gBattleAnimSpritePal_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/new/fishies.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/fishies.4bpp.lz"); +const u32 gBattleAnimSpritePal_Fishies[] = INCBIN_U32("graphics/battle_anims/sprites/fishies.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/new/fly.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/new/fly.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/fly.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewFly[] = INCBIN_U32("graphics/battle_anims/sprites/fly.gbapal.lz"); -const u32 gBattleAnimSpritePal_FusionFlare[] = INCBIN_U32("graphics/battle_anims/sprites/new/fusion_flare.gbapal.lz"); +const u32 gBattleAnimSpritePal_FusionFlare[] = INCBIN_U32("graphics/battle_anims/sprites/fusion_flare.gbapal.lz"); -const u32 gBattleAnimSpritePal_GarbagePoisonPillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/garbage_poison_column.gbapal.lz"); +const u32 gBattleAnimSpritePal_GarbagePoisonPillar[] = INCBIN_U32("graphics/battle_anims/sprites/garbage_poison_column.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Gear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gear.4bpp.lz"); -const u32 gBattleAnimSpritePal_Gear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gear.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Gear[] = INCBIN_U32("graphics/battle_anims/sprites/gear.4bpp.lz"); +const u32 gBattleAnimSpritePal_Gear[] = INCBIN_U32("graphics/battle_anims/sprites/gear.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_GigavoltHavocSpear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gigavolt_havoc_spear.4bpp.lz"); -const u32 gBattleAnimSpritePal_GigavoltHavocSpear[] = INCBIN_U32("graphics/battle_anims/sprites/new/gigavolt_havoc_spear.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GigavoltHavocSpear[] = INCBIN_U32("graphics/battle_anims/sprites/gigavolt_havoc_spear.4bpp.lz"); +const u32 gBattleAnimSpritePal_GigavoltHavocSpear[] = INCBIN_U32("graphics/battle_anims/sprites/gigavolt_havoc_spear.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_GoldenApple[] = INCBIN_U32("graphics/battle_anims/sprites/new/golden_apple.4bpp.lz"); -const u32 gBattleAnimSpritePal_GoldenApple[] = INCBIN_U32("graphics/battle_anims/sprites/new/golden_apple.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_GoldenApple[] = INCBIN_U32("graphics/battle_anims/sprites/golden_apple.4bpp.lz"); +const u32 gBattleAnimSpritePal_GoldenApple[] = INCBIN_U32("graphics/battle_anims/sprites/golden_apple.gbapal.lz"); -const u32 gBattleAnimSpritePal_GreenDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/green_drake.gbapal.lz"); +const u32 gBattleAnimSpritePal_GreenDrake[] = INCBIN_U32("graphics/battle_anims/sprites/green_drake.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewGreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/green_star.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewGreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/green_star.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewGreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewGreenStar[] = INCBIN_U32("graphics/battle_anims/sprites/green_star_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_HeartStamp[] = INCBIN_U32("graphics/battle_anims/sprites/new/heart_stamp.4bpp.lz"); -const u32 gBattleAnimSpritePal_HeartStamp[] = INCBIN_U32("graphics/battle_anims/sprites/new/heart_stamp.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HeartStamp[] = INCBIN_U32("graphics/battle_anims/sprites/heart_stamp.4bpp.lz"); +const u32 gBattleAnimSpritePal_HeartStamp[] = INCBIN_U32("graphics/battle_anims/sprites/heart_stamp.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_ZygardeHexes[] = INCBIN_U32("graphics/battle_anims/sprites/new/hexes.4bpp.lz"); -const u32 gBattleAnimSpritePal_ZygardeHexes[] = INCBIN_U32("graphics/battle_anims/sprites/new/hexes.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ZygardeHexes[] = INCBIN_U32("graphics/battle_anims/sprites/hexes.4bpp.lz"); +const u32 gBattleAnimSpritePal_ZygardeHexes[] = INCBIN_U32("graphics/battle_anims/sprites/hexes.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_HoopaHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_hand.4bpp.lz"); -const u32 gBattleAnimSpritePal_HoopaHand[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_hand.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HoopaHand[] = INCBIN_U32("graphics/battle_anims/sprites/hoopa_hand.4bpp.lz"); +const u32 gBattleAnimSpritePal_HoopaHand[] = INCBIN_U32("graphics/battle_anims/sprites/hoopa_hand.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_HoopaRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_ring.4bpp.lz"); -const u32 gBattleAnimSpritePal_HoopaRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/hoopa_ring.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HoopaRing[] = INCBIN_U32("graphics/battle_anims/sprites/hoopa_ring.4bpp.lz"); +const u32 gBattleAnimSpritePal_HoopaRing[] = INCBIN_U32("graphics/battle_anims/sprites/hoopa_ring.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewHornHit[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewHornHit[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewHornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewHornHit[] = INCBIN_U32("graphics/battle_anims/sprites/horn_hit_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_HornLeech[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn_leech.4bpp.lz"); -const u32 gBattleAnimSpritePal_HornLeech[] = INCBIN_U32("graphics/battle_anims/sprites/new/horn_leech.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HornLeech[] = INCBIN_U32("graphics/battle_anims/sprites/horn_leech.4bpp.lz"); +const u32 gBattleAnimSpritePal_HornLeech[] = INCBIN_U32("graphics/battle_anims/sprites/horn_leech.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_HorseshoeFist[] = INCBIN_U32("graphics/battle_anims/sprites/new/horseshoe_fist.4bpp.lz"); -const u32 gBattleAnimSpritePal_HorseshoeFist[] = INCBIN_U32("graphics/battle_anims/sprites/new/horseshoe_fist.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HorseshoeFist[] = INCBIN_U32("graphics/battle_anims/sprites/horseshoe_fist.4bpp.lz"); +const u32 gBattleAnimSpritePal_HorseshoeFist[] = INCBIN_U32("graphics/battle_anims/sprites/horseshoe_fist.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_HydroPump[] = INCBIN_U32("graphics/battle_anims/sprites/new/hydro_pump.4bpp.lz"); -const u32 gBattleAnimSpritePal_HydroPump[] = INCBIN_U32("graphics/battle_anims/sprites/new/hydro_pump.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_HydroPump[] = INCBIN_U32("graphics/battle_anims/sprites/hydro_pump.4bpp.lz"); +const u32 gBattleAnimSpritePal_HydroPump[] = INCBIN_U32("graphics/battle_anims/sprites/hydro_pump.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_IceRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/ice_rock.4bpp.lz"); -const u32 gBattleAnimSpritePal_IceRock[] = INCBIN_U32("graphics/battle_anims/sprites/new/ice_rock.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_IceRock[] = INCBIN_U32("graphics/battle_anims/sprites/ice_rock.4bpp.lz"); +const u32 gBattleAnimSpritePal_IceRock[] = INCBIN_U32("graphics/battle_anims/sprites/ice_rock.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_LargeSpike[] = INCBIN_U32("graphics/battle_anims/sprites/new/large_spike.4bpp.lz"); -const u32 gBattleAnimSpritePal_LargeSpike[] = INCBIN_U32("graphics/battle_anims/sprites/new/large_spike.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_LargeSpike[] = INCBIN_U32("graphics/battle_anims/sprites/large_spike.4bpp.lz"); +const u32 gBattleAnimSpritePal_LargeSpike[] = INCBIN_U32("graphics/battle_anims/sprites/large_spike.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/new/leaves.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/new/leaves.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaves.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewLeaf[] = INCBIN_U32("graphics/battle_anims/sprites/leaves.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewLeechSeed[] = INCBIN_U32("graphics/battle_anims/sprites/new/leech_seed.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewLeechSeed[] = INCBIN_U32("graphics/battle_anims/sprites/new/leech_seed.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewLeechSeed[] = INCBIN_U32("graphics/battle_anims/sprites/leech_seed.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewLeechSeed[] = INCBIN_U32("graphics/battle_anims/sprites/leech_seed.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_LightningRain[] = INCBIN_U32("graphics/battle_anims/sprites/new/lightning_rain.4bpp.lz"); -const u32 gBattleAnimSpritePal_LightningRain[] = INCBIN_U32("graphics/battle_anims/sprites/new/lightning_rain.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_LightningRain[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_rain.4bpp.lz"); +const u32 gBattleAnimSpritePal_LightningRain[] = INCBIN_U32("graphics/battle_anims/sprites/lightning_rain.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/new/mean_look.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/new/mean_look.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/mean_look.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewEye[] = INCBIN_U32("graphics/battle_anims/sprites/mean_look.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_MetalBits[] = INCBIN_U32("graphics/battle_anims/sprites/new/metal_bits.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_MetalBits[] = INCBIN_U32("graphics/battle_anims/sprites/metal_bits.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_MudBomb[] = INCBIN_U32("graphics/battle_anims/sprites/new/mud_bomb.4bpp.lz"); -const u32 gBattleAnimSpritePal_MudBomb[] = INCBIN_U32("graphics/battle_anims/sprites/new/mud_bomb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_MudBomb[] = INCBIN_U32("graphics/battle_anims/sprites/mud_bomb.4bpp.lz"); +const u32 gBattleAnimSpritePal_MudBomb[] = INCBIN_U32("graphics/battle_anims/sprites/mud_bomb.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Mushroom[] = INCBIN_U32("graphics/battle_anims/sprites/new/mushroom.4bpp.lz"); -const u32 gBattleAnimSpritePal_Mushroom[] = INCBIN_U32("graphics/battle_anims/sprites/new/mushroom.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Mushroom[] = INCBIN_U32("graphics/battle_anims/sprites/mushroom.4bpp.lz"); +const u32 gBattleAnimSpritePal_Mushroom[] = INCBIN_U32("graphics/battle_anims/sprites/mushroom.gbapal.lz"); -const u32 gBattleAnimSpritePal_NaturalGiftRing[] = INCBIN_U32("graphics/battle_anims/sprites/new/natural_gift_ring.gbapal.lz"); +const u32 gBattleAnimSpritePal_NaturalGiftRing[] = INCBIN_U32("graphics/battle_anims/sprites/natural_gift_ring.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NecrozmaStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/necrozma_star.4bpp.lz"); -const u32 gBattleAnimSpritePal_NecrozmaStar[] = INCBIN_U32("graphics/battle_anims/sprites/new/necrozma_star.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NecrozmaStar[] = INCBIN_U32("graphics/battle_anims/sprites/necrozma_star.4bpp.lz"); +const u32 gBattleAnimSpritePal_NecrozmaStar[] = INCBIN_U32("graphics/battle_anims/sprites/necrozma_star.gbapal.lz"); -const u32 gBattleAnimSpritePal_NewImpact[] = INCBIN_U32("graphics/battle_anims/sprites/new/impact.gbapal.lz"); +const u32 gBattleAnimSpritePal_NewImpact[] = INCBIN_U32("graphics/battle_anims/sprites/impact_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Obstruct[] = INCBIN_U32("graphics/battle_anims/sprites/new/obstruct.4bpp.lz"); -const u32 gBattleAnimSpritePal_Obstruct[] = INCBIN_U32("graphics/battle_anims/sprites/new/obstruct.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Obstruct[] = INCBIN_U32("graphics/battle_anims/sprites/obstruct.4bpp.lz"); +const u32 gBattleAnimSpritePal_Obstruct[] = INCBIN_U32("graphics/battle_anims/sprites/obstruct.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_OmegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/omega_stone.4bpp.lz"); -const u32 gBattleAnimSpritePal_OmegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/new/omega_stone.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_OmegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/omega_stone.4bpp.lz"); +const u32 gBattleAnimSpritePal_OmegaStone[] = INCBIN_U32("graphics/battle_anims/sprites/omega_stone.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_PinkDiamond[] = INCBIN_U32("graphics/battle_anims/sprites/new/pink_diamond.4bpp.lz"); -const u32 gBattleAnimSpritePal_PinkDiamond[] = INCBIN_U32("graphics/battle_anims/sprites/new/pink_diamond.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PinkDiamond[] = INCBIN_U32("graphics/battle_anims/sprites/pink_diamond.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkDiamond[] = INCBIN_U32("graphics/battle_anims/sprites/pink_diamond.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_column.4bpp.lz"); -const u32 gBattleAnimSpritePal_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/new/poison_column.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/poison_column.4bpp.lz"); +const u32 gBattleAnimSpritePal_PoisonColumn[] = INCBIN_U32("graphics/battle_anims/sprites/poison_column.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_trick.4bpp.lz"); -const u32 gBattleAnimSpritePal_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/new/power_trick.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/power_trick.4bpp.lz"); +const u32 gBattleAnimSpritePal_PowerTrick[] = INCBIN_U32("graphics/battle_anims/sprites/power_trick.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/purple_drake.4bpp.lz"); -const u32 gBattleAnimSpritePal_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/new/purple_drake.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/purple_drake.4bpp.lz"); +const u32 gBattleAnimSpritePal_PurpleDrake[] = INCBIN_U32("graphics/battle_anims/sprites/purple_drake.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/new/razor_shell.4bpp.lz"); -const u32 gBattleAnimSpritePal_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/new/razor_shell.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/razor_shell.4bpp.lz"); +const u32 gBattleAnimSpritePal_RazorShell[] = INCBIN_U32("graphics/battle_anims/sprites/razor_shell.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_RocksSmall[] = INCBIN_U32("graphics/battle_anims/sprites/new/rock_small.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_RocksSmall[] = INCBIN_U32("graphics/battle_anims/sprites/rock_small.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_NewRocks[] = INCBIN_U32("graphics/battle_anims/sprites/new/rocks.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewRocks[] = INCBIN_U32("graphics/battle_anims/sprites/new/rocks.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewRocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewRocks[] = INCBIN_U32("graphics/battle_anims/sprites/rocks_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_ShellLeft[] = INCBIN_U32("graphics/battle_anims/sprites/new/shell_left.4bpp.lz"); -const u32 gBattleAnimSpritePal_ShellLeft[] = INCBIN_U32("graphics/battle_anims/sprites/new/shell_left.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_ShellLeft[] = INCBIN_U32("graphics/battle_anims/sprites/shell_left.4bpp.lz"); +const u32 gBattleAnimSpritePal_ShellLeft[] = INCBIN_U32("graphics/battle_anims/sprites/shell_left.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_ShellRight[] = INCBIN_U32("graphics/battle_anims/sprites/new/shell_right.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_ShellRight[] = INCBIN_U32("graphics/battle_anims/sprites/shell_right.4bpp.lz"); -const u32 gBattleAnimSpritePal_SpacialRendSlices[] = INCBIN_U32("graphics/battle_anims/sprites/new/spacial_rend_slices.gbapal.lz"); +const u32 gBattleAnimSpritePal_SpacialRendSlices[] = INCBIN_U32("graphics/battle_anims/sprites/spacial_rend_slices.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/new/spikes.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/new/spikes.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewSpikes[] = INCBIN_U32("graphics/battle_anims/sprites/spikes_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/new/spirit_shackle_arrow.4bpp.lz"); -const u32 gBattleAnimSpritePal_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/new/spirit_shackle_arrow.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/spirit_shackle_arrow.4bpp.lz"); +const u32 gBattleAnimSpritePal_SpiritShackleArrow[] = INCBIN_U32("graphics/battle_anims/sprites/spirit_shackle_arrow.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/new/steam_eruption.4bpp.lz"); -const u32 gBattleAnimSpritePal_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/new/steam_eruption.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/steam_eruption.4bpp.lz"); +const u32 gBattleAnimSpritePal_SteamEruption[] = INCBIN_U32("graphics/battle_anims/sprites/steam_eruption.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/new/steamroller.4bpp.lz"); -const u32 gBattleAnimSpritePal_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/new/steamroller.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/steamroller.4bpp.lz"); +const u32 gBattleAnimSpritePal_Steamroller[] = INCBIN_U32("graphics/battle_anims/sprites/steamroller.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_pillar.4bpp.lz"); -const u32 gBattleAnimSpritePal_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/new/stone_pillar.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/stone_pillar.4bpp.lz"); +const u32 gBattleAnimSpritePal_StonePillar[] = INCBIN_U32("graphics/battle_anims/sprites/stone_pillar.gbapal.lz"); -const u32 gBattleAnimSpritePal_Poltergeist[] = INCBIN_U32("graphics/battle_anims/sprites/new/poltergeist.gbapal.lz"); +const u32 gBattleAnimSpritePal_Poltergeist[] = INCBIN_U32("graphics/battle_anims/sprites/poltergeist.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_StraightBeam[] = INCBIN_U32("graphics/battle_anims/sprites/new/straight_beam.4bpp.lz"); -const u32 gBattleAnimSpritePal_StraightBeam[] = INCBIN_U32("graphics/battle_anims/sprites/new/straight_beam.gbapal.lz"); +const u32 gBattleAnimSpritePal_SteelBeam[] = INCBIN_U32("graphics/battle_anims/sprites/steel_beam.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_SubstituteBack[] = INCBIN_U32("graphics/battle_anims/sprites/new/substitute_back.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_NewSubstituteFront[] = INCBIN_U32("graphics/battle_anims/sprites/new/substitute_front.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewSubstituteFront[] = INCBIN_U32("graphics/battle_anims/sprites/new/substitute_front.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_StraightBeam[] = INCBIN_U32("graphics/battle_anims/sprites/straight_beam.4bpp.lz"); +const u32 gBattleAnimSpritePal_StraightBeam[] = INCBIN_U32("graphics/battle_anims/sprites/straight_beam.gbapal.lz"); -const u32 gBattleAnimSpritePal_NewSurf[] = INCBIN_U32("graphics/battle_anims/sprites/new/surf_new.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SubstituteBack[] = INCBIN_U32("graphics/battle_anims/sprites/substitute_back_new.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_NewSubstituteFront[] = INCBIN_U32("graphics/battle_anims/sprites/substitute_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewSubstituteFront[] = INCBIN_U32("graphics/battle_anims/sprites/substitute_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewSword[] = INCBIN_U32("graphics/battle_anims/sprites/new/sword.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewSword[] = INCBIN_U32("graphics/battle_anims/sprites/new/sword.gbapal.lz"); +const u32 gBattleAnimSpritePal_NewSurf[] = INCBIN_U32("graphics/battle_anims/sprites/surf_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/new/teeth.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/new/teeth.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewSword[] = INCBIN_U32("graphics/battle_anims/sprites/sword_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewSword[] = INCBIN_U32("graphics/battle_anims/sprites/sword_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_NewHandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/new/thrash.4bpp.lz"); -const u32 gBattleAnimSpritePal_NewHandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/new/thrash.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewTeeth[] = INCBIN_U32("graphics/battle_anims/sprites/teeth_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/new/tornado.4bpp.lz"); -const u32 gBattleAnimSpritePal_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/new/tornado.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_NewHandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet_new.4bpp.lz"); +const u32 gBattleAnimSpritePal_NewHandsAndFeet[] = INCBIN_U32("graphics/battle_anims/sprites/hands_and_feet_new.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/z_move_symbol.4bpp.lz"); -const u32 gBattleAnimSpritePal_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/new/z_move_symbol.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/tornado.4bpp.lz"); +const u32 gBattleAnimSpritePal_Tornado[] = INCBIN_U32("graphics/battle_anims/sprites/tornado.gbapal.lz"); + +const u32 gBattleAnimSpriteGfx_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/z_move_symbol.4bpp.lz"); +const u32 gBattleAnimSpritePal_ZMoveSymbol[] = INCBIN_U32("graphics/battle_anims/sprites/z_move_symbol.gbapal.lz"); // Battle anims @@ -1284,8 +1286,8 @@ const u32 gDomeTourneyTree_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney. const u32 gDomeTourneyTreeButtons_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_buttons.gbapal.lz"); const u32 gDomeTourneyMatchCardBg_Pal[] = INCBIN_U32("graphics/battle_frontier/tourney_match_card_bg.gbapal.lz"); -const u32 gBattleArenaJudgementSymbolsGfx[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.4bpp.lz"); -const u32 gBattleArenaJudgementSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgement_symbols.gbapal.lz"); +const u32 gBattleArenaJudgmentSymbolsGfx[] = INCBIN_U32("graphics/battle_frontier/arena_judgment_symbols.4bpp.lz"); +const u32 gBattleArenaJudgmentSymbolsPalette[] = INCBIN_U32("graphics/battle_frontier/arena_judgment_symbols.gbapal.lz"); const u32 gBattleWindowTextPalette[] = INCBIN_U32("graphics/battle_interface/text.gbapal.lz"); const u16 gPPTextPalette[] = INCBIN_U16("graphics/battle_interface/text_pp.gbapal"); @@ -1379,172 +1381,171 @@ const u32 gBattleAnimBgPalette_MagmaStorm[] = INCBIN_U32("graphics/battle_anims/ //new battle bgs -const u32 gBattleAnimBgImage_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hurricane.4bpp.lz"); -const u32 gBattleAnimBgPalette_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hurricane.gbapal.lz"); -const u32 gBattleAnimBgTilemap_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hurricane.bin.lz"); +const u32 gBattleAnimBgImage_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/hurricane.4bpp.lz"); +const u32 gBattleAnimBgPalette_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/hurricane.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/hurricane.bin.lz"); -const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.gbapal.lz"); +const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker.gbapal.lz"); -const u32 gBattleAnimBgTilemap_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.bin.lz"); -const u32 gBattleAnimBgTilemap_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin.lz"); -const u32 gBattleAnimBgTilemap_GigaImpactContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_contest.bin.lz"); -const u32 gBattleAnimBgImage_GigaImpact[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact.4bpp.lz"); -const u32 gBattleAnimBgPalette_GigaImpact[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact.gbapal.lz"); +const u32 gBattleAnimBgTilemap_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact_player.bin.lz"); +const u32 gBattleAnimBgTilemap_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact_opponent.bin.lz"); +const u32 gBattleAnimBgTilemap_GigaImpactContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact_contest.bin.lz"); +const u32 gBattleAnimBgImage_GigaImpact[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact.4bpp.lz"); +const u32 gBattleAnimBgPalette_GigaImpact[] = INCBIN_U32("graphics/battle_anims/backgrounds/giga_impact.gbapal.lz"); -const u32 gBattleAnimBgImage_SpacialRend[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend.4bpp.lz"); -const u32 gBattleAnimBgPalette_SpacialRend[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend.gbapal.lz"); +const u32 gBattleAnimBgImage_SpacialRend[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend.4bpp.lz"); +const u32 gBattleAnimBgPalette_SpacialRend[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend.gbapal.lz"); -const u32 gBattleAnimBgPalette_SludgeWave[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sludge_wave.gbapal.lz"); +const u32 gBattleAnimBgPalette_SludgeWave[] = INCBIN_U32("graphics/battle_anims/backgrounds/sludge_wave.gbapal.lz"); -const u32 gBattleAnimBgImage_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast_tiles.4bpp.lz"); -const u32 gBattleAnimBgPalette_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast.gbapal.lz"); -const u32 gBattleAnimBgTilemap_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast_map.bin.lz"); +const u32 gBattleAnimBgImage_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/aeroblast_tiles.4bpp.lz"); +const u32 gBattleAnimBgPalette_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/aeroblast.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/aeroblast_map.bin.lz"); -const u32 gBattleAnimBgPalette_AuraSphere[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aura_sphere.gbapal.lz"); +const u32 gBattleAnimBgPalette_AuraSphere[] = INCBIN_U32("graphics/battle_anims/backgrounds/aura_sphere.gbapal.lz"); -const u32 gBattleAnimBgImage_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.4bpp.lz"); -const u32 gBattleAnimBgPalette_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.gbapal.lz"); -const u32 gBattleAnimBgTilemap_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin.lz"); +const u32 gBattleAnimBgImage_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/blackhole_eclipse.4bpp.lz"); +const u32 gBattleAnimBgPalette_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/blackhole_eclipse.gbapal.lz"); +const u32 gBattleAnimBgTilemap_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/blackhole_eclipse.bin.lz"); -const u32 gBattleAnimBgImage_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.4bpp.lz"); -const u32 gBattleAnimBgPalette_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.gbapal.lz"); -const u32 gBattleAnimBgTilemap_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.bin.lz"); +const u32 gBattleAnimBgImage_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/bloom_doom.4bpp.lz"); +const u32 gBattleAnimBgPalette_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/bloom_doom.gbapal.lz"); +const u32 gBattleAnimBgTilemap_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/bloom_doom.bin.lz"); -const u32 gBattleAnimBgImage_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.4bpp.lz"); -const u32 gBattleAnimBgPalette_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.gbapal.lz"); -const u32 gBattleAnimBgTilemap_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.bin.lz"); +const u32 gBattleAnimBgImage_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/bolt_strike.4bpp.lz"); +const u32 gBattleAnimBgPalette_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/bolt_strike.gbapal.lz"); +const u32 gBattleAnimBgTilemap_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/bolt_strike.bin.lz"); -const u32 gBattleAnimBgImage_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.4bpp.lz"); -const u32 gBattleAnimBgPalette_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.gbapal.lz"); -const u32 gBattleAnimBgTilemap_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin.lz"); +const u32 gBattleAnimBgImage_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/clangorous_soulblaze.4bpp.lz"); +const u32 gBattleAnimBgPalette_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/clangorous_soulblaze.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/clangorous_soulblaze.bin.lz"); -const u32 gBattleAnimBgPalette_DynamaxCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dynamax_cannon.gbapal.lz"); +const u32 gBattleAnimBgPalette_DynamaxCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/dynamax_cannon.gbapal.lz"); -const u32 gBattleAnimBgImage_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.4bpp.lz"); -const u32 gBattleAnimBgPalette_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.gbapal.lz"); -const u32 gBattleAnimBgTilemap_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.bin.lz"); +const u32 gBattleAnimBgImage_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/electric_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/electric_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/electric_terrain.bin.lz"); -const u32 gBattleAnimBgImage_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.4bpp.lz"); -const u32 gBattleAnimBgPalette_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.gbapal.lz"); -const u32 gBattleAnimBgTilemap_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.bin.lz"); +const u32 gBattleAnimBgImage_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/fire1.4bpp.lz"); +const u32 gBattleAnimBgPalette_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/fire1.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/fire1.bin.lz"); -const u32 gBattleAnimBgPalette_Fire2[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire2.gbapal.lz"); +const u32 gBattleAnimBgPalette_Fire2[] = INCBIN_U32("graphics/battle_anims/backgrounds/fire2.gbapal.lz"); -const u32 gBattleAnimBgImage_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.4bpp.lz"); -const u32 gBattleAnimBgPalette_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.gbapal.lz"); -const u32 gBattleAnimBgTilemap_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.bin.lz"); +const u32 gBattleAnimBgImage_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/focus_blast.4bpp.lz"); +const u32 gBattleAnimBgPalette_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/focus_blast.gbapal.lz"); +const u32 gBattleAnimBgTilemap_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/focus_blast.bin.lz"); -const u32 gBattleAnimBgPalette_GarbageFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/garbage_falls.gbapal.lz"); +const u32 gBattleAnimBgPalette_GarbageFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/garbage_falls.gbapal.lz"); -const u32 gBattleAnimBgImage_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.4bpp.lz"); -const u32 gBattleAnimBgPalette_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.gbapal.lz"); -const u32 gBattleAnimBgTilemap_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.bin.lz"); +const u32 gBattleAnimBgImage_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/grassy_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/grassy_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/grassy_terrain.bin.lz"); -const u32 gBattleAnimBgPalette_GunkShot[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/gunk_shot.gbapal.lz"); +const u32 gBattleAnimBgPalette_GunkShot[] = INCBIN_U32("graphics/battle_anims/backgrounds/gunk_shot.gbapal.lz"); -const u32 gBattleAnimBgImage_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.4bpp.lz"); -const u32 gBattleAnimBgPalette_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.gbapal.lz"); -const u32 gBattleAnimBgTilemap_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.bin.lz"); +const u32 gBattleAnimBgImage_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/hydro_cannon.4bpp.lz"); +const u32 gBattleAnimBgPalette_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/hydro_cannon.gbapal.lz"); +const u32 gBattleAnimBgTilemap_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/hydro_cannon.bin.lz"); -const u32 gBattleAnimBgImage_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.4bpp.lz"); -const u32 gBattleAnimBgPalette_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.gbapal.lz"); -const u32 gBattleAnimBgTilemap_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.bin.lz"); +const u32 gBattleAnimBgImage_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/hydro_pump.4bpp.lz"); +const u32 gBattleAnimBgPalette_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/hydro_pump.gbapal.lz"); +const u32 gBattleAnimBgTilemap_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/hydro_pump.bin.lz"); -const u32 gBattleAnimBgPalette_HyperBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hyper_beam.gbapal.lz"); +const u32 gBattleAnimBgPalette_HyperBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/hyper_beam.gbapal.lz"); -const u32 gBattleAnimBgPalette_HyperspaceFury[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hyperspace_fury.gbapal.lz"); +const u32 gBattleAnimBgPalette_HyperspaceFury[] = INCBIN_U32("graphics/battle_anims/backgrounds/hyperspace_fury.gbapal.lz"); -const u32 gBattleAnimBgImage_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.4bpp.lz"); -const u32 gBattleAnimBgPalette_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.gbapal.lz"); -const u32 gBattleAnimBgTilemap_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.bin.lz"); +const u32 gBattleAnimBgImage_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/inferno_overdrive.4bpp.lz"); +const u32 gBattleAnimBgPalette_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/inferno_overdrive.gbapal.lz"); +const u32 gBattleAnimBgTilemap_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/inferno_overdrive.bin.lz"); -const u32 gBattleAnimBgImage_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.4bpp.lz"); -const u32 gBattleAnimBgPalette_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.gbapal.lz"); -const u32 gBattleAnimBgTilemap_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.bin.lz"); +const u32 gBattleAnimBgImage_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/leaf_storm.4bpp.lz"); +const u32 gBattleAnimBgPalette_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/leaf_storm.gbapal.lz"); +const u32 gBattleAnimBgTilemap_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/leaf_storm.bin.lz"); -const u32 gBattleAnimBgImage_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.4bpp.lz"); -const u32 gBattleAnimBgPalette_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.gbapal.lz"); -const u32 gBattleAnimBgTilemap_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.bin.lz"); +const u32 gBattleAnimBgImage_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/malicious_moonsault.4bpp.lz"); +const u32 gBattleAnimBgPalette_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/malicious_moonsault.gbapal.lz"); +const u32 gBattleAnimBgTilemap_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/malicious_moonsault.bin.lz"); -const u32 gBattleAnimBgImage_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.4bpp.lz"); -const u32 gBattleAnimBgPalette_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.gbapal.lz"); -const u32 gBattleAnimBgTilemap_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.bin.lz"); +const u32 gBattleAnimBgImage_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/max_lightning.4bpp.lz"); +const u32 gBattleAnimBgPalette_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/max_lightning.gbapal.lz"); +const u32 gBattleAnimBgTilemap_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/max_lightning.bin.lz"); -const u32 gBattleAnimBgImage_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.4bpp.lz"); -const u32 gBattleAnimBgPalette_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.gbapal.lz"); -const u32 gBattleAnimBgTilemap_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.bin.lz"); +const u32 gBattleAnimBgImage_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/misty_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/misty_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/misty_terrain.bin.lz"); -const u32 gBattleAnimBgImage_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.4bpp.lz"); -const u32 gBattleAnimBgPalette_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.gbapal.lz"); -const u32 gBattleAnimBgTilemap_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.bin.lz"); +const u32 gBattleAnimBgImage_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/neverending_nightmare.4bpp.lz"); +const u32 gBattleAnimBgPalette_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/neverending_nightmare.gbapal.lz"); +const u32 gBattleAnimBgTilemap_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/neverending_nightmare.bin.lz"); -const u32 gBattleAnimBgImage_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.4bpp.lz"); -const u32 gBattleAnimBgPalette_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.gbapal.lz"); -const u32 gBattleAnimBgTilemap_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.bin.lz"); +const u32 gBattleAnimBgImage_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/nightmare.4bpp.lz"); +const u32 gBattleAnimBgPalette_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/nightmare.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/nightmare.bin.lz"); -const u32 gBattleAnimBgPalette_PoisonFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/poison_falls.gbapal.lz"); +const u32 gBattleAnimBgPalette_PoisonFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/poison_falls.gbapal.lz"); -const u32 gBattleAnimBgPalette_PsychicNew[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic.gbapal.lz"); +const u32 gBattleAnimBgPalette_PsychicNew[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic_new.gbapal.lz"); -const u32 gBattleAnimBgImage_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.4bpp.lz"); -const u32 gBattleAnimBgPalette_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.gbapal.lz"); -const u32 gBattleAnimBgTilemap_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.bin.lz"); +const u32 gBattleAnimBgImage_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic_terrain.4bpp.lz"); +const u32 gBattleAnimBgPalette_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic_terrain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/psychic_terrain.bin.lz"); -const u32 gBattleAnimBgImage_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.4bpp.lz"); -const u32 gBattleAnimBgPalette_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.gbapal.lz"); -const u32 gBattleAnimBgTilemap_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.bin.lz"); +const u32 gBattleAnimBgImage_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/shattered_psyche.4bpp.lz"); +const u32 gBattleAnimBgPalette_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/shattered_psyche.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/shattered_psyche.bin.lz"); -const u32 gBattleAnimBgImage_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.4bpp.lz"); -const u32 gBattleAnimBgPalette_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.gbapal.lz"); -const u32 gBattleAnimBgTilemap_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.bin.lz"); +const u32 gBattleAnimBgImage_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_day.4bpp.lz"); +const u32 gBattleAnimBgPalette_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_day.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_day.bin.lz"); -const u32 gBattleAnimBgPalette_SkyAfternoon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_afternoon.gbapal.lz"); +const u32 gBattleAnimBgPalette_SkyAfternoon[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_afternoon.gbapal.lz"); -const u32 gBattleAnimBgPalette_SkyNight[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_night.gbapal.lz"); +const u32 gBattleAnimBgPalette_SkyNight[] = INCBIN_U32("graphics/battle_anims/backgrounds/sky_night.gbapal.lz"); -const u32 gBattleAnimBgImage_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.4bpp.lz"); -const u32 gBattleAnimBgPalette_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.gbapal.lz"); -const u32 gBattleAnimBgTilemap_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.bin.lz"); +const u32 gBattleAnimBgImage_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/snuggle_forever.4bpp.lz"); +const u32 gBattleAnimBgPalette_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/snuggle_forever.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/snuggle_forever.bin.lz"); -const u32 gBattleAnimBgImage_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.4bpp.lz"); -const u32 gBattleAnimBgPalette_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.gbapal.lz"); -const u32 gBattleAnimBgTilemap_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.bin.lz"); +const u32 gBattleAnimBgImage_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/soulstealing_7star_strike.4bpp.lz"); +const u32 gBattleAnimBgPalette_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/soulstealing_7star_strike.gbapal.lz"); +const u32 gBattleAnimBgTilemap_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/soulstealing_7star_strike.bin.lz"); -const u32 gBattleAnimBgPalette_TectonicRage[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/tectonic_rage.gbapal.lz"); +const u32 gBattleAnimBgPalette_TectonicRage[] = INCBIN_U32("graphics/battle_anims/backgrounds/tectonic_rage.gbapal.lz"); -const u32 gBattleAnimBgImage_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.4bpp.lz"); -const u32 gBattleAnimBgPalette_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.gbapal.lz"); -const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.bin.lz"); +const u32 gBattleAnimBgImage_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.4bpp.lz"); +const u32 gBattleAnimBgPalette_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.gbapal.lz"); +const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.bin.lz"); -const u32 gBattleAnimBgPalette_MagicRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/magic_room.gbapal.lz"); +const u32 gBattleAnimBgPalette_MagicRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/magic_room.gbapal.lz"); -const u32 gBattleAnimBgPalette_WonderRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/wonder_room.gbapal.lz"); +const u32 gBattleAnimBgPalette_WonderRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/wonder_room.gbapal.lz"); -const u32 gBattleAnimBgImage_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.4bpp.lz"); -const u32 gBattleAnimBgPalette_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.gbapal.lz"); -const u32 gBattleAnimBgTilemap_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.bin.lz"); +const u32 gBattleAnimBgImage_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/twinkle_tackle.4bpp.lz"); +const u32 gBattleAnimBgPalette_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/twinkle_tackle.gbapal.lz"); +const u32 gBattleAnimBgTilemap_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/twinkle_tackle.bin.lz"); -const u32 gBattleAnimBgImage_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.4bpp.lz"); -const u32 gBattleAnimBgPalette_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.gbapal.lz"); -const u32 gBattleAnimBgTilemap_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.bin.lz"); +const u32 gBattleAnimBgImage_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_pulse.4bpp.lz"); +const u32 gBattleAnimBgPalette_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_pulse.gbapal.lz"); +const u32 gBattleAnimBgTilemap_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_pulse.bin.lz"); -const u32 gBattleAnimBgImage_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.4bpp.lz"); -const u32 gBattleAnimBgPalette_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.gbapal.lz"); -const u32 gBattleAnimBgTilemap_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.bin.lz"); +const u32 gBattleAnimBgImage_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/waterfall.4bpp.lz"); +const u32 gBattleAnimBgPalette_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/waterfall.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/waterfall.bin.lz"); -const u32 gBattleAnimBgPalette_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.gbapal.lz"); -const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.bin.lz"); +const u32 gBattleAnimBgPalette_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.gbapal.lz"); +const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.bin.lz"); -const u32 gBattleAnimBgImage_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.4bpp.lz"); -const u32 gBattleAnimBgPalette_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.gbapal.lz"); -const u32 gBattleAnimBgTilemap_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.bin.lz"); +const u32 gBattleAnimBgImage_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/zmove_activate.4bpp.lz"); +const u32 gBattleAnimBgPalette_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/zmove_activate.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/zmove_activate.bin.lz"); -const u32 gBattleAnimBgImage_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.4bpp.lz"); -const u32 gBattleAnimBgPalette_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.gbapal.lz"); -const u32 gBattleAnimBgTilemap_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.bin.lz"); +const u32 gBattleAnimBgImage_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/zmove_mountain.4bpp.lz"); +const u32 gBattleAnimBgPalette_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/zmove_mountain.gbapal.lz"); +const u32 gBattleAnimBgTilemap_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/zmove_mountain.bin.lz"); -const u32 gBattleAnimSpritePal_SteelBeam[] = INCBIN_U32("graphics/battle_anims/sprites/new/steel_beam.gbapal.lz"); -const u32 gBattleAnimBgPalette_SteelBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/steel_beam_bg.gbapal.lz"); +const u32 gBattleAnimBgPalette_SteelBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/steel_beam.gbapal.lz"); // misc const u32 gBerryBlenderCenter_Gfx[] = INCBIN_U32("graphics/berry_blender/center.8bpp.lz"); @@ -2033,12 +2034,3 @@ const u16 gFrontierPassCancelButtonHighlighted_Tilemap[] = INCBIN_U16("graphics/ const u16 gBerryCrush_Crusher_Pal[] = INCBIN_U16("graphics/berry_crush/crusher.gbapal"); const u32 gBerryCrush_Crusher_Gfx[] = INCBIN_U32("graphics/berry_crush/crusher.4bpp.lz"); const u32 gBerryCrush_TextWindows_Tilemap[] = INCBIN_U32("graphics/berry_crush/text_windows.bin.lz"); - -// random garbage at the end. -static const u8 sEmpty3[0x54BAC] = {0}; -static const u8 sUnused1[] = {0x0D, 0x00, 0x58, 0x02}; -static const u8 sEmpty4[0x1145] = {0}; -static const u8 sUnused2[] = {0x02}; -static const u8 sEmpty5[0x3242] = {0}; -static const u8 sUnused3[] = {0x40}; -static const u8 sEmpty6[0x13] = {0}; diff --git a/src/intro.c b/src/intro.c index 7e9a75169..b06789142 100644 --- a/src/intro.c +++ b/src/intro.c @@ -2933,7 +2933,7 @@ static void SpriteCB_WaterDrop_ReachLeafEnd(struct Sprite *sprite) SetOamMatrix(sprite->data[1], sprite->data[6] + 64, 0, 0, sprite->data[6] + 64); SetOamMatrix(sprite->data[1] + 1, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64); SetOamMatrix(sprite->data[1] + 2, sprite->data[6] + 64, 0, 0, sprite->data[6] + 64); - if (sprite->data[4] != 64) + if (sprite->data[4] != MAX_SPRITES) { u16 sinIdx; sprite->data[4] -= 8; diff --git a/src/item.c b/src/item.c index c9f8de2b5..f93e7adad 100644 --- a/src/item.c +++ b/src/item.c @@ -740,11 +740,11 @@ bool8 AddPyramidBagItem(u16 itemId, u16 count) u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; u8 *quantities = gSaveBlock2Ptr->frontier.pyramidBag.quantity[gSaveBlock2Ptr->frontier.lvlMode]; - u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems)); + u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities)); - memcpy(newItems, items, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - memcpy(newQuantities, quantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + memcpy(newItems, items, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems)); + memcpy(newQuantities, quantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities)); for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { @@ -792,8 +792,8 @@ bool8 AddPyramidBagItem(u16 itemId, u16 count) if (count == 0) { - memcpy(items, newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - memcpy(quantities, newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + memcpy(items, newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(*items)); + memcpy(quantities, newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(*quantities)); Free(newItems); Free(newQuantities); return TRUE; @@ -823,11 +823,11 @@ bool8 RemovePyramidBagItem(u16 itemId, u16 count) } else { - u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + u16 *newItems = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems)); + u8 *newQuantities = Alloc(PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities)); - memcpy(newItems, items, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - memcpy(newQuantities, quantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + memcpy(newItems, items, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newItems)); + memcpy(newQuantities, quantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(*newQuantities)); for (i = 0; i < PYRAMID_BAG_ITEMS_COUNT; i++) { @@ -854,8 +854,8 @@ bool8 RemovePyramidBagItem(u16 itemId, u16 count) if (count == 0) { - memcpy(items, newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(u16)); - memcpy(quantities, newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(u8)); + memcpy(items, newItems, PYRAMID_BAG_ITEMS_COUNT * sizeof(*items)); + memcpy(quantities, newQuantities, PYRAMID_BAG_ITEMS_COUNT * sizeof(*quantities)); Free(newItems); Free(newQuantities); return TRUE; diff --git a/src/item_use.c b/src/item_use.c index 7cc4bb32d..bcc869c7a 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -922,6 +922,9 @@ static void ItemUseOnFieldCB_EscapeRope(u8 taskId) Overworld_ResetStateAfterDigEscRope(); #if I_KEY_ESCAPE_ROPE < GEN_8 RemoveUsedItem(); + #else + CopyItemName(gSpecialVar_ItemId, gStringVar2); + StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2); #endif gTasks[taskId].data[0] = 0; DisplayItemMessageOnField(taskId, gStringVar4, Task_UseDigEscapeRopeOnField); @@ -1000,14 +1003,14 @@ void ItemUseInBattle_PokeBall(u8 taskId) else DisplayItemMessageInBattlePyramid(taskId, gText_BoxFull, Task_CloseBattlePyramidBagMessage); break; - #if B_SEMI_INVULNERABLE_CATCH >= GEN_4 +#if B_SEMI_INVULNERABLE_CATCH >= GEN_4 case BALL_THROW_UNABLE_SEMI_INVULNERABLE: if (!InBattlePyramid()) DisplayItemMessage(taskId, FONT_NORMAL, sText_CantThrowPokeBall_SemiInvulnerable, CloseItemMessage); else DisplayItemMessageInBattlePyramid(taskId, sText_CantThrowPokeBall_SemiInvulnerable, Task_CloseBattlePyramidBagMessage); break; - #endif +#endif } } diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 42c80b5ee..d844b8225 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -24,6 +24,7 @@ #include "trig.h" #include "window.h" #include "constants/songs.h" +#include "constants/battle_move_effects.h" #include "gba/io_reg.h" extern const struct CompressedSpriteSheet gMonFrontPicTable[]; @@ -807,7 +808,11 @@ static void MoveRelearnerLoadBattleMoveDescription(u32 chosenMove) } AddTextPrinterParameterized(0, FONT_NORMAL, str, 0x6A, 0x29, TEXT_SKIP_DRAW, NULL); - str = gMoveDescriptionPointers[chosenMove - 1]; + if (move->effect != EFFECT_PLACEHOLDER) + str = gMoveDescriptionPointers[chosenMove - 1]; + else + str = gNotDoneYetDescription; + AddTextPrinterParameterized(0, FONT_NARROW, str, 0, 0x41, 0, NULL); } @@ -1075,7 +1080,7 @@ void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, u32 trainerId = GetBoxOrPartyMonData(boxId, monId, MON_DATA_OT_ID, NULL); u32 personality = GetBoxOrPartyMonData(boxId, monId, MON_DATA_PERSONALITY, NULL); - LoadSpecialPokePic(&gMonFrontPicTable[species], tilesDst, species, personality, TRUE); + LoadSpecialPokePic(tilesDst, species, personality, TRUE); LZ77UnCompWram(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), palDst); } } diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 69c2e8154..37096619d 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -201,7 +201,8 @@ static const struct OamData sOamData_CeilingCrumbleSmall = .affineParam = 0, }; -static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleSmall = { +static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleSmall = +{ .tileTag = TAG_CEILING_CRUMBLE, .paletteTag = TAG_NONE, .oam = &sOamData_CeilingCrumbleSmall, @@ -239,7 +240,8 @@ static const struct OamData sOamData_CeilingCrumbleLarge = .affineParam = 0, }; -static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleLarge = { +static const struct SpriteTemplate sSpriteTemplate_CeilingCrumbleLarge = +{ .tileTag = TAG_CEILING_CRUMBLE, .paletteTag = TAG_NONE, .oam = &sOamData_CeilingCrumbleLarge, diff --git a/src/mystery_gift_view.c b/src/mystery_gift_view.c index 41a9351d5..102ac9d0b 100644 --- a/src/mystery_gift_view.c +++ b/src/mystery_gift_view.c @@ -162,7 +162,8 @@ static const struct SpritePalette sSpritePalettes_StampShadow[] = { {sStampShadowPal8, TAG_STAMP_SHADOW} }; -static const struct SpriteTemplate sSpriteTemplate_StampShadow = { +static const struct SpriteTemplate sSpriteTemplate_StampShadow = +{ .tileTag = TAG_STAMP_SHADOW, .paletteTag = TAG_STAMP_SHADOW, .oam = &gOamData_AffineOff_ObjNormal_32x16, diff --git a/src/overworld.c b/src/overworld.c index 5bf7262dc..54cdb3d1d 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -409,9 +409,9 @@ static void Overworld_ResetStateAfterWhiteOut(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); - #if VAR_TERRAIN != 0 - VarSet(VAR_TERRAIN, 0); - #endif +#if VAR_TERRAIN != 0 + VarSet(VAR_TERRAIN, 0); +#endif // If you were defeated by Kyogre/Groudon and the step counter has // maxed out, end the abnormal weather. if (VarGet(VAR_SHOULD_END_ABNORMAL_WEATHER) == 1) @@ -2525,8 +2525,7 @@ static u16 KeyInterCB_Idle(u32 key) return LINK_KEY_CODE_EMPTY; } -// Ignore the player's inputs as long as there is an event script -// in ScriptContext2. +// Ignore the player's inputs as long as there is an event script being executed. static u16 KeyInterCB_DeferToEventScript(u32 key) { u16 retVal; diff --git a/src/party_menu.c b/src/party_menu.c index db20e0932..00224f6bd 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -225,6 +225,8 @@ EWRAM_DATA u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE] = {0}; static EWRAM_DATA u16 sPartyMenuItemId = 0; static EWRAM_DATA u16 sUnused = 0; EWRAM_DATA u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2] = {0}; // bits 0-3 are the current pos of Slot 1, 4-7 are Slot 2, and so on +static EWRAM_DATA u8 sInitialLevel = 0; +static EWRAM_DATA u8 sFinalLevel = 0; // IWRAM common void (*gItemUseCB)(u8, TaskFunc); @@ -265,12 +267,12 @@ static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *, struct PartyMenuBox static void DisplayPartyPokemonHPBarCheck(struct Pokemon *, struct PartyMenuBox *); static void DisplayPartyPokemonDescriptionText(u8, struct PartyMenuBox *, u8); static bool8 IsMonAllowedInMinigame(u8); -static void DisplayPartyPokemonDataToTeachMove(u8, u16, u8); -static u8 CanMonLearnTMTutor(struct Pokemon *, u16, u8); +static void DisplayPartyPokemonDataToTeachMove(u8, u16); +static u8 CanTeachMove(struct Pokemon *, u16); static void DisplayPartyPokemonBarDetail(u8, const u8 *, u8, const u8 *); static void DisplayPartyPokemonLevel(u8, struct PartyMenuBox *); static void DisplayPartyPokemonGender(u8, u16, u8 *, struct PartyMenuBox *); -static void DisplayPartyPokemonHP(u16, struct PartyMenuBox *); +static void DisplayPartyPokemonHP(u16 hp, u16 maxHp, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonMaxHP(u16, struct PartyMenuBox *); static void DisplayPartyPokemonHPBar(u16, u16, struct PartyMenuBox *); static void CreatePartyMonIconSpriteParameterized(u16, u32, struct PartyMenuBox *, u8); @@ -326,8 +328,6 @@ static bool16 IsMonAllowedInPokemonJump(struct Pokemon *); static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *); static void Task_CancelParticipationYesNo(u8); static void Task_HandleCancelParticipationYesNoInput(u8); -static bool8 CanLearnTutorMove(u16, u8); -static u16 GetTutorMove(u8); static bool8 ShouldUseChooseMonText(void); static void SetPartyMonFieldSelectionActions(struct Pokemon *, u8); static u8 GetPartyMenuActionsTypeInBattle(struct Pokemon *); @@ -479,7 +479,6 @@ static bool8 SetUpFieldMove_Dive(void); void TryItemHoldFormChange(struct Pokemon *mon); // static const data -#include "data/pokemon/tutor_learnsets.h" #include "data/party_menu.h" // code @@ -973,7 +972,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) if (gPartyMenu.action == PARTY_ACTION_MOVE_TUTOR) { gSpecialVar_Result = FALSE; - DisplayPartyPokemonDataToTeachMove(slot, 0, gSpecialVar_0x8005); + DisplayPartyPokemonDataToTeachMove(slot, gSpecialVar_0x8005); } else { @@ -985,7 +984,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) default: return FALSE; case 1: // TM/HM - DisplayPartyPokemonDataToTeachMove(slot, item, 0); + DisplayPartyPokemonDataToTeachMove(slot, ItemIdToBattleMoveId(item)); break; case 2: // Evolution stone if (!GetMonData(currentPokemon, MON_DATA_IS_EGG) && GetEvolutionTargetSpecies(currentPokemon, EVO_MODE_ITEM_CHECK, item, NULL) != SPECIES_NONE) @@ -997,9 +996,9 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) return TRUE; } -static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 item, u8 tutor) +static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 move) { - switch (CanMonLearnTMTutor(&gPlayerParty[slot], item, tutor)) + switch (CanTeachMove(&gPlayerParty[slot], move)) { case CANNOT_LEARN_MOVE: case CANNOT_LEARN_MOVE_IS_EGG: @@ -1032,7 +1031,7 @@ static void DisplayPartyPokemonDataForMultiBattle(u8 slot) DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, menuBox->infoRects->dimensions); DisplayPartyPokemonLevel(gMultiPartnerParty[actualSlot].level, menuBox); DisplayPartyPokemonGender(gMultiPartnerParty[actualSlot].gender, gMultiPartnerParty[actualSlot].species, gMultiPartnerParty[actualSlot].nickname, menuBox); - DisplayPartyPokemonHP(gMultiPartnerParty[actualSlot].hp, menuBox); + DisplayPartyPokemonHP(gMultiPartnerParty[actualSlot].hp, gMultiPartnerParty[actualSlot].maxhp, menuBox); DisplayPartyPokemonMaxHP(gMultiPartnerParty[actualSlot].maxhp, menuBox); DisplayPartyPokemonHPBar(gMultiPartnerParty[actualSlot].hp, gMultiPartnerParty[actualSlot].maxhp, menuBox); } @@ -2029,47 +2028,18 @@ static void Task_HandleCancelParticipationYesNoInput(u8 taskId) } } -static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor) +static u8 CanTeachMove(struct Pokemon *mon, u16 move) { - u16 move; - if (GetMonData(mon, MON_DATA_IS_EGG)) return CANNOT_LEARN_MOVE_IS_EGG; - - if (item >= ITEM_TM01) - { - if (!CanMonLearnTMHM(mon, item - ITEM_TM01 - ((item > ITEM_TM100) ? 50 : 0))) - return CANNOT_LEARN_MOVE; - else - move = ItemIdToBattleMoveId(item); - } - else - { - if (!CanLearnTutorMove(GetMonData(mon, MON_DATA_SPECIES), tutor)) - return CANNOT_LEARN_MOVE; - else - move = GetTutorMove(tutor); - } - - if (MonKnowsMove(mon, move) == TRUE) + else if (!CanLearnTeachableMove(GetMonData(mon, MON_DATA_SPECIES2), move)) + return CANNOT_LEARN_MOVE; + else if (MonKnowsMove(mon, move) == TRUE) return ALREADY_KNOWS_MOVE; else return CAN_LEARN_MOVE; } -static u16 GetTutorMove(u8 tutor) -{ - return gTutorMoves[tutor]; -} - -static bool8 CanLearnTutorMove(u16 species, u8 tutor) -{ - if (sTutorLearnsets[species] & (1 << tutor)) - return TRUE; - else - return FALSE; -} - static void InitPartyMenuWindows(u8 layout) { u8 i; @@ -2359,18 +2329,31 @@ static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox if (c != 0) menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[12] >> 3, (menuBox->infoRects->dimensions[13] >> 3) + 1, menuBox->infoRects->dimensions[14] >> 3, menuBox->infoRects->dimensions[15] >> 3, FALSE); if (c != 2) - DisplayPartyPokemonHP(GetMonData(mon, MON_DATA_HP), menuBox); + DisplayPartyPokemonHP(GetMonData(mon, MON_DATA_HP), GetMonData(mon, MON_DATA_MAX_HP), menuBox); } } -static void DisplayPartyPokemonHP(u16 hp, struct PartyMenuBox *menuBox) +static void DisplayParty4DigitsHP(struct PartyMenuBox *menuBox, const u8 *str, const u8 *origAlings, u32 toSub) { - u8 *strOut = ConvertIntToDecimalStringN(gStringVar1, hp, STR_CONV_MODE_RIGHT_ALIGN, 3); + u8 newAligns[4]; + + memcpy(newAligns, origAlings, sizeof(newAligns)); + newAligns[0] -= toSub; // x, so that the hp fits + DisplayPartyPokemonBarDetail(menuBox->windowId, str, 0, newAligns); +} + +static void DisplayPartyPokemonHP(u16 hp, u16 maxhp, struct PartyMenuBox *menuBox) +{ + bool32 fourDigits = (maxhp >= 1000); + u8 *strOut = ConvertIntToDecimalStringN(gStringVar1, hp, STR_CONV_MODE_RIGHT_ALIGN, fourDigits ? 4 : 3); strOut[0] = CHAR_SLASH; strOut[1] = EOS; - DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[12]); + if (fourDigits) + DisplayParty4DigitsHP(menuBox, gStringVar1, &menuBox->infoRects->dimensions[12], 10); + else + DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[12]); } static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) @@ -2386,10 +2369,16 @@ static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuB static void DisplayPartyPokemonMaxHP(u16 maxhp, struct PartyMenuBox *menuBox) { - ConvertIntToDecimalStringN(gStringVar2, maxhp, STR_CONV_MODE_RIGHT_ALIGN, 3); + bool32 fourDigits = (maxhp >= 1000); + + ConvertIntToDecimalStringN(gStringVar2, maxhp, STR_CONV_MODE_RIGHT_ALIGN, fourDigits ? 4 : 3); StringCopy(gStringVar1, gText_Slash); StringAppend(gStringVar1, gStringVar2); - DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[16]); + + if (fourDigits) + DisplayParty4DigitsHP(menuBox, gStringVar1, &menuBox->infoRects->dimensions[16], 5); + else + DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[16]); } static void DisplayPartyPokemonHPBarCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox) @@ -4933,19 +4922,18 @@ static void DisplayLearnMoveMessageAndClose(u8 taskId, const u8 *str) void ItemUseCB_TMHM(u8 taskId, TaskFunc task) { struct Pokemon *mon; - s16 *move; - u16 item; + u16 item = gSpecialVar_ItemId; + u16 move = ItemIdToBattleMoveId(item); + + gPartyMenu.data1 = move; PlaySE(SE_SELECT); mon = &gPlayerParty[gPartyMenu.slotId]; - move = &gPartyMenu.data1; - item = gSpecialVar_ItemId; - GetMonNickname(mon, gStringVar1); - move[0] = ItemIdToBattleMoveId(item); - StringCopy(gStringVar2, gMoveNames[move[0]]); - move[1] = 0; - switch (CanMonLearnTMTutor(mon, item, 0)) + GetMonNickname(mon, gStringVar1); + StringCopy(gStringVar2, gMoveNames[move]); + + switch (CanTeachMove(mon, move)) { case CANNOT_LEARN_MOVE: DisplayLearnMoveMessageAndClose(taskId, gText_PkmnCantLearnMove); @@ -4955,7 +4943,7 @@ void ItemUseCB_TMHM(u8 taskId, TaskFunc task) return; } - if (GiveMoveToMon(mon, move[0]) != MON_HAS_MAX_MOVES) + if (GiveMoveToMon(mon, move) != MON_HAS_MAX_MOVES) { gTasks[taskId].func = Task_LearnedMove; } @@ -5052,6 +5040,7 @@ static void CB2_ShowSummaryScreenToForgetMove(void) static void CB2_ReturnToPartyMenuWhileLearningMove(void) { + SetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_LEVEL, &sFinalLevel); // to avoid displaying incorrect level InitPartyMenu(PARTY_MENU_TYPE_FIELD, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, TRUE, PARTY_MSG_NONE, Task_ReturnToPartyMenuWhileLearningMove, gPartyMenu.exitCallback); } @@ -5157,8 +5146,9 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) s16 *arrayPtr = ptr->data; u16 *itemPtr = &gSpecialVar_ItemId; bool8 cannotUseEffect; + sInitialLevel = GetMonData(mon, MON_DATA_LEVEL); - if (GetMonData(mon, MON_DATA_LEVEL) != MAX_LEVEL) + if (sInitialLevel != MAX_LEVEL) { BufferMonStatsToTaskData(mon, arrayPtr); cannotUseEffect = ExecuteTableBasedItemEffect_(gPartyMenu.slotId, *itemPtr, 0); @@ -5178,16 +5168,29 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) } else { + sFinalLevel = GetMonData(mon, MON_DATA_LEVEL, NULL); gPartyMenuUseExitCallback = TRUE; - PlayFanfareByFanfareNum(FANFARE_LEVEL_UP); UpdateMonDisplayInfoAfterRareCandy(gPartyMenu.slotId, mon); RemoveBagItem(gSpecialVar_ItemId, 1); GetMonNickname(mon, gStringVar1); - ConvertIntToDecimalStringN(gStringVar2, GetMonData(mon, MON_DATA_LEVEL), STR_CONV_MODE_LEFT_ALIGN, 3); - StringExpandPlaceholders(gStringVar4, gText_PkmnElevatedToLvVar2); - DisplayPartyMenuMessage(gStringVar4, TRUE); - ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = Task_DisplayLevelUpStatsPg1; + if (sFinalLevel > sInitialLevel) + { + PlayFanfareByFanfareNum(FANFARE_LEVEL_UP); + ConvertIntToDecimalStringN(gStringVar2, sFinalLevel, STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_PkmnElevatedToLvVar2); + DisplayPartyMenuMessage(gStringVar4, TRUE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].func = Task_DisplayLevelUpStatsPg1; + } + else + { + PlaySE(SE_USE_ITEM); + gPartyMenuUseExitCallback = FALSE; + StringExpandPlaceholders(gStringVar4, gText_PkmnGainedExp); + DisplayPartyMenuMessage(gStringVar4, FALSE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].func = task; + } } } @@ -5220,6 +5223,7 @@ static void Task_DisplayLevelUpStatsPg2(u8 taskId) { PlaySE(SE_SELECT); DisplayLevelUpStatsPg2(taskId); + sInitialLevel += 1; // so the Pokemon doesn't learn a move meant for its previous level gTasks[taskId].func = Task_TryLearnNewMoves; } } @@ -5250,44 +5254,58 @@ static void Task_TryLearnNewMoves(u8 taskId) if (WaitFanfare(FALSE) && ((JOY_NEW(A_BUTTON)) || (JOY_NEW(B_BUTTON)))) { RemoveLevelUpStatsWindow(); - learnMove = MonTryLearningNewMove(&gPlayerParty[gPartyMenu.slotId], TRUE); - gPartyMenu.learnMoveState = 1; - switch (learnMove) + for (; sInitialLevel <= sFinalLevel; sInitialLevel++) { - case 0: // No moves to learn - PartyMenuTryEvolution(taskId); - break; - case MON_HAS_MAX_MOVES: - DisplayMonNeedsToReplaceMove(taskId); - break; - case MON_ALREADY_KNOWS_MOVE: - gTasks[taskId].func = Task_TryLearningNextMove; - break; - default: - DisplayMonLearnedMove(taskId, learnMove); - break; + SetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_LEVEL, &sInitialLevel); + learnMove = MonTryLearningNewMove(&gPlayerParty[gPartyMenu.slotId], TRUE); + gPartyMenu.learnMoveState = 1; + switch (learnMove) + { + case 0: // No moves to learn + if (sInitialLevel >= sFinalLevel) + PartyMenuTryEvolution(taskId); + break; + case MON_HAS_MAX_MOVES: + DisplayMonNeedsToReplaceMove(taskId); + break; + case MON_ALREADY_KNOWS_MOVE: + gTasks[taskId].func = Task_TryLearningNextMove; + break; + default: + DisplayMonLearnedMove(taskId, learnMove); + break; + } + if (learnMove) + break; } } } static void Task_TryLearningNextMove(u8 taskId) { - u16 result = MonTryLearningNewMove(&gPlayerParty[gPartyMenu.slotId], FALSE); - - switch (result) + u16 result; + for (; sInitialLevel <= sFinalLevel; sInitialLevel++) { - case 0: // No moves to learn - PartyMenuTryEvolution(taskId); - break; - case MON_HAS_MAX_MOVES: - DisplayMonNeedsToReplaceMove(taskId); - break; - case MON_ALREADY_KNOWS_MOVE: - return; - default: - DisplayMonLearnedMove(taskId, result); - break; + SetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_LEVEL, &sInitialLevel); + result = MonTryLearningNewMove(&gPlayerParty[gPartyMenu.slotId], FALSE); + switch (result) + { + case 0: // No moves to learn + break; + case MON_HAS_MAX_MOVES: + DisplayMonNeedsToReplaceMove(taskId); + break; + case MON_ALREADY_KNOWS_MOVE: + return; + default: + DisplayMonLearnedMove(taskId, result); + break; + } + if (result) + break; } + if (sInitialLevel >= sFinalLevel) + PartyMenuTryEvolution(taskId); } static void PartyMenuTryEvolution(u8 taskId) @@ -5676,10 +5694,10 @@ static void TryTutorSelectedMon(u8 taskId) mon = &gPlayerParty[gPartyMenu.slotId]; move = &gPartyMenu.data1; GetMonNickname(mon, gStringVar1); - gPartyMenu.data1 = GetTutorMove(gSpecialVar_0x8005); + gPartyMenu.data1 = gSpecialVar_0x8005; StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); move[1] = 2; - switch (CanMonLearnTMTutor(mon, 0, gSpecialVar_0x8005)) + switch (CanTeachMove(mon, gPartyMenu.data1)) { case CANNOT_LEARN_MOVE: DisplayLearnMoveMessageAndClose(taskId, gText_PkmnCantLearnMove); @@ -6115,7 +6133,7 @@ void ChooseMonForWirelessMinigame(void) static u8 GetPartyLayoutFromBattleType(void) { - if (IsDoubleBattle() == FALSE) + if (!IsDoubleBattle() || gPlayerPartyCount == 1) // Draw the single layout in a double battle where the player has only one pokemon. return PARTY_LAYOUT_SINGLE; if (IsMultiBattle() == TRUE) return PARTY_LAYOUT_MULTI; diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 00597e8d3..46355e146 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -727,7 +727,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) // Load mon gfx species = GetMonData(mon, MON_DATA_SPECIES2); personality = GetMonData(mon, MON_DATA_PERSONALITY); - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality); + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality); sPokeblockFeed->loadGfxState++; break; case 1: diff --git a/src/pokemon.c b/src/pokemon.c index c781a8007..3311ef682 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1238,6 +1238,13 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_NATIONAL(GLASTRIER), SPECIES_TO_NATIONAL(SPECTRIER), SPECIES_TO_NATIONAL(CALYREX), + SPECIES_TO_NATIONAL(WYRDEER), + SPECIES_TO_NATIONAL(KLEAVOR), + SPECIES_TO_NATIONAL(URSALUNA), + SPECIES_TO_NATIONAL(BASCULEGION), + SPECIES_TO_NATIONAL(SNEASLER), + SPECIES_TO_NATIONAL(OVERQWIL), + SPECIES_TO_NATIONAL(ENAMORUS), // Megas [SPECIES_VENUSAUR_MEGA - 1] = NATIONAL_DEX_VENUSAUR, @@ -1330,6 +1337,23 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = [SPECIES_DARMANITAN_GALARIAN - 1] = NATIONAL_DEX_DARMANITAN, [SPECIES_YAMASK_GALARIAN - 1] = NATIONAL_DEX_YAMASK, [SPECIES_STUNFISK_GALARIAN - 1] = NATIONAL_DEX_STUNFISK, +//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, + [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, + [SPECIES_SLIGGOO_HISUIAN - 1] = NATIONAL_DEX_SLIGGOO, + [SPECIES_GOODRA_HISUIAN - 1] = NATIONAL_DEX_GOODRA, + [SPECIES_AVALUGG_HISUIAN - 1] = NATIONAL_DEX_AVALUGG, + [SPECIES_DECIDUEYE_HISUIAN - 1] = NATIONAL_DEX_DECIDUEYE, // Cosplay Pikachu [SPECIES_PIKACHU_COSPLAY - 1] = NATIONAL_DEX_PIKACHU, [SPECIES_PIKACHU_ROCK_STAR - 1] = NATIONAL_DEX_PIKACHU, @@ -1404,7 +1428,9 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = [SPECIES_ROTOM_FROST - 1] = NATIONAL_DEX_ROTOM, [SPECIES_ROTOM_FAN - 1] = NATIONAL_DEX_ROTOM, [SPECIES_ROTOM_MOW - 1] = NATIONAL_DEX_ROTOM, - // Giratina + // 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, @@ -1428,6 +1454,7 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = [SPECIES_ARCEUS_FAIRY - 1] = NATIONAL_DEX_ARCEUS, // 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_ZEN_MODE_GALARIAN - 1] = NATIONAL_DEX_DARMANITAN, @@ -1443,6 +1470,7 @@ static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = [SPECIES_TORNADUS_THERIAN - 1] = NATIONAL_DEX_TORNADUS, [SPECIES_THUNDURUS_THERIAN - 1] = NATIONAL_DEX_THUNDURUS, [SPECIES_LANDORUS_THERIAN - 1] = NATIONAL_DEX_LANDORUS, + [SPECIES_ENAMORUS_THERIAN - 1] = NATIONAL_DEX_ENAMORUS, // Kyurem [SPECIES_KYUREM_BLACK - 1] = NATIONAL_DEX_KYUREM, [SPECIES_KYUREM_WHITE - 1] = NATIONAL_DEX_KYUREM, @@ -1890,17 +1918,18 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = [NATURE_QUIRKY] = { 0, 0, 0, 0, 0}, }; -#include "data/pokemon/tmhm_learnsets.h" #include "data/pokemon/trainer_class_lookups.h" #include "data/pokemon/experience_tables.h" #include "data/pokemon/base_stats.h" #include "data/pokemon/level_up_learnsets.h" +#include "data/pokemon/teachable_learnsets.h" #if P_NEW_POKEMON == TRUE #include "data/pokemon/evolution.h" #else #include "data/pokemon/evolution_old.h" #endif #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" @@ -2822,6 +2851,13 @@ static const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_GLASTRIER - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_SPECTRIER - 1] = ANIM_V_SQUISH_AND_BOUNCE, [SPECIES_CALYREX - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_WYRDEER - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_KLEAVOR - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_URSALUNA - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_BASCULEGION - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_SNEASLER - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_OVERQWIL - 1] = ANIM_V_SQUISH_AND_BOUNCE, + [SPECIES_ENAMORUS - 1] = ANIM_V_SQUISH_AND_BOUNCE, // Forms [SPECIES_ROTOM_HEAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, @@ -3334,49 +3370,49 @@ 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 P_LEGENDARY_PERFECT_IVS >= GEN_6 - if (gBaseStats[species].flags & (FLAG_LEGENDARY | FLAG_MYTHICAL | FLAG_ULTRA_BEAST)) + #if P_LEGENDARY_PERFECT_IVS >= GEN_6 + if (gBaseStats[species].flags & (FLAG_LEGENDARY | FLAG_MYTHICAL | FLAG_ULTRA_BEAST)) + { + iv = MAX_PER_STAT_IVS; + // Initialize a list of IV indices. + for (i = 0; i < NUM_STATS; i++) { - iv = MAX_PER_STAT_IVS; - // Initialize a list of IV indices. - for (i = 0; i < NUM_STATS; i++) - { - availableIVs[i] = i; - } + availableIVs[i] = i; + } - // Select the 3 IVs that will be perfected. - for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++) + // Select the 3 IVs that will be perfected. + for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++) + { + u8 index = Random() % (NUM_STATS - i); + selectedIvs[i] = availableIVs[index]; + RemoveIVIndexFromList(availableIVs, index); + } + for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++) + { + switch (selectedIvs[i]) { - u8 index = Random() % (NUM_STATS - i); - selectedIvs[i] = availableIVs[index]; - RemoveIVIndexFromList(availableIVs, index); - } - for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++) - { - switch (selectedIvs[i]) - { - case STAT_HP: - SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv); - break; - case STAT_ATK: - SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv); - break; - case STAT_DEF: - SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv); - break; - case STAT_SPEED: - SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv); - break; - case STAT_SPATK: - SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv); - break; - case STAT_SPDEF: - SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); - break; - } + case STAT_HP: + SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv); + break; + case STAT_ATK: + SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv); + break; + case STAT_DEF: + SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv); + break; + case STAT_SPEED: + SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv); + break; + case STAT_SPATK: + SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv); + break; + case STAT_SPDEF: + SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); + break; } } - #endif + } + #endif } @@ -4163,7 +4199,7 @@ u8 CountAliveMonsInBattle(u8 caseId) u8 GetDefaultMoveTarget(u8 battlerId) { - u8 opposing = BATTLE_OPPOSITE(GetBattlerPosition(battlerId) & BIT_SIDE); + u8 opposing = BATTLE_OPPOSITE(GET_BATTLER_SIDE(battlerId)); if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) return GetBattlerAtPosition(opposing); @@ -5470,6 +5506,21 @@ bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, } \ } +#if B_X_ITEMS_BUFF >= GEN_7 + #define X_ITEM_STAGES 2 +#else + #define X_ITEM_STAGES 1 +#endif + +// EXP candies store an index for this table in their holdEffectParam. +static const u32 sExpCandyExperienceTable[] = { + [EXP_100 - 1] = 100, + [EXP_800 - 1] = 800, + [EXP_3000 - 1] = 3000, + [EXP_10000 - 1] = 10000, + [EXP_30000 - 1] = 30000, +}; + // Returns TRUE if the item has no effect on the Pokémon, FALSE otherwise bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, bool8 usedByAI) { @@ -5576,10 +5627,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if ((itemEffect[i] & ITEM1_X_ATTACK) && gBattleMons[gActiveBattler].statStages[STAT_ATK] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF >= GEN_7) - gBattleMons[gActiveBattler].statStages[STAT_ATK] += 2; - else - gBattleMons[gActiveBattler].statStages[STAT_ATK] += 1; + gBattleMons[gActiveBattler].statStages[STAT_ATK] += X_ITEM_STAGES; if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_ATK] = MAX_STAT_STAGE; retVal = FALSE; @@ -5589,10 +5637,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if ((itemEffect[i] & ITEM1_X_DEFENSE) && gBattleMons[gActiveBattler].statStages[STAT_DEF] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF >= GEN_7) - gBattleMons[gActiveBattler].statStages[STAT_DEF] += 2; - else - gBattleMons[gActiveBattler].statStages[STAT_DEF] += 1; + gBattleMons[gActiveBattler].statStages[STAT_DEF] += X_ITEM_STAGES; if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_DEF] = MAX_STAT_STAGE; retVal = FALSE; @@ -5602,10 +5647,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if ((itemEffect[i] & ITEM1_X_SPEED) && gBattleMons[gActiveBattler].statStages[STAT_SPEED] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF >= GEN_7) - gBattleMons[gActiveBattler].statStages[STAT_SPEED] += 2; - else - gBattleMons[gActiveBattler].statStages[STAT_SPEED] += 1; + gBattleMons[gActiveBattler].statStages[STAT_SPEED] += X_ITEM_STAGES; if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_SPEED] = MAX_STAT_STAGE; retVal = FALSE; @@ -5615,10 +5657,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if ((itemEffect[i] & ITEM1_X_SPATK) && gBattleMons[gActiveBattler].statStages[STAT_SPATK] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF >= GEN_7) - gBattleMons[gActiveBattler].statStages[STAT_SPATK] += 2; - else - gBattleMons[gActiveBattler].statStages[STAT_SPATK] += 1; + gBattleMons[gActiveBattler].statStages[STAT_SPATK] += X_ITEM_STAGES; if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_SPATK] = MAX_STAT_STAGE; retVal = FALSE; @@ -5628,10 +5667,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if ((itemEffect[i] & ITEM1_X_SPDEF) && gBattleMons[gActiveBattler].statStages[STAT_SPDEF] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF >= GEN_7) - gBattleMons[gActiveBattler].statStages[STAT_SPDEF] += 2; - else - gBattleMons[gActiveBattler].statStages[STAT_SPDEF] += 1; + gBattleMons[gActiveBattler].statStages[STAT_SPDEF] += X_ITEM_STAGES; if (gBattleMons[gActiveBattler].statStages[STAT_SPDEF] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_SPDEF] = MAX_STAT_STAGE; retVal = FALSE; @@ -5641,10 +5677,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if ((itemEffect[i] & ITEM1_X_ACCURACY) && gBattleMons[gActiveBattler].statStages[STAT_ACC] < MAX_STAT_STAGE) { - if (B_X_ITEMS_BUFF >= GEN_7) - gBattleMons[gActiveBattler].statStages[STAT_ACC] += 2; - else - gBattleMons[gActiveBattler].statStages[STAT_ACC] += 1; + gBattleMons[gActiveBattler].statStages[STAT_ACC] += X_ITEM_STAGES; if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[STAT_ACC] = MAX_STAT_STAGE; retVal = FALSE; @@ -5664,11 +5697,22 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov retVal = FALSE; } - // Rare Candy + // Rare Candy / EXP Candy if ((itemEffect[i] & ITEM3_LEVEL_UP) && GetMonData(mon, MON_DATA_LEVEL, NULL) != MAX_LEVEL) { - dataUnsigned = gExperienceTables[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].growthRate][GetMonData(mon, MON_DATA_LEVEL, NULL) + 1]; + u8 param = ItemId_GetHoldEffectParam(item); + if (param == 0) // Rare Candy + { + dataUnsigned = gExperienceTables[gBaseStats[GetMonData(mon, MON_DATA_SPECIES, NULL)].growthRate][GetMonData(mon, MON_DATA_LEVEL, NULL) + 1]; + } + else if (param < ARRAY_COUNT(sExpCandyExperienceTable)) // EXP Candies + { + u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); + dataUnsigned = sExpCandyExperienceTable[param - 1] + GetMonData(mon, MON_DATA_EXP, NULL); + if (dataUnsigned > gExperienceTables[gBaseStats[species].growthRate][MAX_LEVEL]) + dataUnsigned = gExperienceTables[gBaseStats[species].growthRate][MAX_LEVEL]; + } SetMonData(mon, MON_DATA_EXP, &dataUnsigned); CalculateMonStats(mon); retVal = FALSE; @@ -6204,15 +6248,12 @@ static void BufferStatRoseMessage(s32 statIdx) { gBattlerTarget = gBattlerInMenuId; StringCopy(gBattleTextBuff1, gStatNamesTable[sStatsToRaise[statIdx]]); - if (B_X_ITEMS_BUFF >= GEN_7) - { - StringCopy(gBattleTextBuff2, gText_StatSharply); - StringAppend(gBattleTextBuff2, gText_StatRose); - } - else - { - StringCopy(gBattleTextBuff2, gText_StatRose); - } +#if B_X_ITEMS_BUFF >= GEN_7 + StringCopy(gBattleTextBuff2, gText_StatSharply); + StringAppend(gBattleTextBuff2, gText_StatRose); +#else + StringCopy(gBattleTextBuff2, gText_StatRose); +#endif BattleStringExpandPlaceholdersToDisplayedString(gText_DefendersStatRose); } @@ -6324,7 +6365,10 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s // Prevent evolution with Everstone, unless we're just viewing the party menu with an evolution item if (holdEffect == HOLD_EFFECT_PREVENT_EVOLVE && mode != EVO_MODE_ITEM_CHECK - && (P_KADABRA_EVERSTONE < GEN_4 || species != SPECIES_KADABRA)) + #if P_KADABRA_EVERSTONE >= GEN_4 + && species != SPECIES_KADABRA + #endif + ) return SPECIES_NONE; switch (mode) @@ -7243,40 +7287,22 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon) } } -u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm) -{ - u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0); - if (species == SPECIES_EGG) - { - return 0; - } - else if (tm < 32) - { - u32 mask = 1 << tm; - return gTMHMLearnsets[species][0] & mask; - } - else - { - u32 mask = 1 << (tm - 32); - return gTMHMLearnsets[species][1] & mask; - } -} - -u32 CanSpeciesLearnTMHM(u16 species, u8 tm) +u8 CanLearnTeachableMove(u16 species, u16 move) { if (species == SPECIES_EGG) { - return 0; - } - else if (tm < 32) - { - u32 mask = 1 << tm; - return gTMHMLearnsets[species][0] & mask; + return FALSE; } else { - u32 mask = 1 << (tm - 32); - return gTMHMLearnsets[species][1] & mask; + u8 i; + for (i = 0; gTeachableLearnsets[species][i] != MOVE_UNAVAILABLE; i++) + { + if (gTeachableLearnsets[species][i] == move) { + return TRUE; + } + } + return FALSE; } } @@ -7520,14 +7546,14 @@ const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 p shinyValue = GET_SHINY_VALUE(otId, personality); if (shinyValue < SHINY_ODDS) { - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if (ShouldShowFemaleDifferences(species, personality)) return gMonShinyPaletteTableFemale[species].data; else return gMonShinyPaletteTable[species].data; } else { - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if (ShouldShowFemaleDifferences(species, personality)) return gMonPaletteTableFemale[species].data; else return gMonPaletteTable[species].data; @@ -7549,14 +7575,14 @@ const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u shinyValue = GET_SHINY_VALUE(otId, personality); if (shinyValue < SHINY_ODDS) { - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if (ShouldShowFemaleDifferences(species, personality)) return &gMonShinyPaletteTableFemale[species]; else return &gMonShinyPaletteTable[species]; } else { - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if (ShouldShowFemaleDifferences(species, personality)) return &gMonPaletteTableFemale[species]; else return &gMonPaletteTable[species]; @@ -7773,7 +7799,7 @@ const u8 *GetTrainerPartnerName(void) } #define READ_PTR_FROM_TASK(taskId, dataId) \ - (void *)( \ + (void *)( \ ((u16)(gTasks[taskId].data[dataId]) | \ ((u16)(gTasks[taskId].data[dataId + 1]) << 16))) @@ -8359,3 +8385,8 @@ void TrySpecialOverworldEvo(void) sTriedEvolving = 0; SetMainCallback2(CB2_ReturnToField); } + +bool32 ShouldShowFemaleDifferences(u16 species, u32 personality) +{ + return (gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE; +} diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index fa4460ed8..8775889fd 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -1107,6 +1107,9 @@ static void ResetPokemonDebugWindows(void) } } +#define MALE_PERSONALITY 0xFE +#define FEMALE_PERSONALITY 0X0 + void CB2_Debug_Pokemon(void) { u8 taskId; @@ -1180,7 +1183,7 @@ void CB2_Debug_Pokemon(void) palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); //Front - HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); + 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); @@ -1195,7 +1198,7 @@ void CB2_Debug_Pokemon(void) LoadAndCreateEnemyShadowSpriteCustom(data, species); //Back - HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); + 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; @@ -1205,7 +1208,7 @@ void CB2_Debug_Pokemon(void) gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X, DEBUG_ICON_Y, 4, data->isShiny, data->isFemale, data->isShiny); + data->iconspriteId = CreateMonIcon(species, SpriteCB_MonIcon, DEBUG_ICON_X, DEBUG_ICON_Y, 4, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY)); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows @@ -1692,7 +1695,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); LoadCompressedSpritePalette(palette); //Front - HandleLoadSpecialPokePicCustom(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, 0, data->isFemale); + 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; @@ -1705,7 +1708,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) LoadAndCreateEnemyShadowSpriteCustom(data, species); //Back - HandleLoadSpecialPokePicCustom(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[2], species, 0, data->isFemale); + 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; @@ -1715,7 +1718,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) gSprites[data->backspriteId].oam.priority = 0; //Icon Sprite - data->iconspriteId = CreateMonIconCustom(species, SpriteCB_MonIcon, DEBUG_ICON_X, DEBUG_ICON_Y, 4, data->isShiny, data->isFemale, data->isShiny); + data->iconspriteId = CreateMonIcon(species, SpriteCB_MonIcon, DEBUG_ICON_X, DEBUG_ICON_Y, 4, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY)); gSprites[data->iconspriteId].oam.priority = 0; //Modify Arrows diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 6a0c8385a..4bbdf07b0 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -23,10 +23,6 @@ struct MonIconSpriteTemplate static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); static void FreeAndDestroyMonIconSprite_(struct Sprite *sprite); -#if P_ENABLE_DEBUG == TRUE -static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale); -static const u8 *GetMonIconTilesCustom(u16 species, bool8 isFemale); -#endif const u8 *const gMonIconTable[] = { @@ -929,7 +925,14 @@ const u8 *const gMonIconTable[] = [SPECIES_REGIDRAGO] = gMonIcon_Regidrago, [SPECIES_GLASTRIER] = gMonIcon_Glastrier, [SPECIES_SPECTRIER] = gMonIcon_Spectrier, - [SPECIES_CALYREX] = gMonIcon_QuestionMark,//gMonIcon_Calyrex, + [SPECIES_CALYREX] = gMonIcon_Calyrex, + [SPECIES_WYRDEER] = gMonIcon_Wyrdeer, + [SPECIES_KLEAVOR] = gMonIcon_Kleavor, + [SPECIES_URSALUNA] = gMonIcon_Ursaluna, + [SPECIES_BASCULEGION] = gMonIcon_Basculegion, + [SPECIES_SNEASLER] = gMonIcon_Sneasler, + [SPECIES_OVERQWIL] = gMonIcon_Overqwil, + [SPECIES_ENAMORUS] = gMonIcon_Enamorus, [SPECIES_VENUSAUR_MEGA] = gMonIcon_VenusaurMega, [SPECIES_CHARIZARD_MEGA_X] = gMonIcon_CharizardMegaX, [SPECIES_CHARIZARD_MEGA_Y] = gMonIcon_CharizardMegaY, @@ -1017,6 +1020,22 @@ const u8 *const gMonIconTable[] = [SPECIES_DARMANITAN_GALARIAN] = gMonIcon_DarmanitanGalarian, [SPECIES_YAMASK_GALARIAN] = gMonIcon_YamaskGalarian, [SPECIES_STUNFISK_GALARIAN] = gMonIcon_StunfiskGalarian, + [SPECIES_GROWLITHE_HISUIAN] = gMonIcon_GrowlitheHisuian, + [SPECIES_ARCANINE_HISUIAN] = gMonIcon_ArcanineHisuian, + [SPECIES_VOLTORB_HISUIAN] = gMonIcon_VoltorbHisuian, + [SPECIES_ELECTRODE_HISUIAN] = gMonIcon_ElectrodeHisuian, + [SPECIES_TYPHLOSION_HISUIAN] = gMonIcon_TyphlosionHisuian, + [SPECIES_QWILFISH_HISUIAN] = gMonIcon_QwilfishHisuian, + [SPECIES_SNEASEL_HISUIAN] = gMonIcon_SneaselHisuian, + [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, + [SPECIES_SLIGGOO_HISUIAN] = gMonIcon_SliggooHisuian, + [SPECIES_GOODRA_HISUIAN] = gMonIcon_GoodraHisuian, + [SPECIES_AVALUGG_HISUIAN] = gMonIcon_AvaluggHisuian, + [SPECIES_DECIDUEYE_HISUIAN] = gMonIcon_DecidueyeHisuian, [SPECIES_PIKACHU_COSPLAY] = gMonIcon_PikachuCosplay, [SPECIES_PIKACHU_ROCK_STAR] = gMonIcon_PikachuRockStar, [SPECIES_PIKACHU_BELLE] = gMonIcon_PikachuBelle, @@ -1079,6 +1098,8 @@ const u8 *const gMonIconTable[] = [SPECIES_ROTOM_FROST] = gMonIcon_RotomFrost, [SPECIES_ROTOM_FAN] = gMonIcon_RotomFan, [SPECIES_ROTOM_MOW] = gMonIcon_RotomMow, + [SPECIES_DIALGA_ORIGIN] = gMonIcon_DialgaOrigin, + [SPECIES_PALKIA_ORIGIN] = gMonIcon_PalkiaOrigin, [SPECIES_GIRATINA_ORIGIN] = gMonIcon_GiratinaOrigin, [SPECIES_SHAYMIN_SKY] = gMonIcon_ShayminSky, [SPECIES_ARCEUS_FIGHTING] = gMonIcon_Arceus, @@ -1099,6 +1120,7 @@ const u8 *const gMonIconTable[] = [SPECIES_ARCEUS_DARK] = gMonIcon_Arceus, [SPECIES_ARCEUS_FAIRY] = gMonIcon_Arceus, [SPECIES_BASCULIN_BLUE_STRIPED] = gMonIcon_BasculinBlueStriped, + [SPECIES_BASCULIN_WHITE_STRIPED] = gMonIcon_BasculinWhiteStriped, [SPECIES_DARMANITAN_ZEN_MODE] = gMonIcon_DarmanitanZenMode, [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = gMonIcon_DarmanitanZenModeGalarian, [SPECIES_DEERLING_SUMMER] = gMonIcon_DeerlingSummer, @@ -1110,6 +1132,7 @@ const u8 *const gMonIconTable[] = [SPECIES_TORNADUS_THERIAN] = gMonIcon_TornadusTherian, [SPECIES_THUNDURUS_THERIAN] = gMonIcon_ThundurusTherian, [SPECIES_LANDORUS_THERIAN] = gMonIcon_LandorusTherian, + [SPECIES_ENAMORUS_THERIAN] = gMonIcon_EnamorusTherian, [SPECIES_KYUREM_WHITE] = gMonIcon_KyuremWhite, [SPECIES_KYUREM_BLACK] = gMonIcon_KyuremBlack, [SPECIES_KELDEO_RESOLUTE] = gMonIcon_KeldeoResolute, @@ -1262,6 +1285,7 @@ const u8 *const gMonIconTableFemale[] = [SPECIES_FRILLISH] = gMonIcon_FrillishF, [SPECIES_JELLICENT] = gMonIcon_JellicentF, [SPECIES_PYROAR] = gMonIcon_PyroarF, + [SPECIES_BASCULEGION] = gMonIcon_BasculegionF, #endif }; @@ -2166,6 +2190,13 @@ const u8 gMonIconPaletteIndices[] = [SPECIES_GLASTRIER] = 0, [SPECIES_SPECTRIER] = 0, [SPECIES_CALYREX] = 0, + [SPECIES_WYRDEER] = 2, + [SPECIES_KLEAVOR] = 2, + [SPECIES_URSALUNA] = 2, + [SPECIES_BASCULEGION] = 1, + [SPECIES_SNEASLER] = 2, + [SPECIES_OVERQWIL] = 2, + [SPECIES_ENAMORUS] = 1, [SPECIES_VENUSAUR_MEGA] = 1, [SPECIES_CHARIZARD_MEGA_X] = 0, [SPECIES_CHARIZARD_MEGA_Y] = 0, @@ -2253,6 +2284,22 @@ const u8 gMonIconPaletteIndices[] = [SPECIES_DARMANITAN_GALARIAN] = 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, @@ -2289,6 +2336,8 @@ const u8 gMonIconPaletteIndices[] = [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, @@ -2309,6 +2358,7 @@ const u8 gMonIconPaletteIndices[] = [SPECIES_ARCEUS_DARK] = 1, [SPECIES_ARCEUS_FAIRY] = 1, [SPECIES_BASCULIN_BLUE_STRIPED] = 0, + [SPECIES_BASCULIN_WHITE_STRIPED] = 0, [SPECIES_DARMANITAN_ZEN_MODE] = 0, [SPECIES_DARMANITAN_ZEN_MODE_GALARIAN] = 0, [SPECIES_DEERLING_SUMMER] = 1, @@ -2320,6 +2370,7 @@ const u8 gMonIconPaletteIndices[] = [SPECIES_TORNADUS_THERIAN] = 1, [SPECIES_THUNDURUS_THERIAN] = 0, [SPECIES_LANDORUS_THERIAN] = 0, + [SPECIES_ENAMORUS_THERIAN] = 1, [SPECIES_KYUREM_WHITE] = 0, [SPECIES_KYUREM_BLACK] = 0, [SPECIES_KELDEO_RESOLUTE] = 0, @@ -2465,6 +2516,7 @@ const u8 gMonIconPaletteIndicesFemale[] = [SPECIES_FRILLISH] = 1, [SPECIES_JELLICENT] = 1, [SPECIES_PYROAR] = 2, + [SPECIES_BASCULEGION] = 0, #endif }; @@ -2596,7 +2648,7 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u if (species > NUM_SPECIES) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG; - else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + else if (ShouldShowFemaleDifferences(species, personality)) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndicesFemale[species]; spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); @@ -2606,32 +2658,6 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u return spriteId; } -#if P_ENABLE_DEBUG == TRUE -u8 CreateMonIconCustom(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool8 isFemale, bool8 isShiny) -{ - u8 spriteId; - struct MonIconSpriteTemplate iconTemplate = - { - .oam = &sMonIconOamData, - .image = GetMonIconPtrCustom(species, personality, isFemale), - .anims = sMonIconAnims, - .affineAnims = sMonIconAffineAnims, - .callback = callback, - .paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndices[species], - }; - - if (species > NUM_SPECIES) - iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG; - else if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) - iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndicesFemale[species]; - - spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); - - UpdateMonIconFrame(&gSprites[spriteId]); - - return spriteId; -} -#endif u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) { @@ -2704,13 +2730,6 @@ const u8 *GetMonIconPtr(u16 species, u32 personality) return GetMonIconTiles(GetIconSpecies(species, personality), personality); } -#if P_ENABLE_DEBUG == TRUE -static const u8 *GetMonIconPtrCustom(u16 species, u32 personality, bool8 isFemale) -{ - return GetMonIconTilesCustom(GetIconSpecies(species, personality), isFemale); -} -#endif - void FreeAndDestroyMonIconSprite(struct Sprite *sprite) { FreeAndDestroyMonIconSprite_(sprite); @@ -2772,24 +2791,15 @@ void SpriteCB_MonIcon(struct Sprite *sprite) const u8 *GetMonIconTiles(u16 species, u32 personality) { - const u8 *iconSprite = gMonIconTable[species]; - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) - { + const u8 *iconSprite; + + if (ShouldShowFemaleDifferences(species, personality)) iconSprite = gMonIconTableFemale[species]; - } + else + iconSprite = gMonIconTable[species]; + return iconSprite; } -#if P_ENABLE_DEBUG == TRUE -static const u8 *GetMonIconTilesCustom(u16 species, bool8 isFemale) -{ - const u8 *iconSprite = gMonIconTable[species]; - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && isFemale) - { - iconSprite = gMonIconTableFemale[species]; - } - return iconSprite; -} -#endif void TryLoadAllMonIconPalettesAtOffset(u16 offset) { diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index e3ae6623c..ccd3125e4 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -2905,11 +2905,10 @@ static void CreateJumpMonSprite(struct PokemonJumpGfx *jumpGfx, struct PokemonJu if (buffer && unusedBuffer) { - HandleLoadSpecialPokePic( - &gMonFrontPicTable[monInfo->species], - buffer, - monInfo->species, - monInfo->personality); + HandleLoadSpecialPokePic(TRUE, + buffer, + monInfo->species, + monInfo->personality); spriteSheet.data = buffer; spriteSheet.tag = multiplayerId; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 39b55463c..d3f5d433f 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -3991,7 +3991,7 @@ static void LoadDisplayMonGfx(u16 species, u32 pid) if (species != SPECIES_NONE) { - LoadSpecialPokePic(&gMonFrontPicTable[species], sStorage->tileBuffer, species, pid, TRUE); + LoadSpecialPokePic(sStorage->tileBuffer, species, pid, TRUE); LZ77UnCompWram(sStorage->displayMonPalette, sStorage->displayMonPalBuffer); CpuCopy32(sStorage->tileBuffer, sStorage->displayMonTilePtr, MON_PIC_SIZE); LoadPalette(sStorage->displayMonPalBuffer, sStorage->displayMonPalOffset, 0x20); @@ -5109,7 +5109,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 ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if (ShouldShowFemaleDifferences(species, personality)) species |= 0x8000; // 1 << 15 // Search icon list for this species @@ -5176,7 +5176,7 @@ static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s struct SpriteTemplate template = sSpriteTemplate_MonIcon; species = GetIconSpecies(species, personality); - if ((gBaseStats[species].flags & FLAG_GENDER_DIFFERENCE) && GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE) + if (ShouldShowFemaleDifferences(species, personality)) { template.paletteTag = PALTAG_MON_ICON_0 + gMonIconPaletteIndicesFemale[species]; } @@ -6893,7 +6893,6 @@ static void ReshowDisplayMon(void) void SetMonFormPSS(struct BoxPokemon *boxMon) { - u16 species = GetMonData(boxMon, MON_DATA_SPECIES); u16 targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD_ABILITY, 0); if (targetSpecies == SPECIES_NONE) targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, FORM_ITEM_HOLD, 0); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 2befc159f..66bfa817c 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -41,13 +41,14 @@ #include "text.h" #include "tv.h" #include "window.h" +#include "constants/battle_config.h" +#include "constants/battle_move_effects.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/party_menu.h" #include "constants/region_map_sections.h" #include "constants/rgb.h" #include "constants/songs.h" -#include "constants/battle_config.h" enum { PSS_PAGE_INFO, @@ -3730,15 +3731,22 @@ static void PrintContestMoveDescription(u8 moveSlot) static void PrintMoveDetails(u16 move) { u8 windowId = AddWindowFromTemplateList(sPageMovesTemplate, PSS_DATA_WINDOW_MOVE_DESCRIPTION); + u8 moveEffect; FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); if (move != MOVE_NONE) { if (sMonSummaryScreen->currPageIndex == PSS_PAGE_BATTLE_MOVES) { - if (B_SHOW_SPLIT_ICON == TRUE) - ShowSplitIcon(GetBattleMoveSplit(move)); + moveEffect = gBattleMoves[move].effect; + #if B_SHOW_SPLIT_ICON == TRUE + ShowSplitIcon(GetBattleMoveSplit(move)); + #endif PrintMovePowerAndAccuracy(move); - PrintTextOnWindow(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0); + + if (moveEffect != EFFECT_PLACEHOLDER) + PrintTextOnWindow(windowId, gMoveDescriptionPointers[move - 1], 6, 1, 0, 0); + else + PrintTextOnWindow(windowId, gNotDoneYetDescription, 6, 1, 0, 0); } else { @@ -3980,7 +3988,7 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state) case 0: if (gMain.inBattle) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[summary->species2], + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], summary->species2, summary->pid); @@ -3989,14 +3997,14 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state) { if (gMonSpritesGfxPtr != NULL) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[summary->species2], + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], summary->species2, summary->pid); } else { - HandleLoadSpecialPokePic(&gMonFrontPicTable[summary->species2], + HandleLoadSpecialPokePic(TRUE, MonSpritesGfxManager_GetSpritePtr(MON_SPR_GFX_MANAGER_A, B_POSITION_OPPONENT_LEFT), summary->species2, summary->pid); diff --git a/src/pokenav_conditions.c b/src/pokenav_conditions.c index e0645bac0..0477ebbf5 100644 --- a/src/pokenav_conditions.c +++ b/src/pokenav_conditions.c @@ -534,7 +534,7 @@ static void ConditionGraphDrawMonPic(s16 listId, u8 loadId) species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES2, NULL); tid = GetBoxOrPartyMonData(boxId, monId, MON_DATA_OT_ID, NULL); personality = GetBoxOrPartyMonData(boxId, monId, MON_DATA_PERSONALITY, NULL); - LoadSpecialPokePic(&gMonFrontPicTable[species], menu->monPicGfx[loadId], species, personality, TRUE); + LoadSpecialPokePic(menu->monPicGfx[loadId], species, personality, TRUE); LZ77UnCompWram(GetMonSpritePalFromSpeciesAndPersonality(species, tid, personality), menu->monPal[loadId]); } diff --git a/src/roulette.c b/src/roulette.c index a8be6ad7c..52efc8779 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -2662,7 +2662,7 @@ static const struct SpriteTemplate sSpriteTemplates_ColorHeaders[NUM_BOARD_COLOR } }; -static const struct SpriteTemplate sSpriteTemplate_GridIcons[NUM_BOARD_POKES] = +static const struct SpriteTemplate sSpriteTemplates_GridIcons[NUM_BOARD_POKES] = { { .tileTag = GFXTAG_GRID_ICONS, @@ -3537,7 +3537,7 @@ static void CreateGridSprites(void) u8 y = i * 24; for (j = 0; j < NUM_BOARD_POKES; j++) { - spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplate_GridIcons[j], (j * 24) + 148, y + 92, 30); + spriteId = sRoulette->spriteIds[(i * NUM_BOARD_POKES) + SPR_GRID_ICONS + j] = CreateSprite(&sSpriteTemplates_GridIcons[j], (j * 24) + 148, y + 92, 30); gSprites[spriteId].animPaused = TRUE; y += 24; if (y >= 72) diff --git a/src/strings.c b/src/strings.c index 92253de87..d199b92d4 100644 --- a/src/strings.c +++ b/src/strings.c @@ -417,6 +417,7 @@ const u8 gText_PkmnRegainhedHealth[] = _("{STR_VAR_1} regained health.{PAUSE_UNT const u8 gText_PkmnBecameHealthy[] = _("{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}"); const u8 gText_MovesPPIncreased[] = _("{STR_VAR_1}'s PP increased.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnElevatedToLvVar2[] = _("{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}."); +const u8 gText_PkmnGainedExp[] = _("{STR_VAR_1} gained Exp. Points!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnBaseVar2StatIncreased[] = _("{STR_VAR_1}'s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnFriendlyBaseVar2Fell[] = _("{STR_VAR_1} turned friendly.\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAdoresBaseVar2Fell[] = _("{STR_VAR_1} adores you!\nThe base {STR_VAR_2} fell!{PAUSE_UNTIL_PRESS}"); diff --git a/src/trade.c b/src/trade.c index ad990e980..abf35f26a 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2734,7 +2734,7 @@ static void LoadTradeMonPic(u8 whichParty, u8 state) species = GetMonData(mon, MON_DATA_SPECIES2); personality = GetMonData(mon, MON_DATA_PERSONALITY); - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[whichParty * 2 + B_POSITION_OPPONENT_LEFT], species, personality); + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[whichParty * 2 + B_POSITION_OPPONENT_LEFT], species, personality); LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); sTradeData->monSpecies[whichParty] = species; @@ -3727,7 +3727,7 @@ static bool8 AnimateTradeSequenceCable(void) case TS_STATE_POKEBALL_ARRIVE_WAIT: if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]); + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]); sTradeData->state++; } break; @@ -4224,7 +4224,7 @@ static bool8 AnimateTradeSequenceWireless(void) case TS_STATE_POKEBALL_ARRIVE_WAIT: if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy) { - HandleLoadSpecialPokePic(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], + HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]); diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 36cf70dce..dcc664718 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -59,11 +59,11 @@ static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 * { if (isFrontPic) { - LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); + LoadSpecialPokePic(dest, species, personality, isFrontPic); } else { - LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic); + LoadSpecialPokePic(dest, species, personality, isFrontPic); } } else diff --git a/src/union_room_chat.c b/src/union_room_chat.c index f8513b9f4..5c26d1ea3 100755 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -793,7 +793,8 @@ static const union AnimCmd *const sAnims_KeyboardCursor[] = { sAnim_KeyboardCursorWide_Closed }; -static const struct SpriteTemplate sSpriteTemplate_KeyboardCursor = { +static const struct SpriteTemplate sSpriteTemplate_KeyboardCursor = +{ .tileTag = GFXTAG_KEYBOARD_CURSOR, .paletteTag = PALTAG_INTERFACE, .oam = &sOam_KeyboardCursor, @@ -809,7 +810,8 @@ static const struct OamData sOam_TextEntrySprite = { .priority = 2 }; -static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = { +static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = +{ .tileTag = GFXTAG_TEXT_ENTRY_CURSOR, .paletteTag = PALTAG_INTERFACE, .oam = &sOam_TextEntrySprite, @@ -819,7 +821,8 @@ static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = { .callback = SpriteCB_TextEntryCursor }; -static const struct SpriteTemplate sSpriteTemplate_TextEntryArrow = { +static const struct SpriteTemplate sSpriteTemplate_TextEntryArrow = +{ .tileTag = GFXTAG_TEXT_ENTRY_ARROW, .paletteTag = PALTAG_INTERFACE, .oam = &sOam_TextEntrySprite, @@ -868,7 +871,8 @@ static const union AnimCmd *const sAnims_RButtonLabels[] = { sAnim_RegisterIcon }; -static const struct SpriteTemplate sSpriteTemplate_RButtonIcon = { +static const struct SpriteTemplate sSpriteTemplate_RButtonIcon = +{ .tileTag = GFXTAG_RBUTTON_ICON, .paletteTag = PALTAG_INTERFACE, .oam = &sOam_RButtonIcon, @@ -878,7 +882,8 @@ static const struct SpriteTemplate sSpriteTemplate_RButtonIcon = { .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate sSpriteTemplate_RButtonLabels = { +static const struct SpriteTemplate sSpriteTemplate_RButtonLabels = +{ .tileTag = GFXTAG_RBUTTON_LABELS, .paletteTag = PALTAG_INTERFACE, .oam = &sOam_RButtonLabel, diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 8e197d547..e49d09f54 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -367,7 +367,10 @@ static u8 PickWildMonNature(void) // check synchronize for a pokemon with the same ability if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG) && GetMonAbility(&gPlayerParty[0]) == ABILITY_SYNCHRONIZE - && ((B_SYNCHRONIZE_NATURE >= GEN_8) || Random() % 2 == 0)) + #if B_SYNCHRONIZE_NATURE <= GEN_7 + && (Random() % 2 == 0) + #endif + ) { return GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY) % NUM_NATURES; } @@ -1003,11 +1006,13 @@ bool8 TryDoDoubleWildBattle(void) { if (GetSafariZoneFlag() || GetMonsStateToDoubles() != PLAYER_HAS_TWO_USABLE_MONS) return FALSE; - else if (B_FLAG_FORCE_DOUBLE_WILD != 0 && FlagGet(B_FLAG_FORCE_DOUBLE_WILD)) +#if B_FLAG_FORCE_DOUBLE_WILD != 0 + else if (FlagGet(B_FLAG_FORCE_DOUBLE_WILD)) return TRUE; - #if B_DOUBLE_WILD_CHANCE != 0 +#endif +#if B_DOUBLE_WILD_CHANCE != 0 else if ((Random() % 100) + 1 < B_DOUBLE_WILD_CHANCE) return TRUE; - #endif +#endif return FALSE; }