diff --git a/pokeemerald-tools/gen-new-learnset.py b/pokeemerald-tools/gen-new-learnset.py index 786f00aaf8..2dbdf3ffd3 100644 --- a/pokeemerald-tools/gen-new-learnset.py +++ b/pokeemerald-tools/gen-new-learnset.py @@ -32,8 +32,8 @@ static const struct LevelUpMove sNoneLevelUpLearnset[] = { with open("gen_9.h", WriteOrAdd) as file: file.write(Header) #Start from second row so you do not grab data headers - for row in PkmnDataFile.iter_rows(min_row=2, max_row=PkmnDataFile.max_row, min_col=PkmnDataFile.min_column, max_col=3): - #for row in PkmnDataFile.iter_rows(min_row=2, max_row=500, min_col=PkmnDataFile.min_column, max_col=3): + #for row in PkmnDataFile.iter_rows(min_row=2, max_row=PkmnDataFile.max_row, min_col=PkmnDataFile.min_column, max_col=3): + for row in PkmnDataFile.iter_rows(min_row=2, max_row=500, min_col=PkmnDataFile.min_column, max_col=3): if row[PkmnDataFile.min_column-1].value != None:#Checks if species name is in first column fixCase = str(row[0].value) #idk why Excel is being stupid, thinks it is not a string fixCase = fixCase[0] + fixCase[1:len(fixCase)].lower() diff --git a/pokeemerald-tools/gen_9.h b/pokeemerald-tools/gen_9.h index 44e0342e14..6c488ab42e 100644 --- a/pokeemerald-tools/gen_9.h +++ b/pokeemerald-tools/gen_9.h @@ -8,61 +8,6 @@ static const struct LevelUpMove sNoneLevelUpLearnset[] = { }; #endif -#if P_FAMILY_BULBASAUR -static const struct LevelUpMove sBulbasaurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 4 , MOVE_GROWL), - LEVEL_UP_MOVE( 7 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 10 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 20 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 25 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 28 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 32 , MOVE_GROWTH), - LEVEL_UP_MOVE( 36 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 39 , MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 46 , MOVE_SOLARBEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sIvysaurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 4 , MOVE_GROWL), - LEVEL_UP_MOVE( 7 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 10 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 29 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 32 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 38 , MOVE_GROWTH), - LEVEL_UP_MOVE( 43 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 47 , MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 56 , MOVE_SOLARBEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVenusaurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 1 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 4 , MOVE_GROWL), - LEVEL_UP_MOVE( 7 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 10 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 29 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 34 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 41 , MOVE_GROWTH), - LEVEL_UP_MOVE( 46 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 53 , MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 65 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 70 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - static const struct LevelUpMove sEcosaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 1 , MOVE_GROWL), LEVEL_UP_MOVE( 1 , MOVE_LEECH_SEED), @@ -102,6268 +47,3 @@ static const struct LevelUpMove sTerarisaurLevelUpLearnset[] = { LEVEL_UP_MOVE( 70 , MOVE_FRENZY_PLANT), LEVEL_UP_END }; - -static const struct LevelUpMove sSymbisaurLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 1 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 4 , MOVE_GROWL), - LEVEL_UP_MOVE( 7 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 10 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 29 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 34 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 41 , MOVE_GROWTH), - LEVEL_UP_MOVE( 46 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 53 , MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 65 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 70 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_CHARMANDER -static const struct LevelUpMove sCharmanderLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 14 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 19 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 31 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 37 , MOVE_SLASH), - LEVEL_UP_MOVE( 43 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 49 , MOVE_HEAT_WAVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCharmeleonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 16 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 20 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 27 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 34 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 41 , MOVE_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 55 , MOVE_HEAT_WAVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCharizardLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 1 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 20 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 27 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 34 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 36 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_SLASH), - LEVEL_UP_MOVE( 54 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 64 , MOVE_HEAT_WAVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sChariguanaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 1 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 16 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 23 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 27 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 34 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 36 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_SLASH), - LEVEL_UP_MOVE( 54 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 64 , MOVE_HEAT_WAVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCharianaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 1 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 16 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 23 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 27 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 34 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 36 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_SLASH), - LEVEL_UP_MOVE( 54 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 64 , MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 70 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sChariathanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 1 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 16 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 23 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 27 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 34 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 36 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_SLASH), - LEVEL_UP_MOVE( 54 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 64 , MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 70 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SQUIRTLE -static const struct LevelUpMove sSquirtleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 4 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 10 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 18 , MOVE_BITE), - LEVEL_UP_MOVE( 21 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 24 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 28 , MOVE_PROTECT), - LEVEL_UP_MOVE( 33 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 40 , MOVE_SKULL_BASH), - LEVEL_UP_MOVE( 47 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWartortleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 4 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 10 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 31 , MOVE_PROTECT), - LEVEL_UP_MOVE( 37 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 45 , MOVE_SKULL_BASH), - LEVEL_UP_MOVE( 53 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBlastoiseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 4 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 10 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 31 , MOVE_PROTECT), - LEVEL_UP_MOVE( 42 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 55 , MOVE_SKULL_BASH), - LEVEL_UP_MOVE( 68 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFerrapinLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 4 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 10 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 31 , MOVE_PROTECT), - LEVEL_UP_MOVE( 42 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 55 , MOVE_SKULL_BASH), - LEVEL_UP_MOVE( 68 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFortoiseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 4 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 10 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 31 , MOVE_PROTECT), - LEVEL_UP_MOVE( 42 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 52 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 55 , MOVE_SKULL_BASH), - LEVEL_UP_MOVE( 68 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTurtilleryLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 4 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 10 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 31 , MOVE_PROTECT), - LEVEL_UP_MOVE( 42 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 52 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 55 , MOVE_SKULL_BASH), - LEVEL_UP_MOVE( 68 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_CATERPIE -static const struct LevelUpMove sCaterpieLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_STRING_SHOT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMetapodLevelUpLearnset[] = { - LEVEL_UP_MOVE( 7 , MOVE_HARDEN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sButterfreeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 14 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 18 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 23 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 28 , MOVE_GUST), - LEVEL_UP_MOVE( 34 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 40 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 47 , MOVE_SILVER_WIND), - LEVEL_UP_END -}; - -static const struct LevelUpMove sButteflareLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 11 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 14 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 18 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 22 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 23 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 25 , MOVE_WILL_O_WISP), - LEVEL_UP_MOVE( 28 , MOVE_GUST), - LEVEL_UP_MOVE( 34 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 40 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 47 , MOVE_SILVER_WIND), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPyrefreeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 11 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 14 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 18 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 23 , MOVE_GUST), - LEVEL_UP_MOVE( 25 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 28 , MOVE_WILL_O_WISP), - LEVEL_UP_MOVE( 34 , MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 36 , MOVE_WEATHER_BALL), - LEVEL_UP_MOVE( 40 , MOVE_AIR_CUTTER), - LEVEL_UP_MOVE( 47 , MOVE_OVERHEAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sImpsectLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 11 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 14 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 18 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 23 , MOVE_GUST), - LEVEL_UP_MOVE( 25 , MOVE_WILL_O_WISP), - LEVEL_UP_MOVE( 28 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 34 , MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 36 , MOVE_WEATHER_BALL), - LEVEL_UP_MOVE( 40 , MOVE_AIR_CUTTER), - LEVEL_UP_MOVE( 45 , MOVE_OVERHEAT), - LEVEL_UP_MOVE( 47 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 50 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 55 , MOVE_ERUPTION), - LEVEL_UP_MOVE( 60 , MOVE_BUG_BUZZ), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_WEEDLE -static const struct LevelUpMove sWeedleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_STRING_SHOT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKakunaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 7 , MOVE_HARDEN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBeedrillLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 20 , MOVE_TWINEEDLE), - LEVEL_UP_MOVE( 25 , MOVE_RAGE), - LEVEL_UP_MOVE( 30 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 35 , MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 40 , MOVE_AGILITY), - LEVEL_UP_MOVE( 45 , MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBeebruteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 20 , MOVE_TWINEEDLE), - LEVEL_UP_MOVE( 25 , MOVE_RAGE), - LEVEL_UP_MOVE( 25 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 30 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 35 , MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 40 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 50 , MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDronarchLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_BIDE), - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 20 , MOVE_TWINEEDLE), - LEVEL_UP_MOVE( 25 , MOVE_RAGE), - LEVEL_UP_MOVE( 25 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 30 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 30 , MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 36 , MOVE_PROTECT), - LEVEL_UP_MOVE( 36 , MOVE_REFLECT), - LEVEL_UP_MOVE( 36 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 36 , MOVE_BARRIER), - LEVEL_UP_MOVE( 40 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 45 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 45 , MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE( 50 , MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSepistrikeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 20 , MOVE_TWINEEDLE), - LEVEL_UP_MOVE( 25 , MOVE_RAGE), - LEVEL_UP_MOVE( 30 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 30 , MOVE_SLASH), - LEVEL_UP_MOVE( 35 , MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 36 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 36 , MOVE_ENCORE), - LEVEL_UP_MOVE( 40 , MOVE_AGILITY), - LEVEL_UP_MOVE( 40 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 45 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 55 , MOVE_GUILLOTINE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PIDGEY -static const struct LevelUpMove sPidgeyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GUST), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 19 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 25 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 29 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 34 , MOVE_AGILITY), - LEVEL_UP_MOVE( 38 , MOVE_MIRROR_MOVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPidgeottoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_GUST), - LEVEL_UP_MOVE( 5 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GUST), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 27 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 31 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 35 , MOVE_AGILITY), - LEVEL_UP_MOVE( 40 , MOVE_MIRROR_MOVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPidgeotLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_GUST), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 5 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GUST), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 27 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 31 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 36 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 41 , MOVE_MIRROR_MOVE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPidgaeroLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_GUST), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 5 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GUST), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 27 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 31 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 36 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 41 , MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE( 47 , MOVE_STEEL_WING), - LEVEL_UP_MOVE( 52 , MOVE_VOLT_TACKLE), - LEVEL_UP_MOVE( 58 , MOVE_BRAVE_BIRD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPidgeozoneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_GUST), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 5 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GUST), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 27 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 31 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 36 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 41 , MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE( 47 , MOVE_STEEL_WING), - LEVEL_UP_MOVE( 52 , MOVE_VOLT_TACKLE), - LEVEL_UP_MOVE( 58 , MOVE_BRAVE_BIRD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPidgephyrLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_GUST), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 5 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GUST), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_WHIRLWIND), - LEVEL_UP_MOVE( 27 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 31 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 36 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 41 , MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE( 47 , MOVE_STEEL_WING), - LEVEL_UP_MOVE( 52 , MOVE_VOLT_TACKLE), - LEVEL_UP_MOVE( 58 , MOVE_BRAVE_BIRD), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_RATTATA -static const struct LevelUpMove sRattataLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 7 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 13 , MOVE_HYPER_FANG), - LEVEL_UP_MOVE( 20 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 27 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 34 , MOVE_SUPER_FANG), - LEVEL_UP_MOVE( 41 , MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRaticateLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 13 , MOVE_HYPER_FANG), - LEVEL_UP_MOVE( 15 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 20 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 25 , MOVE_SUPER_FANG), - LEVEL_UP_MOVE( 40 , MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRattchetLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 5 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_SNATCH), - LEVEL_UP_MOVE( 13 , MOVE_HYPER_FANG), - LEVEL_UP_MOVE( 20 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 30 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 35 , MOVE_SUPER_FANG), - LEVEL_UP_MOVE( 40 , MOVE_POISON_FANG), - LEVEL_UP_MOVE( 50 , MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRattaruleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_SNATCH), - LEVEL_UP_MOVE( 13 , MOVE_HYPER_FANG), - LEVEL_UP_MOVE( 20 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 20 , MOVE_UPROAR), - LEVEL_UP_MOVE( 25 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 30 , MOVE_SUPER_FANG), - LEVEL_UP_MOVE( 40 , MOVE_POISON_FANG), - LEVEL_UP_MOVE( 40 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 50 , MOVE_ENDEAVOR), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SPEAROW -static const struct LevelUpMove sSpearowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 19 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 25 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 29 , MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE( 34 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 38 , MOVE_AGILITY), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFearowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 29 , MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE( 34 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 38 , MOVE_AGILITY), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSneerowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 29 , MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE( 30 , MOVE_TAUNT), - LEVEL_UP_MOVE( 34 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 38 , MOVE_AGILITY), - LEVEL_UP_MOVE( 44 , MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 49 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 55 , MOVE_BEAT_UP), - LEVEL_UP_MOVE( 59 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 64 , MOVE_BRAVE_BIRD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sOrnithowLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 29 , MOVE_MIRROR_MOVE), - LEVEL_UP_MOVE( 30 , MOVE_TAUNT), - LEVEL_UP_MOVE( 34 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 38 , MOVE_AGILITY), - LEVEL_UP_MOVE( 44 , MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 49 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 55 , MOVE_BEAT_UP), - LEVEL_UP_MOVE( 59 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 64 , MOVE_BRAVE_BIRD), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_EKANS -static const struct LevelUpMove sEkansLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 8 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 20 , MOVE_GLARE), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 32 , MOVE_POISON_FANG), - LEVEL_UP_MOVE( 37 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 37 , MOVE_SWALLOW), - LEVEL_UP_MOVE( 37 , MOVE_SPIT_UP), - LEVEL_UP_MOVE( 42 , MOVE_HAZE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sArbokLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 8 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 20 , MOVE_GLARE), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 32 , MOVE_POISON_FANG), - LEVEL_UP_MOVE( 37 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 37 , MOVE_SWALLOW), - LEVEL_UP_MOVE( 37 , MOVE_SPIT_UP), - LEVEL_UP_MOVE( 44 , MOVE_HAZE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNohtypLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 8 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 20 , MOVE_GLARE), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 32 , MOVE_POISON_FANG), - LEVEL_UP_MOVE( 37 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 37 , MOVE_SWALLOW), - LEVEL_UP_MOVE( 37 , MOVE_SPIT_UP), - LEVEL_UP_MOVE( 44 , MOVE_HAZE), - LEVEL_UP_MOVE( 49 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 55 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 57 , MOVE_OUTRAGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAdnokanaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 8 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 20 , MOVE_GLARE), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 32 , MOVE_POISON_FANG), - LEVEL_UP_MOVE( 37 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 37 , MOVE_SWALLOW), - LEVEL_UP_MOVE( 37 , MOVE_SPIT_UP), - LEVEL_UP_MOVE( 44 , MOVE_HAZE), - LEVEL_UP_MOVE( 49 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 55 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 57 , MOVE_OUTRAGE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PIKACHU -static const struct LevelUpMove sPikachuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 6 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 11 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 20 , MOVE_SLAM), - LEVEL_UP_MOVE( 26 , MOVE_SPARK), - LEVEL_UP_MOVE( 33 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_THUNDER), - LEVEL_UP_MOVE( 42 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 47 , MOVE_THUNDERBOLT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRaichuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 6 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 11 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 20 , MOVE_SLAM), - LEVEL_UP_MOVE( 26 , MOVE_SPARK), - LEVEL_UP_MOVE( 33 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_THUNDER), - LEVEL_UP_MOVE( 42 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 47 , MOVE_THUNDERBOLT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGorochuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 6 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 11 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 20 , MOVE_SLAM), - LEVEL_UP_MOVE( 26 , MOVE_SPARK), - LEVEL_UP_MOVE( 33 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_THUNDER), - LEVEL_UP_MOVE( 40 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 43 , MOVE_TORMENT), - LEVEL_UP_MOVE( 45 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 48 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 50 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 52 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 56 , MOVE_AURA_SPHERE), - LEVEL_UP_MOVE( 59 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 64 , MOVE_VOLT_TACKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sStromachuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 6 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 11 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 20 , MOVE_SLAM), - LEVEL_UP_MOVE( 26 , MOVE_SPARK), - LEVEL_UP_MOVE( 33 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_THUNDER), - LEVEL_UP_MOVE( 40 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 43 , MOVE_TORMENT), - LEVEL_UP_MOVE( 45 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 48 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 50 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 52 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 56 , MOVE_AURA_SPHERE), - LEVEL_UP_MOVE( 59 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 64 , MOVE_VOLT_TACKLE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SANDSHREW -static const struct LevelUpMove sSandshrewLevelUpLearnset[] = { - LEVEL_UP_MOVE( 6 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 11 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 20 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 23 , MOVE_SLASH), - LEVEL_UP_MOVE( 30 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 34 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 46 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 50 , MOVE_GYRO_BALL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSandslashLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 6 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 11 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 20 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 23 , MOVE_SLASH), - LEVEL_UP_MOVE( 30 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 34 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 42 , MOVE_SPIKES), - LEVEL_UP_MOVE( 46 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 50 , MOVE_GYRO_BALL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSandslamLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 6 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 11 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 20 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 23 , MOVE_SLASH), - LEVEL_UP_MOVE( 30 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 31 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 34 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 42 , MOVE_SPIKES), - LEVEL_UP_MOVE( 46 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 48 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 50 , MOVE_GYRO_BALL), - LEVEL_UP_MOVE( 55 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 60 , MOVE_METAL_BURST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFerodilloLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 6 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 11 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 20 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 23 , MOVE_SLASH), - LEVEL_UP_MOVE( 30 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 31 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 34 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 42 , MOVE_SPIKES), - LEVEL_UP_MOVE( 46 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 48 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 50 , MOVE_GYRO_BALL), - LEVEL_UP_MOVE( 55 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 60 , MOVE_METAL_BURST), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_NIDORAN_F -static const struct LevelUpMove sNidoran_fLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_FLATTER), - LEVEL_UP_MOVE( 40 , MOVE_CRUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidorinaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_FLATTER), - LEVEL_UP_MOVE( 40 , MOVE_CRUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidoqueenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_FLATTER), - LEVEL_UP_MOVE( 40 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 44 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 49 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 55 , MOVE_THRASH), - LEVEL_UP_MOVE( 60 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 65 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 68 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidoregalLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_FLATTER), - LEVEL_UP_MOVE( 40 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 44 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 49 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 55 , MOVE_THRASH), - LEVEL_UP_MOVE( 60 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 65 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 68 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidoarchyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_FLATTER), - LEVEL_UP_MOVE( 40 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 44 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 49 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 55 , MOVE_THRASH), - LEVEL_UP_MOVE( 60 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 65 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 68 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_NIDORAN_M -static const struct LevelUpMove sNidoran_mLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 40 , MOVE_HORN_DRILL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidorinoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 40 , MOVE_HORN_DRILL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidokingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 40 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 44 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 49 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 55 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 60 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 65 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 68 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidorulyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 40 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 44 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 49 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 55 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 60 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 65 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 68 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNidominateLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 8 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 12 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 17 , MOVE_POISON_STING), - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_POISON_TAIL), - LEVEL_UP_MOVE( 30 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 34 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 38 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 40 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 44 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 49 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 55 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 60 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 65 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 68 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_CLEFAIRY -static const struct LevelUpMove sClefairyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_ENCORE), - LEVEL_UP_MOVE( 9 , MOVE_SING), - LEVEL_UP_MOVE( 13 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 17 , MOVE_FOLLOW_ME), - LEVEL_UP_MOVE( 20 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 25 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 29 , MOVE_METRONOME), - LEVEL_UP_MOVE( 33 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 39 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 41 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 45 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 50 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 54 , MOVE_WISH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sClefableLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_ENCORE), - LEVEL_UP_MOVE( 9 , MOVE_SING), - LEVEL_UP_MOVE( 13 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 17 , MOVE_FOLLOW_ME), - LEVEL_UP_MOVE( 20 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 25 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 29 , MOVE_METRONOME), - LEVEL_UP_MOVE( 33 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 39 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 41 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 45 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 50 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 54 , MOVE_WISH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sClefaefaeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_ENCORE), - LEVEL_UP_MOVE( 9 , MOVE_SING), - LEVEL_UP_MOVE( 13 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 17 , MOVE_FOLLOW_ME), - LEVEL_UP_MOVE( 20 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 25 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 29 , MOVE_METRONOME), - LEVEL_UP_MOVE( 33 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 39 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 41 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 45 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 50 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 54 , MOVE_WISH), - LEVEL_UP_MOVE( 59 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 65 , MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sClefanautLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_ENCORE), - LEVEL_UP_MOVE( 9 , MOVE_SING), - LEVEL_UP_MOVE( 13 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 17 , MOVE_FOLLOW_ME), - LEVEL_UP_MOVE( 20 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 25 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 29 , MOVE_METRONOME), - LEVEL_UP_MOVE( 33 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 39 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 41 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 45 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 50 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 54 , MOVE_WISH), - LEVEL_UP_MOVE( 59 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 65 , MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_VULPIX -static const struct LevelUpMove sVulpixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_ROAR), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_WILL_O_WISP), - LEVEL_UP_MOVE( 21 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 29 , MOVE_SWIFT), - LEVEL_UP_MOVE( 33 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 37 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 41 , MOVE_MORNING_SUN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_ROAR), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_WILL_O_WISP), - LEVEL_UP_MOVE( 21 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 29 , MOVE_SWIFT), - LEVEL_UP_MOVE( 33 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 37 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 40 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_MORNING_SUN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpiritalesLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_ROAR), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_WILL_O_WISP), - LEVEL_UP_MOVE( 21 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 29 , MOVE_SWIFT), - LEVEL_UP_MOVE( 33 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 37 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 40 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_MORNING_SUN), - LEVEL_UP_MOVE( 44 , MOVE_CURSE), - LEVEL_UP_MOVE( 49 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 56 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 60 , MOVE_BLAST_BURN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sYokayubiLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_ROAR), - LEVEL_UP_MOVE( 13 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 17 , MOVE_WILL_O_WISP), - LEVEL_UP_MOVE( 21 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 29 , MOVE_SWIFT), - LEVEL_UP_MOVE( 33 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 37 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 40 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_MORNING_SUN), - LEVEL_UP_MOVE( 44 , MOVE_CURSE), - LEVEL_UP_MOVE( 49 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 56 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 60 , MOVE_BLAST_BURN), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_JIGGLYPUFF -static const struct LevelUpMove sJigglypuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 4 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 9 , MOVE_POUND), - LEVEL_UP_MOVE( 14 , MOVE_DISABLE), - LEVEL_UP_MOVE( 19 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 24 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 34 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_MIMIC), - LEVEL_UP_MOVE( 44 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 49 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWigglytuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 4 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 9 , MOVE_POUND), - LEVEL_UP_MOVE( 14 , MOVE_DISABLE), - LEVEL_UP_MOVE( 19 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 24 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 34 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_MIMIC), - LEVEL_UP_MOVE( 44 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 49 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGigglyhuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 4 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 9 , MOVE_POUND), - LEVEL_UP_MOVE( 14 , MOVE_DISABLE), - LEVEL_UP_MOVE( 19 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 24 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 34 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_MIMIC), - LEVEL_UP_MOVE( 40 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 44 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 49 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_REFLECT), - LEVEL_UP_MOVE( 53 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 58 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 62 , MOVE_RECOVER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBogglyfuffLevelUpLearnset[] = { - LEVEL_UP_MOVE( 4 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 9 , MOVE_POUND), - LEVEL_UP_MOVE( 14 , MOVE_DISABLE), - LEVEL_UP_MOVE( 19 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 24 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 34 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_MIMIC), - LEVEL_UP_MOVE( 40 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 44 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 49 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_REFLECT), - LEVEL_UP_MOVE( 53 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 58 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 62 , MOVE_RECOVER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_ZUBAT -static const struct LevelUpMove sZubatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 6 , MOVE_ASTONISH), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_BITE), - LEVEL_UP_MOVE( 21 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 31 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 36 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 43 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 46 , MOVE_HAZE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGolbatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 6 , MOVE_ASTONISH), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_BITE), - LEVEL_UP_MOVE( 21 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 31 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 36 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 43 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 46 , MOVE_HAZE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCrobatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 6 , MOVE_ASTONISH), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_BITE), - LEVEL_UP_MOVE( 21 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 31 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 36 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 43 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 46 , MOVE_HAZE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPolabatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 6 , MOVE_ASTONISH), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_BITE), - LEVEL_UP_MOVE( 21 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 31 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 36 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 46 , MOVE_TOXIC), - LEVEL_UP_MOVE( 43 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 46 , MOVE_HAZE), - LEVEL_UP_MOVE( 50 , MOVE_GLARE), - LEVEL_UP_MOVE( 55 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 60 , MOVE_BATON_PASS), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVisibatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 6 , MOVE_ASTONISH), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_BITE), - LEVEL_UP_MOVE( 21 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 31 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 36 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 46 , MOVE_TOXIC), - LEVEL_UP_MOVE( 43 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 46 , MOVE_HAZE), - LEVEL_UP_MOVE( 50 , MOVE_GLARE), - LEVEL_UP_MOVE( 55 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 60 , MOVE_BATON_PASS), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHorribatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 6 , MOVE_ASTONISH), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_BITE), - LEVEL_UP_MOVE( 21 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 31 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 36 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 46 , MOVE_TOXIC), - LEVEL_UP_MOVE( 43 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 46 , MOVE_HAZE), - LEVEL_UP_MOVE( 50 , MOVE_GLARE), - LEVEL_UP_MOVE( 55 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 60 , MOVE_BATON_PASS), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_ODDISH -static const struct LevelUpMove sOddishLevelUpLearnset[] = { - LEVEL_UP_MOVE( 7 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 13 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 13 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 23 , MOVE_ACID), - LEVEL_UP_MOVE( 28 , MOVE_TOXIC), - LEVEL_UP_MOVE( 34 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 42 , MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 50 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 54 , MOVE_SOLARBEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGloomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SWIFT), - LEVEL_UP_MOVE( 7 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 13 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 13 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 23 , MOVE_ACID), - LEVEL_UP_MOVE( 28 , MOVE_TOXIC), - LEVEL_UP_MOVE( 34 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 42 , MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 50 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 54 , MOVE_SOLARBEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVileplumeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SWIFT), - LEVEL_UP_MOVE( 7 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 13 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 13 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 23 , MOVE_ACID), - LEVEL_UP_MOVE( 28 , MOVE_TOXIC), - LEVEL_UP_MOVE( 34 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 42 , MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 50 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 54 , MOVE_SOLARBEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRafflurkLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SWIFT), - LEVEL_UP_MOVE( 7 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 13 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 13 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 23 , MOVE_ACID), - LEVEL_UP_MOVE( 28 , MOVE_TOXIC), - LEVEL_UP_MOVE( 34 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 42 , MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 50 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 54 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 57 , MOVE_SPORE), - LEVEL_UP_MOVE( 60 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 64 , MOVE_HAZE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sConcorpsiaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SWIFT), - LEVEL_UP_MOVE( 7 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 13 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 13 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 13 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 23 , MOVE_ACID), - LEVEL_UP_MOVE( 28 , MOVE_TOXIC), - LEVEL_UP_MOVE( 34 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 37 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 42 , MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 50 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 54 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 57 , MOVE_SPORE), - LEVEL_UP_MOVE( 60 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 64 , MOVE_HAZE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PARAS -static const struct LevelUpMove sParasLevelUpLearnset[] = { - LEVEL_UP_MOVE( 7 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 7 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_SLASH), - LEVEL_UP_MOVE( 24 , MOVE_GROWTH), - LEVEL_UP_MOVE( 30 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 35 , MOVE_X_SCISSOR), - LEVEL_UP_MOVE( 40 , MOVE_AROMATHERAPY), - LEVEL_UP_END -}; - -static const struct LevelUpMove sParasectLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 7 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_SLASH), - LEVEL_UP_MOVE( 24 , MOVE_GROWTH), - LEVEL_UP_MOVE( 30 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 35 , MOVE_X_SCISSOR), - LEVEL_UP_MOVE( 40 , MOVE_AROMATHERAPY), - LEVEL_UP_MOVE( 44 , MOVE_SPORE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSectasiteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 7 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_SLASH), - LEVEL_UP_MOVE( 24 , MOVE_GROWTH), - LEVEL_UP_MOVE( 30 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 35 , MOVE_X_SCISSOR), - LEVEL_UP_MOVE( 40 , MOVE_AROMATHERAPY), - LEVEL_UP_MOVE( 44 , MOVE_SPORE), - LEVEL_UP_MOVE( 48 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 52 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFungalithLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 7 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 7 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 15 , MOVE_SLASH), - LEVEL_UP_MOVE( 24 , MOVE_GROWTH), - LEVEL_UP_MOVE( 30 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 35 , MOVE_X_SCISSOR), - LEVEL_UP_MOVE( 40 , MOVE_AROMATHERAPY), - LEVEL_UP_MOVE( 44 , MOVE_SPORE), - LEVEL_UP_MOVE( 48 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 52 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_VENONAT -static const struct LevelUpMove sVenonatLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 1 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 9 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_BUG_BUZZ), - LEVEL_UP_MOVE( 28 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 36 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 41 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVenomothLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SILVER_WIND), - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 9 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_BUG_BUZZ), - LEVEL_UP_MOVE( 28 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 36 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 41 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 47 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 53 , MOVE_SIGNAL_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVenomenaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SILVER_WIND), - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 9 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_BUG_BUZZ), - LEVEL_UP_MOVE( 28 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 36 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 41 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 47 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 53 , MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE( 58 , MOVE_SHADOW_BALL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVenomenonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SILVER_WIND), - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 9 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_BUG_BUZZ), - LEVEL_UP_MOVE( 28 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 36 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 41 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 47 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 53 , MOVE_SIGNAL_BEAM), - LEVEL_UP_MOVE( 58 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 65 , MOVE_TAIL_GLOW), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_DIGLETT -static const struct LevelUpMove sDiglettLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 5 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 17 , MOVE_DIG), - LEVEL_UP_MOVE( 21 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 33 , MOVE_SLASH), - LEVEL_UP_MOVE( 40 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 45 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 48 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 52 , MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 17 , MOVE_DIG), - LEVEL_UP_MOVE( 21 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 26 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 35 , MOVE_SLASH), - LEVEL_UP_MOVE( 42 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 54 , MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDugroupleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 17 , MOVE_DIG), - LEVEL_UP_MOVE( 21 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 26 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 35 , MOVE_SLASH), - LEVEL_UP_MOVE( 42 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 54 , MOVE_FISSURE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sUnearthletLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 17 , MOVE_DIG), - LEVEL_UP_MOVE( 21 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 26 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 35 , MOVE_SLASH), - LEVEL_UP_MOVE( 42 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 54 , MOVE_FISSURE), - LEVEL_UP_MOVE( 58 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 64 , MOVE_OUTRAGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDiglenoidLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 17 , MOVE_DIG), - LEVEL_UP_MOVE( 21 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SLAP), - LEVEL_UP_MOVE( 26 , MOVE_SAND_TOMB), - LEVEL_UP_MOVE( 35 , MOVE_SLASH), - LEVEL_UP_MOVE( 42 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 54 , MOVE_FISSURE), - LEVEL_UP_MOVE( 58 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 60 , MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE( 64 , MOVE_OUTRAGE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MEOWTH -static const struct LevelUpMove sMeowthLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 10 , MOVE_BITE), - LEVEL_UP_MOVE( 14 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 19 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 40 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 45 , MOVE_SWAGGER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPersianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 10 , MOVE_BITE), - LEVEL_UP_MOVE( 14 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 19 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 40 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 45 , MOVE_SWAGGER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFelankhLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 10 , MOVE_BITE), - LEVEL_UP_MOVE( 14 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 19 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 40 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 43 , MOVE_COUNTER), - LEVEL_UP_MOVE( 45 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 51 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPatraphinxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 10 , MOVE_BITE), - LEVEL_UP_MOVE( 14 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 19 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 40 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 43 , MOVE_COUNTER), - LEVEL_UP_MOVE( 45 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 51 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 55 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 60 , MOVE_SECRET_POWER), - LEVEL_UP_MOVE( 68 , MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PSYDUCK -static const struct LevelUpMove sPsyduckLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 11 , MOVE_DISABLE), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 31 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 33 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGolduckLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 11 , MOVE_DISABLE), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 31 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 33 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGilduckLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 11 , MOVE_DISABLE), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 31 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 33 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 45 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 51 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPlatinupusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_SCRATCH), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 8 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 11 , MOVE_DISABLE), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 20 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 25 , MOVE_SCREECH), - LEVEL_UP_MOVE( 31 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 33 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 40 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 45 , MOVE_FEATHERDANCE), - LEVEL_UP_MOVE( 51 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 56 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 60 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 65 , MOVE_COUNTER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMankeyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 6 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 11 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 16 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 26 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 31 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 36 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 41 , MOVE_SCREECH), - LEVEL_UP_MOVE( 46 , MOVE_THRASH), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PRIMEAPE -static const struct LevelUpMove sPrimeapeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1 , MOVE_RAGE), - LEVEL_UP_MOVE( 6 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 11 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 16 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 26 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 28 , MOVE_RAGE), - LEVEL_UP_MOVE( 31 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 36 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 41 , MOVE_SCREECH), - LEVEL_UP_MOVE( 46 , MOVE_THRASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGorillashLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1 , MOVE_RAGE), - LEVEL_UP_MOVE( 6 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 11 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 16 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 26 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 28 , MOVE_RAGE), - LEVEL_UP_MOVE( 31 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 36 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 41 , MOVE_SCREECH), - LEVEL_UP_MOVE( 46 , MOVE_THRASH), - LEVEL_UP_MOVE( 50 , MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE( 55 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 59 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 64 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBonumbellLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1 , MOVE_RAGE), - LEVEL_UP_MOVE( 6 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 11 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 16 , MOVE_FURY_SWIPES), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 26 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 28 , MOVE_RAGE), - LEVEL_UP_MOVE( 31 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 36 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 41 , MOVE_SCREECH), - LEVEL_UP_MOVE( 46 , MOVE_THRASH), - LEVEL_UP_MOVE( 50 , MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE( 52 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 55 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 59 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 64 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_GROWLITHE -static const struct LevelUpMove sGrowlitheLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_ROAR), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_LEER), - LEVEL_UP_MOVE( 19 , MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 25 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 31 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 37 , MOVE_AGILITY), - LEVEL_UP_MOVE( 40 , MOVE_BLAZE_KICK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sArcanineLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_ROAR), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_LEER), - LEVEL_UP_MOVE( 19 , MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 25 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 31 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 37 , MOVE_AGILITY), - LEVEL_UP_MOVE( 40 , MOVE_BLAZE_KICK), - LEVEL_UP_MOVE( 45 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 49 , MOVE_SLASH), - LEVEL_UP_MOVE( 70 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSingeshaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_ROAR), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_LEER), - LEVEL_UP_MOVE( 19 , MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 25 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 31 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 37 , MOVE_AGILITY), - LEVEL_UP_MOVE( 40 , MOVE_BLAZE_KICK), - LEVEL_UP_MOVE( 45 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 49 , MOVE_SLASH), - LEVEL_UP_MOVE( 53 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 70 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGuardianceLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_ROAR), - LEVEL_UP_MOVE( 7 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_LEER), - LEVEL_UP_MOVE( 19 , MOVE_ODOR_SLEUTH), - LEVEL_UP_MOVE( 25 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 31 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 37 , MOVE_AGILITY), - LEVEL_UP_MOVE( 40 , MOVE_BLAZE_KICK), - LEVEL_UP_MOVE( 45 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 49 , MOVE_SLASH), - LEVEL_UP_MOVE( 53 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 60 , MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 64 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 68 , MOVE_OUTRAGE), - LEVEL_UP_MOVE( 75 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_POLIWAG -static const struct LevelUpMove sPoliwagLevelUpLearnset[] = { - LEVEL_UP_MOVE( 7 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 29 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 34 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 38 , MOVE_BELLY_DRUM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPoliwhirlLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 29 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 34 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 38 , MOVE_BELLY_DRUM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPoliwrathLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 29 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 34 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 36 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 42 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 47 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 49 , MOVE_MEGA_PUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPolitoesLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 29 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 34 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 36 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 42 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 47 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 49 , MOVE_MEGA_PUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPoliwiseLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 29 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 34 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 36 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 42 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 47 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 49 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 55 , MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 60 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPoliathLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 19 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 29 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 34 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 36 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 42 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 47 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 49 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 55 , MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 60 , MOVE_SUPERPOWER), - LEVEL_UP_MOVE( 65 , MOVE_MEGA_KICK), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_ABRA -static const struct LevelUpMove sAbraLevelUpLearnset[] = { - LEVEL_UP_END -}; - -static const struct LevelUpMove sKadabraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_KINESIS), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 18 , MOVE_DISABLE), - LEVEL_UP_MOVE( 21 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 23 , MOVE_REFLECT), - LEVEL_UP_MOVE( 25 , MOVE_RECOVER), - LEVEL_UP_MOVE( 30 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 33 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 36 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_TRICK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAlakazamLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_KINESIS), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 18 , MOVE_DISABLE), - LEVEL_UP_MOVE( 21 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 23 , MOVE_REFLECT), - LEVEL_UP_MOVE( 25 , MOVE_RECOVER), - LEVEL_UP_MOVE( 30 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 33 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 36 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_TRICK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSimsalabimLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_KINESIS), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 18 , MOVE_DISABLE), - LEVEL_UP_MOVE( 21 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 23 , MOVE_REFLECT), - LEVEL_UP_MOVE( 25 , MOVE_RECOVER), - LEVEL_UP_MOVE( 30 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 33 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 36 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_TRICK), - LEVEL_UP_MOVE( 44 , MOVE_SHADOW_BALL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVohooduLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_KINESIS), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 18 , MOVE_DISABLE), - LEVEL_UP_MOVE( 21 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 23 , MOVE_REFLECT), - LEVEL_UP_MOVE( 25 , MOVE_RECOVER), - LEVEL_UP_MOVE( 30 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 33 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 36 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_TRICK), - LEVEL_UP_MOVE( 42 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 44 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 53 , MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 55 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 55 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 55 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 59 , MOVE_DARK_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTzarkartzLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_KINESIS), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 16 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 18 , MOVE_DISABLE), - LEVEL_UP_MOVE( 21 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 23 , MOVE_REFLECT), - LEVEL_UP_MOVE( 25 , MOVE_RECOVER), - LEVEL_UP_MOVE( 30 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 33 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 36 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_TRICK), - LEVEL_UP_MOVE( 42 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 44 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 53 , MOVE_ENERGY_BALL), - LEVEL_UP_MOVE( 55 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 55 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 55 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 59 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 63 , MOVE_MUDDY_WATER), - LEVEL_UP_MOVE( 68 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MACHOP -static const struct LevelUpMove sMachopLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 7 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 13 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 19 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 22 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 37 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 40 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 43 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 49 , MOVE_DYNAMICPUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMachokeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 7 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 13 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 19 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 22 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 37 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 40 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 43 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 49 , MOVE_DYNAMICPUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMachampLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 7 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 13 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 19 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 22 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 37 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 40 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 43 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 49 , MOVE_DYNAMICPUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMachulkLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 7 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 13 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 19 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 22 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 37 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 40 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 43 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 49 , MOVE_DYNAMICPUNCH), - LEVEL_UP_MOVE( 52 , MOVE_CLOSE_COMBAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAbomachulkLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 7 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 13 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 19 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 22 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 37 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 40 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 43 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 49 , MOVE_DYNAMICPUNCH), - LEVEL_UP_MOVE( 52 , MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE( 55 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 58 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 63 , MOVE_IRON_HEAD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMachitanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 7 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 13 , MOVE_KARATE_CHOP), - LEVEL_UP_MOVE( 19 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 22 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 37 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 40 , MOVE_CROSS_CHOP), - LEVEL_UP_MOVE( 43 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 49 , MOVE_DYNAMICPUNCH), - LEVEL_UP_MOVE( 52 , MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE( 55 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 58 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 63 , MOVE_IRON_HEAD), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_BELLSPROUT -static const struct LevelUpMove sBellsproutLevelUpLearnset[] = { - LEVEL_UP_MOVE( 6 , MOVE_GROWTH), - LEVEL_UP_MOVE( 11 , MOVE_WRAP), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 20 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 25 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 30 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 34 , MOVE_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_TOXIC), - LEVEL_UP_MOVE( 44 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 50 , MOVE_INGRAIN), - LEVEL_UP_MOVE( 60 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWeepinbellLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWTH), - LEVEL_UP_MOVE( 1 , MOVE_WRAP), - LEVEL_UP_MOVE( 6 , MOVE_GROWTH), - LEVEL_UP_MOVE( 11 , MOVE_WRAP), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 20 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 25 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 30 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 34 , MOVE_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_TOXIC), - LEVEL_UP_MOVE( 44 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 50 , MOVE_INGRAIN), - LEVEL_UP_MOVE( 60 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVictreebelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWTH), - LEVEL_UP_MOVE( 1 , MOVE_WRAP), - LEVEL_UP_MOVE( 6 , MOVE_GROWTH), - LEVEL_UP_MOVE( 11 , MOVE_WRAP), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 20 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 25 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 30 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 34 , MOVE_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_TOXIC), - LEVEL_UP_MOVE( 44 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 50 , MOVE_INGRAIN), - LEVEL_UP_MOVE( 60 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMucktribelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWTH), - LEVEL_UP_MOVE( 1 , MOVE_WRAP), - LEVEL_UP_MOVE( 6 , MOVE_GROWTH), - LEVEL_UP_MOVE( 11 , MOVE_WRAP), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 20 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 25 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 30 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 34 , MOVE_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_TOXIC), - LEVEL_UP_MOVE( 44 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 50 , MOVE_INGRAIN), - LEVEL_UP_MOVE( 60 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCarnabellLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWTH), - LEVEL_UP_MOVE( 1 , MOVE_WRAP), - LEVEL_UP_MOVE( 6 , MOVE_GROWTH), - LEVEL_UP_MOVE( 11 , MOVE_WRAP), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 20 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 25 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 30 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 34 , MOVE_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_TOXIC), - LEVEL_UP_MOVE( 44 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 50 , MOVE_INGRAIN), - LEVEL_UP_MOVE( 60 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDevloraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWTH), - LEVEL_UP_MOVE( 1 , MOVE_WRAP), - LEVEL_UP_MOVE( 6 , MOVE_GROWTH), - LEVEL_UP_MOVE( 11 , MOVE_WRAP), - LEVEL_UP_MOVE( 15 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 15 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 20 , MOVE_RAZOR_LEAF), - LEVEL_UP_MOVE( 25 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 30 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 34 , MOVE_SLAM), - LEVEL_UP_MOVE( 39 , MOVE_TOXIC), - LEVEL_UP_MOVE( 44 , MOVE_PETAL_DANCE), - LEVEL_UP_MOVE( 50 , MOVE_INGRAIN), - LEVEL_UP_MOVE( 60 , MOVE_FRENZY_PLANT), - LEVEL_UP_MOVE( 65 , MOVE_MEGAHORN), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_TENTACOOL -static const struct LevelUpMove sTentacoolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 6 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 12 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 19 , MOVE_ACID), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_WRAP), - LEVEL_UP_MOVE( 36 , MOVE_BARRIER), - LEVEL_UP_MOVE( 38 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 45 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTentacruelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 6 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 12 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 19 , MOVE_ACID), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_WRAP), - LEVEL_UP_MOVE( 38 , MOVE_BARRIER), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTentacateLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 6 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 12 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 19 , MOVE_ACID), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_WRAP), - LEVEL_UP_MOVE( 38 , MOVE_BARRIER), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 57 , MOVE_DRAGONBREATH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTentabomaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 6 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 12 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 19 , MOVE_ACID), - LEVEL_UP_MOVE( 25 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_WRAP), - LEVEL_UP_MOVE( 38 , MOVE_BARRIER), - LEVEL_UP_MOVE( 47 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 57 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 65 , MOVE_OUTRAGE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_GEODUDE -static const struct LevelUpMove sGeodudeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 6 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 11 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 16 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 21 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 24 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 30 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 36 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 40 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 48 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGravelerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 11 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 16 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 21 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 24 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 30 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 36 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 40 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 48 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGolemLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 11 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 16 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 21 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 24 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 30 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 36 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 40 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 48 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlagolemLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 11 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 16 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 21 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 24 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 30 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 36 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 40 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 48 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 58 , MOVE_CURSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMoltremLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 11 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 16 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 21 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 24 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 30 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 36 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 40 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 48 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 58 , MOVE_CURSE), - LEVEL_UP_MOVE( 65 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVolcanicolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 1 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 6 , MOVE_MUD_SPORT), - LEVEL_UP_MOVE( 11 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 16 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 21 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 24 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 30 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 36 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 40 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 48 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 58 , MOVE_CURSE), - LEVEL_UP_MOVE( 65 , MOVE_SACRED_FIRE), - LEVEL_UP_MOVE( 70 , MOVE_ERUPTION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PONYTA -static const struct LevelUpMove sPonytaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_EMBER), - LEVEL_UP_MOVE( 14 , MOVE_ROAR), - LEVEL_UP_MOVE( 19 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 25 , MOVE_STOMP), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 34 , MOVE_AGILITY), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 43 , MOVE_BLAZE_KICK), - LEVEL_UP_MOVE( 60 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRapidashLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_EMBER), - LEVEL_UP_MOVE( 14 , MOVE_ROAR), - LEVEL_UP_MOVE( 19 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 25 , MOVE_STOMP), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 34 , MOVE_AGILITY), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 43 , MOVE_BLAZE_KICK), - LEVEL_UP_MOVE( 60 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCombustangLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_EMBER), - LEVEL_UP_MOVE( 14 , MOVE_ROAR), - LEVEL_UP_MOVE( 19 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 25 , MOVE_STOMP), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 34 , MOVE_AGILITY), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 43 , MOVE_BLAZE_KICK), - LEVEL_UP_MOVE( 48 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 52 , MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE( 57 , MOVE_FACADE), - LEVEL_UP_MOVE( 65 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKnightmareLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_EMBER), - LEVEL_UP_MOVE( 14 , MOVE_ROAR), - LEVEL_UP_MOVE( 19 , MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE( 25 , MOVE_STOMP), - LEVEL_UP_MOVE( 30 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 34 , MOVE_AGILITY), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 39 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 43 , MOVE_BLAZE_KICK), - LEVEL_UP_MOVE( 48 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 52 , MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE( 57 , MOVE_FACADE), - LEVEL_UP_MOVE( 61 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 65 , MOVE_SACRED_FIRE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SLOWPOKE -static const struct LevelUpMove sSlowpokeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_YAWN), - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 6 , MOVE_GROWL), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 21 , MOVE_DISABLE), - LEVEL_UP_MOVE( 24 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 29 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 34 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 39 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 42 , MOVE_PSYCH_UP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlowbroLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_YAWN), - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 6 , MOVE_GROWL), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 21 , MOVE_DISABLE), - LEVEL_UP_MOVE( 24 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 29 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 34 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 39 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 42 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlowmateLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_YAWN), - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 6 , MOVE_GROWL), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 21 , MOVE_DISABLE), - LEVEL_UP_MOVE( 24 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 29 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 34 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 39 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 42 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 46 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 60 , MOVE_SHADOW_BALL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSlowchumLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_YAWN), - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 6 , MOVE_GROWL), - LEVEL_UP_MOVE( 13 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 17 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 21 , MOVE_DISABLE), - LEVEL_UP_MOVE( 24 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 29 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 34 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 39 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 42 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 46 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 60 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 65 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 68 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MAGNEMITE -static const struct LevelUpMove sMagnemiteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 6 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 26 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 38 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_SCREECH), - LEVEL_UP_MOVE( 50 , MOVE_ZAP_CANNON), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagnetonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 6 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 23 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 38 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_SCREECH), - LEVEL_UP_MOVE( 50 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 54 , MOVE_THUNDERBOLT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagnezoneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 6 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 23 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 38 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_SCREECH), - LEVEL_UP_MOVE( 50 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 54 , MOVE_THUNDERBOLT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagnemeldLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 6 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 23 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 38 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_SCREECH), - LEVEL_UP_MOVE( 50 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 54 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 59 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 65 , MOVE_OVERHEAT), - LEVEL_UP_MOVE( 69 , MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagnemastrLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 6 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 11 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 16 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 23 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 26 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 38 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_SCREECH), - LEVEL_UP_MOVE( 50 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 54 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 59 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 65 , MOVE_OVERHEAT), - LEVEL_UP_MOVE( 69 , MOVE_THUNDER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_FARFETCHD -static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { - LEVEL_UP_MOVE( 6 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 11 , MOVE_LEER), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 20 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 26 , MOVE_FURY_CUTTER), - LEVEL_UP_MOVE( 31 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 41 , MOVE_SLASH), - LEVEL_UP_MOVE( 46 , MOVE_FALSE_SWIPE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sForfowldLevelUpLearnset[] = { - LEVEL_UP_MOVE( 6 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 11 , MOVE_LEER), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 20 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 26 , MOVE_FURY_CUTTER), - LEVEL_UP_MOVE( 31 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 41 , MOVE_SLASH), - LEVEL_UP_MOVE( 46 , MOVE_FALSE_SWIPE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFowlntomLevelUpLearnset[] = { - LEVEL_UP_MOVE( 6 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 11 , MOVE_LEER), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_AERIAL_ACE), - LEVEL_UP_MOVE( 20 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 26 , MOVE_FURY_CUTTER), - LEVEL_UP_MOVE( 31 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 35 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 41 , MOVE_SLASH), - LEVEL_UP_MOVE( 46 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 50 , MOVE_CURSE), - LEVEL_UP_MOVE( 55 , MOVE_PERISH_SONG), - LEVEL_UP_MOVE( 59 , MOVE_BRAVE_BIRD), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_DODUO -static const struct LevelUpMove sDoduoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 21 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_TRIPLE_KICK), - LEVEL_UP_MOVE( 33 , MOVE_UPROAR), - LEVEL_UP_MOVE( 37 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 40 , MOVE_AGILITY), - LEVEL_UP_MOVE( 44 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 50 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 55 , MOVE_SKY_UPPERCUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDodrioLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 21 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_TRIPLE_KICK), - LEVEL_UP_MOVE( 33 , MOVE_UPROAR), - LEVEL_UP_MOVE( 37 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 40 , MOVE_AGILITY), - LEVEL_UP_MOVE( 44 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 50 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 55 , MOVE_SKY_UPPERCUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sQuadodoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 9 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 21 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_TRIPLE_KICK), - LEVEL_UP_MOVE( 33 , MOVE_UPROAR), - LEVEL_UP_MOVE( 37 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 40 , MOVE_AGILITY), - LEVEL_UP_MOVE( 44 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 50 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 55 , MOVE_SKY_UPPERCUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDodozenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 9 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 13 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 21 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 25 , MOVE_TRIPLE_KICK), - LEVEL_UP_MOVE( 33 , MOVE_UPROAR), - LEVEL_UP_MOVE( 37 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 40 , MOVE_AGILITY), - LEVEL_UP_MOVE( 44 , MOVE_BOUNCE), - LEVEL_UP_MOVE( 50 , MOVE_FAINT_ATTACK), - LEVEL_UP_MOVE( 55 , MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE( 60 , MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 63 , MOVE_BRAVE_BIRD), - LEVEL_UP_MOVE( 68 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 70 , MOVE_BLAZE_KICK), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SEEL -static const struct LevelUpMove sSeelLevelUpLearnset[] = { - LEVEL_UP_MOVE( 9 , MOVE_GROWL), - LEVEL_UP_MOVE( 17 , MOVE_ICY_WIND), - LEVEL_UP_MOVE( 21 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 25 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 37 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 41 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 49 , MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDewgongLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 1 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 1 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GROWL), - LEVEL_UP_MOVE( 17 , MOVE_ICY_WIND), - LEVEL_UP_MOVE( 21 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 25 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 27 , MOVE_ENCORE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 34 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 40 , MOVE_MAGIC_COAT), - LEVEL_UP_MOVE( 40 , MOVE_HAIL), - LEVEL_UP_MOVE( 40 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 42 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 51 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 52 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 60 , MOVE_SUBSTITUTE), - LEVEL_UP_MOVE( 64 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 65 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPrecipedLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 1 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 1 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GROWL), - LEVEL_UP_MOVE( 17 , MOVE_ICY_WIND), - LEVEL_UP_MOVE( 21 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 25 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 27 , MOVE_ENCORE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 34 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 40 , MOVE_MAGIC_COAT), - LEVEL_UP_MOVE( 40 , MOVE_HAIL), - LEVEL_UP_MOVE( 40 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 42 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 51 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 52 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 60 , MOVE_SUBSTITUTE), - LEVEL_UP_MOVE( 64 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 65 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sManatiiLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_ICY_WIND), - LEVEL_UP_MOVE( 1 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 1 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 1 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 9 , MOVE_GROWL), - LEVEL_UP_MOVE( 17 , MOVE_ICY_WIND), - LEVEL_UP_MOVE( 21 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 25 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 27 , MOVE_ENCORE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 29 , MOVE_REST), - LEVEL_UP_MOVE( 34 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 40 , MOVE_MAGIC_COAT), - LEVEL_UP_MOVE( 40 , MOVE_HAIL), - LEVEL_UP_MOVE( 40 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 42 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 51 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 52 , MOVE_CALM_MIND), - LEVEL_UP_MOVE( 60 , MOVE_SUBSTITUTE), - LEVEL_UP_MOVE( 64 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 65 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_GRIMER -static const struct LevelUpMove sGrimerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POUND), - LEVEL_UP_MOVE( 4 , MOVE_HARDEN), - LEVEL_UP_MOVE( 8 , MOVE_DISABLE), - LEVEL_UP_MOVE( 13 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 19 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 24 , MOVE_SCREECH), - LEVEL_UP_MOVE( 29 , MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 33 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 50 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMukLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POUND), - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 4 , MOVE_HARDEN), - LEVEL_UP_MOVE( 8 , MOVE_DISABLE), - LEVEL_UP_MOVE( 13 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 19 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 24 , MOVE_SCREECH), - LEVEL_UP_MOVE( 29 , MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 33 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 35 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 39 , MOVE_PAIN_SPLIT), - LEVEL_UP_MOVE( 50 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGunkLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POUND), - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 4 , MOVE_HARDEN), - LEVEL_UP_MOVE( 8 , MOVE_DISABLE), - LEVEL_UP_MOVE( 13 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 19 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 24 , MOVE_SCREECH), - LEVEL_UP_MOVE( 29 , MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 33 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 35 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 39 , MOVE_PAIN_SPLIT), - LEVEL_UP_MOVE( 45 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 50 , MOVE_MEMENTO), - LEVEL_UP_MOVE( 54 , MOVE_TOXIC), - LEVEL_UP_MOVE( 60 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 65 , MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSkumLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POUND), - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 4 , MOVE_HARDEN), - LEVEL_UP_MOVE( 8 , MOVE_DISABLE), - LEVEL_UP_MOVE( 13 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 19 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 24 , MOVE_SCREECH), - LEVEL_UP_MOVE( 29 , MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 33 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 35 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 39 , MOVE_PAIN_SPLIT), - LEVEL_UP_MOVE( 45 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 50 , MOVE_MEMENTO), - LEVEL_UP_MOVE( 54 , MOVE_TOXIC), - LEVEL_UP_MOVE( 60 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 65 , MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SHELLDER -static const struct LevelUpMove sShellderLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 8 , MOVE_ICICLE_SPEAR), - LEVEL_UP_MOVE( 15 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 22 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 29 , MOVE_PROTECT), - LEVEL_UP_MOVE( 36 , MOVE_ICE_FANG), - LEVEL_UP_MOVE( 40 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 45 , MOVE_CLAMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCloysterLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 8 , MOVE_ICICLE_SPEAR), - LEVEL_UP_MOVE( 15 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 22 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 29 , MOVE_PROTECT), - LEVEL_UP_MOVE( 36 , MOVE_ICE_FANG), - LEVEL_UP_MOVE( 40 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 43 , MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE( 48 , MOVE_CLAMP), - LEVEL_UP_MOVE( 53 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 59 , MOVE_CRUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAnenemyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 8 , MOVE_ICICLE_SPEAR), - LEVEL_UP_MOVE( 15 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 22 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 29 , MOVE_PROTECT), - LEVEL_UP_MOVE( 36 , MOVE_ICE_FANG), - LEVEL_UP_MOVE( 40 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 43 , MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE( 48 , MOVE_CLAMP), - LEVEL_UP_MOVE( 53 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 59 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 65 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 68 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGlaishellLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 8 , MOVE_ICICLE_SPEAR), - LEVEL_UP_MOVE( 15 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 22 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 29 , MOVE_PROTECT), - LEVEL_UP_MOVE( 36 , MOVE_ICE_FANG), - LEVEL_UP_MOVE( 40 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 43 , MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE( 48 , MOVE_CLAMP), - LEVEL_UP_MOVE( 53 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 59 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 65 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 68 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_GASTLY -static const struct LevelUpMove sGastlyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 8 , MOVE_SPITE), - LEVEL_UP_MOVE( 13 , MOVE_CURSE), - LEVEL_UP_MOVE( 16 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 21 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_DREAM_EATER), - LEVEL_UP_MOVE( 28 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 30 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 35 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_NIGHTMARE), - LEVEL_UP_MOVE( 48 , MOVE_MEAN_LOOK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHaunterLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_SPITE), - LEVEL_UP_MOVE( 8 , MOVE_SPITE), - LEVEL_UP_MOVE( 13 , MOVE_CURSE), - LEVEL_UP_MOVE( 16 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 21 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_DREAM_EATER), - LEVEL_UP_MOVE( 28 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 30 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 32 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 35 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_NIGHTMARE), - LEVEL_UP_MOVE( 48 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 50 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 55 , MOVE_GLARE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGengarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_SPITE), - LEVEL_UP_MOVE( 8 , MOVE_SPITE), - LEVEL_UP_MOVE( 13 , MOVE_CURSE), - LEVEL_UP_MOVE( 16 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 21 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_DREAM_EATER), - LEVEL_UP_MOVE( 28 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 30 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 32 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 35 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_NIGHTMARE), - LEVEL_UP_MOVE( 48 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 50 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 55 , MOVE_GLARE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGengoneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_SPITE), - LEVEL_UP_MOVE( 8 , MOVE_SPITE), - LEVEL_UP_MOVE( 13 , MOVE_CURSE), - LEVEL_UP_MOVE( 16 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 21 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_DREAM_EATER), - LEVEL_UP_MOVE( 28 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 30 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 32 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 35 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_NIGHTMARE), - LEVEL_UP_MOVE( 48 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 50 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 55 , MOVE_GLARE), - LEVEL_UP_MOVE( 61 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPoltergastLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_SPITE), - LEVEL_UP_MOVE( 8 , MOVE_SPITE), - LEVEL_UP_MOVE( 13 , MOVE_CURSE), - LEVEL_UP_MOVE( 16 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 21 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_DREAM_EATER), - LEVEL_UP_MOVE( 28 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 30 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 32 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 35 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_NIGHTMARE), - LEVEL_UP_MOVE( 48 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 50 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 55 , MOVE_GLARE), - LEVEL_UP_MOVE( 61 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGrimmLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_SPITE), - LEVEL_UP_MOVE( 8 , MOVE_SPITE), - LEVEL_UP_MOVE( 13 , MOVE_CURSE), - LEVEL_UP_MOVE( 16 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 21 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_DREAM_EATER), - LEVEL_UP_MOVE( 28 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 30 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 32 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 35 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 41 , MOVE_NIGHTMARE), - LEVEL_UP_MOVE( 48 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 50 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 55 , MOVE_GLARE), - LEVEL_UP_MOVE( 61 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 66 , MOVE_TORMENT), - LEVEL_UP_MOVE( 70 , MOVE_CALM_MIND), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_ONIX -static const struct LevelUpMove sOnixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCREECH), - LEVEL_UP_MOVE( 8 , MOVE_BIND), - LEVEL_UP_MOVE( 12 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 23 , MOVE_RAGE), - LEVEL_UP_MOVE( 28 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 34 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 38 , MOVE_SLAM), - LEVEL_UP_MOVE( 43 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 47 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 51 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 56 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSteelixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCREECH), - LEVEL_UP_MOVE( 8 , MOVE_BIND), - LEVEL_UP_MOVE( 12 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 23 , MOVE_RAGE), - LEVEL_UP_MOVE( 28 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 30 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 34 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 38 , MOVE_SLAM), - LEVEL_UP_MOVE( 43 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 47 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 51 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 56 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPlatnixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCREECH), - LEVEL_UP_MOVE( 8 , MOVE_BIND), - LEVEL_UP_MOVE( 12 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 23 , MOVE_RAGE), - LEVEL_UP_MOVE( 28 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 30 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 34 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 38 , MOVE_SLAM), - LEVEL_UP_MOVE( 43 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 47 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 51 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 56 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 60 , MOVE_CURSE), - LEVEL_UP_MOVE( 65 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sObsidianixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCREECH), - LEVEL_UP_MOVE( 8 , MOVE_BIND), - LEVEL_UP_MOVE( 12 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 23 , MOVE_RAGE), - LEVEL_UP_MOVE( 28 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 30 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 34 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 38 , MOVE_SLAM), - LEVEL_UP_MOVE( 43 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 47 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 51 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 56 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 60 , MOVE_CURSE), - LEVEL_UP_MOVE( 65 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sStalagmixLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SCREECH), - LEVEL_UP_MOVE( 8 , MOVE_BIND), - LEVEL_UP_MOVE( 12 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 23 , MOVE_RAGE), - LEVEL_UP_MOVE( 28 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 30 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 34 , MOVE_SANDSTORM), - LEVEL_UP_MOVE( 38 , MOVE_SLAM), - LEVEL_UP_MOVE( 43 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 47 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 51 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 56 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 60 , MOVE_CURSE), - LEVEL_UP_MOVE( 65 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 70 , MOVE_METAL_BURST), - LEVEL_UP_MOVE( 75 , MOVE_OUTRAGE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_DROWZEE -static const struct LevelUpMove sDrowzeeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_DISABLE), - LEVEL_UP_MOVE( 11 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_POISON_GAS), - LEVEL_UP_MOVE( 27 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 31 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 37 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 41 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 47 , MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHypnoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POUND), - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 7 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 7 , MOVE_DISABLE), - LEVEL_UP_MOVE( 11 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_POISON_GAS), - LEVEL_UP_MOVE( 29 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 35 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 41 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 43 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 49 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 50 , MOVE_DETECT), - LEVEL_UP_MOVE( 55 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 55 , MOVE_SKILL_SWAP), - LEVEL_UP_MOVE( 57 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 60 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 63 , MOVE_SPITE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLullooLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POUND), - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 7 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 7 , MOVE_DISABLE), - LEVEL_UP_MOVE( 11 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_POISON_GAS), - LEVEL_UP_MOVE( 29 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 35 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 41 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 43 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 49 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 50 , MOVE_DETECT), - LEVEL_UP_MOVE( 55 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 55 , MOVE_SKILL_SWAP), - LEVEL_UP_MOVE( 57 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 60 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 63 , MOVE_SPITE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSomnisoothLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POUND), - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 1 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 7 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 7 , MOVE_DISABLE), - LEVEL_UP_MOVE( 11 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 17 , MOVE_SWIFT), - LEVEL_UP_MOVE( 21 , MOVE_POISON_GAS), - LEVEL_UP_MOVE( 29 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 35 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 41 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 43 , MOVE_PSYCH_UP), - LEVEL_UP_MOVE( 49 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 50 , MOVE_DETECT), - LEVEL_UP_MOVE( 55 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 55 , MOVE_SKILL_SWAP), - LEVEL_UP_MOVE( 57 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 60 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 63 , MOVE_SPITE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_KRABBY -static const struct LevelUpMove sKrabbyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_LEER), - LEVEL_UP_MOVE( 12 , MOVE_VICEGRIP), - LEVEL_UP_MOVE( 16 , MOVE_HARDEN), - LEVEL_UP_MOVE( 19 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 23 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 27 , MOVE_STOMP), - LEVEL_UP_MOVE( 34 , MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 38 , MOVE_PROTECT), - LEVEL_UP_MOVE( 45 , MOVE_CRABHAMMER), - LEVEL_UP_MOVE( 49 , MOVE_FLAIL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKinglerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_VICEGRIP), - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 5 , MOVE_LEER), - LEVEL_UP_MOVE( 12 , MOVE_VICEGRIP), - LEVEL_UP_MOVE( 16 , MOVE_HARDEN), - LEVEL_UP_MOVE( 19 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 23 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 27 , MOVE_STOMP), - LEVEL_UP_MOVE( 30 , MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 35 , MOVE_PROTECT), - LEVEL_UP_MOVE( 40 , MOVE_CRABHAMMER), - LEVEL_UP_MOVE( 50 , MOVE_FLAIL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKraklawLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_VICEGRIP), - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 5 , MOVE_LEER), - LEVEL_UP_MOVE( 12 , MOVE_VICEGRIP), - LEVEL_UP_MOVE( 16 , MOVE_HARDEN), - LEVEL_UP_MOVE( 19 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 23 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 27 , MOVE_STOMP), - LEVEL_UP_MOVE( 30 , MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 35 , MOVE_PROTECT), - LEVEL_UP_MOVE( 40 , MOVE_CRABHAMMER), - LEVEL_UP_MOVE( 45 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 50 , MOVE_FLAIL), - LEVEL_UP_MOVE( 56 , MOVE_SWORDS_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTeklawnoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1 , MOVE_BUBBLE), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_VICEGRIP), - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 5 , MOVE_LEER), - LEVEL_UP_MOVE( 12 , MOVE_VICEGRIP), - LEVEL_UP_MOVE( 16 , MOVE_HARDEN), - LEVEL_UP_MOVE( 19 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 23 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 27 , MOVE_STOMP), - LEVEL_UP_MOVE( 30 , MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 35 , MOVE_PROTECT), - LEVEL_UP_MOVE( 40 , MOVE_CRABHAMMER), - LEVEL_UP_MOVE( 45 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 50 , MOVE_FLAIL), - LEVEL_UP_MOVE( 56 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 60 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 65 , MOVE_ERUPTION), - LEVEL_UP_MOVE( 70 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_VOLTORB -static const struct LevelUpMove sVoltorbLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 8 , MOVE_SCREECH), - LEVEL_UP_MOVE( 15 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 27 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 32 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 37 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 42 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 46 , MOVE_SWIFT), - LEVEL_UP_MOVE( 49 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 57 , MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 8 , MOVE_SCREECH), - LEVEL_UP_MOVE( 15 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 27 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 32 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 37 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 42 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 46 , MOVE_SWIFT), - LEVEL_UP_MOVE( 49 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 57 , MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectrodesLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 8 , MOVE_SCREECH), - LEVEL_UP_MOVE( 15 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 27 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 32 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 37 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 42 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 46 , MOVE_SWIFT), - LEVEL_UP_MOVE( 49 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 53 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 57 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 60 , MOVE_OVERHEAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectrodexLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 8 , MOVE_SCREECH), - LEVEL_UP_MOVE( 15 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 27 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 32 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 37 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 42 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 46 , MOVE_SWIFT), - LEVEL_UP_MOVE( 49 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 53 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 57 , MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectrodemLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 8 , MOVE_SCREECH), - LEVEL_UP_MOVE( 15 , MOVE_SONICBOOM), - LEVEL_UP_MOVE( 21 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 27 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 32 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 37 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 42 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 46 , MOVE_SWIFT), - LEVEL_UP_MOVE( 49 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 53 , MOVE_HYPER_VOICE), - LEVEL_UP_MOVE( 57 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 62 , MOVE_OVERHEAT), - LEVEL_UP_MOVE( 75 , MOVE_MIST_BALL), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_EXEGGCUTE -static const struct LevelUpMove sExeggcuteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_UPROAR), - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_REFLECT), - LEVEL_UP_MOVE( 13 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 16 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 19 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 25 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 25 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 30 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 38 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 42 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 42 , MOVE_SUNNY_DAY), - LEVEL_UP_END -}; - -static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_UPROAR), - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_REFLECT), - LEVEL_UP_MOVE( 13 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 16 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 19 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 25 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 25 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 30 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 38 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 42 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 42 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 47 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 53 , MOVE_EARTH_POWER), - LEVEL_UP_MOVE( 59 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sExeggityLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_UPROAR), - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_REFLECT), - LEVEL_UP_MOVE( 13 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 16 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 19 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 25 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 25 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 30 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 38 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 42 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 42 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 47 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 53 , MOVE_EARTH_POWER), - LEVEL_UP_MOVE( 59 , MOVE_FRENZY_PLANT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sExeggtricLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_UPROAR), - LEVEL_UP_MOVE( 1 , MOVE_HYPNOSIS), - LEVEL_UP_MOVE( 7 , MOVE_REFLECT), - LEVEL_UP_MOVE( 13 , MOVE_LEECH_SEED), - LEVEL_UP_MOVE( 16 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 19 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 25 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 25 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 25 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 30 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 38 , MOVE_GIGA_DRAIN), - LEVEL_UP_MOVE( 42 , MOVE_SOLARBEAM), - LEVEL_UP_MOVE( 42 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 47 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 53 , MOVE_EARTH_POWER), - LEVEL_UP_MOVE( 59 , MOVE_FRENZY_PLANT), - LEVEL_UP_MOVE( 62 , MOVE_COUNTER), - LEVEL_UP_MOVE( 70 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_CUBONE -static const struct LevelUpMove sCuboneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 13 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 17 , MOVE_LEER), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 25 , MOVE_BONEMERANG), - LEVEL_UP_MOVE( 29 , MOVE_RAGE), - LEVEL_UP_MOVE( 33 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 37 , MOVE_THRASH), - LEVEL_UP_MOVE( 41 , MOVE_BONE_RUSH), - LEVEL_UP_MOVE( 45 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMarowakLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 1 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 13 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 17 , MOVE_LEER), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 25 , MOVE_BONEMERANG), - LEVEL_UP_MOVE( 30 , MOVE_RAGE), - LEVEL_UP_MOVE( 32 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 39 , MOVE_THRASH), - LEVEL_UP_MOVE( 42 , MOVE_BONE_RUSH), - LEVEL_UP_MOVE( 50 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 55 , MOVE_FRUSTRATION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sOsselobberLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 1 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 13 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 17 , MOVE_LEER), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 25 , MOVE_BONEMERANG), - LEVEL_UP_MOVE( 30 , MOVE_RAGE), - LEVEL_UP_MOVE( 32 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 39 , MOVE_THRASH), - LEVEL_UP_MOVE( 42 , MOVE_BONE_RUSH), - LEVEL_UP_MOVE( 50 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 55 , MOVE_FRUSTRATION), - LEVEL_UP_MOVE( 58 , MOVE_BEAT_UP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWraiwrathLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 1 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 13 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 17 , MOVE_LEER), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 25 , MOVE_BONEMERANG), - LEVEL_UP_MOVE( 30 , MOVE_RAGE), - LEVEL_UP_MOVE( 32 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 39 , MOVE_THRASH), - LEVEL_UP_MOVE( 42 , MOVE_BONE_RUSH), - LEVEL_UP_MOVE( 50 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 53 , MOVE_VITAL_THROW), - LEVEL_UP_MOVE( 54 , MOVE_SHADOW_BONE), - LEVEL_UP_MOVE( 55 , MOVE_FRUSTRATION), - LEVEL_UP_MOVE( 58 , MOVE_BEAT_UP), - LEVEL_UP_MOVE( 63 , MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 66 , MOVE_GRUDGE), - LEVEL_UP_MOVE( 66 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 70 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_HITMONLEE -static const struct LevelUpMove sHitmonleeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 6 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 11 , MOVE_ROLLING_KICK), - LEVEL_UP_MOVE( 16 , MOVE_JUMP_KICK), - LEVEL_UP_MOVE( 20 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 26 , MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE( 31 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 36 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 41 , MOVE_ENDURE), - LEVEL_UP_MOVE( 46 , MOVE_MEGA_KICK), - LEVEL_UP_MOVE( 51 , MOVE_REVERSAL), - LEVEL_UP_MOVE( 54 , MOVE_BULK_UP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCleevoyantLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 6 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 11 , MOVE_ROLLING_KICK), - LEVEL_UP_MOVE( 16 , MOVE_JUMP_KICK), - LEVEL_UP_MOVE( 20 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 26 , MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE( 31 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 36 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 38 , MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 41 , MOVE_ENDURE), - LEVEL_UP_MOVE( 46 , MOVE_MEGA_KICK), - LEVEL_UP_MOVE( 51 , MOVE_REVERSAL), - LEVEL_UP_MOVE( 54 , MOVE_BULK_UP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSpirituleeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 6 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 11 , MOVE_ROLLING_KICK), - LEVEL_UP_MOVE( 16 , MOVE_JUMP_KICK), - LEVEL_UP_MOVE( 20 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 21 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 26 , MOVE_HI_JUMP_KICK), - LEVEL_UP_MOVE( 31 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 36 , MOVE_FORESIGHT), - LEVEL_UP_MOVE( 38 , MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 41 , MOVE_ENDURE), - LEVEL_UP_MOVE( 46 , MOVE_MEGA_KICK), - LEVEL_UP_MOVE( 51 , MOVE_REVERSAL), - LEVEL_UP_MOVE( 54 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 58 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 63 , MOVE_BLAZE_KICK), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_HITMONCHAN -static const struct LevelUpMove sHitmonchanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_COMET_PUNCH), - LEVEL_UP_MOVE( 7 , MOVE_AGILITY), - LEVEL_UP_MOVE( 13 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 20 , MOVE_MACH_PUNCH), - LEVEL_UP_MOVE( 26 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 26 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 26 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 32 , MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE( 38 , MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE( 44 , MOVE_DETECT), - LEVEL_UP_MOVE( 45 , MOVE_COUNTER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sEnchancedLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_COMET_PUNCH), - LEVEL_UP_MOVE( 7 , MOVE_AGILITY), - LEVEL_UP_MOVE( 13 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 20 , MOVE_MACH_PUNCH), - LEVEL_UP_MOVE( 26 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 26 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 26 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 32 , MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE( 38 , MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE( 40 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 44 , MOVE_DETECT), - LEVEL_UP_MOVE( 45 , MOVE_COUNTER), - LEVEL_UP_MOVE( 49 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 54 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 60 , MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE( 65 , MOVE_COSMIC_POWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRadiachanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_COMET_PUNCH), - LEVEL_UP_MOVE( 7 , MOVE_AGILITY), - LEVEL_UP_MOVE( 13 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 20 , MOVE_MACH_PUNCH), - LEVEL_UP_MOVE( 26 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 26 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 26 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 32 , MOVE_SKY_UPPERCUT), - LEVEL_UP_MOVE( 38 , MOVE_SHADOW_PUNCH), - LEVEL_UP_MOVE( 40 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 44 , MOVE_DETECT), - LEVEL_UP_MOVE( 45 , MOVE_COUNTER), - LEVEL_UP_MOVE( 49 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 54 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 60 , MOVE_CLOSE_COMBAT), - LEVEL_UP_MOVE( 65 , MOVE_COSMIC_POWER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_LICKITUNG -static const struct LevelUpMove sLickitungLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 9 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 13 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 21 , MOVE_STOMP), - LEVEL_UP_MOVE( 23 , MOVE_WRAP), - LEVEL_UP_MOVE( 26 , MOVE_REFRESH), - LEVEL_UP_MOVE( 30 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 32 , MOVE_SLAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLickilickyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 9 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 13 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 21 , MOVE_STOMP), - LEVEL_UP_MOVE( 23 , MOVE_WRAP), - LEVEL_UP_MOVE( 26 , MOVE_REFRESH), - LEVEL_UP_MOVE( 30 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 32 , MOVE_SLAM), - LEVEL_UP_MOVE( 36 , MOVE_DISABLE), - LEVEL_UP_MOVE( 41 , MOVE_SCREECH), - LEVEL_UP_MOVE( 50 , MOVE_RETURN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLickilollyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 5 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 9 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 13 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 21 , MOVE_STOMP), - LEVEL_UP_MOVE( 23 , MOVE_WRAP), - LEVEL_UP_MOVE( 26 , MOVE_REFRESH), - LEVEL_UP_MOVE( 30 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 32 , MOVE_SLAM), - LEVEL_UP_MOVE( 36 , MOVE_DISABLE), - LEVEL_UP_MOVE( 41 , MOVE_SCREECH), - LEVEL_UP_MOVE( 46 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 46 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 50 , MOVE_RETURN), - LEVEL_UP_MOVE( 56 , MOVE_HAZE), - LEVEL_UP_MOVE( 60 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 60 , MOVE_SWALLOW), - LEVEL_UP_MOVE( 60 , MOVE_SPIT_UP), - LEVEL_UP_MOVE( 62 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 65 , MOVE_BLIZZARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLickilatoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SWEET_SCENT), - LEVEL_UP_MOVE( 5 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 9 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 13 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 21 , MOVE_STOMP), - LEVEL_UP_MOVE( 23 , MOVE_WRAP), - LEVEL_UP_MOVE( 26 , MOVE_REFRESH), - LEVEL_UP_MOVE( 30 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 32 , MOVE_SLAM), - LEVEL_UP_MOVE( 36 , MOVE_DISABLE), - LEVEL_UP_MOVE( 41 , MOVE_SCREECH), - LEVEL_UP_MOVE( 46 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 46 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 50 , MOVE_RETURN), - LEVEL_UP_MOVE( 56 , MOVE_HAZE), - LEVEL_UP_MOVE( 60 , MOVE_STOCKPILE), - LEVEL_UP_MOVE( 60 , MOVE_SWALLOW), - LEVEL_UP_MOVE( 60 , MOVE_SPIT_UP), - LEVEL_UP_MOVE( 62 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 65 , MOVE_BLIZZARD), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_KOFFING -static const struct LevelUpMove sKoffingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 9 , MOVE_SMOG), - LEVEL_UP_MOVE( 17 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 21 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 33 , MOVE_HAZE), - LEVEL_UP_MOVE( 41 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 45 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 49 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sWeezingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_SMOG), - LEVEL_UP_MOVE( 1 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 9 , MOVE_SMOG), - LEVEL_UP_MOVE( 17 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 21 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 33 , MOVE_HAZE), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 51 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 58 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHeevingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_SMOG), - LEVEL_UP_MOVE( 1 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 9 , MOVE_SMOG), - LEVEL_UP_MOVE( 17 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 21 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 30 , MOVE_HAZE), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 46 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 48 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 51 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 55 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 56 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 58 , MOVE_MEMENTO), - LEVEL_UP_END -}; - -static const struct LevelUpMove sChohkingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_SMOG), - LEVEL_UP_MOVE( 1 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 9 , MOVE_SMOG), - LEVEL_UP_MOVE( 17 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 21 , MOVE_SLUDGE), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 30 , MOVE_HAZE), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 46 , MOVE_SLUDGE_BOMB), - LEVEL_UP_MOVE( 48 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 51 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 55 , MOVE_EXPLOSION), - LEVEL_UP_MOVE( 56 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 58 , MOVE_MEMENTO), - LEVEL_UP_MOVE( 61 , MOVE_TOXIC), - LEVEL_UP_MOVE( 64 , MOVE_RECOVER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_RHYHORN -static const struct LevelUpMove sRhyhornLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_STOMP), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 24 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 29 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 35 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 38 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 42 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 46 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 52 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRhydonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_STOMP), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 10 , MOVE_STOMP), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 24 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 29 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 35 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 38 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 42 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 46 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 52 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRhyperiorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_STOMP), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 10 , MOVE_STOMP), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 24 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 29 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 35 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 38 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 42 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 46 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 52 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRhymarkablLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_STOMP), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 10 , MOVE_STOMP), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 24 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 29 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 35 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 38 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 42 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 46 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 52 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRhylicLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_STOMP), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 10 , MOVE_STOMP), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 24 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 29 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 35 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 38 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 42 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 46 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 52 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 60 , MOVE_CURSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRhybornLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_STOMP), - LEVEL_UP_MOVE( 1 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 10 , MOVE_STOMP), - LEVEL_UP_MOVE( 15 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 20 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 24 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 29 , MOVE_ROCK_BLAST), - LEVEL_UP_MOVE( 35 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 38 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 42 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 46 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 52 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 58 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 60 , MOVE_CURSE), - LEVEL_UP_MOVE( 62 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 66 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 70 , MOVE_DRAGON_CLAW), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_CHANSEY -static const struct LevelUpMove sChanseyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_REFRESH), - LEVEL_UP_MOVE( 13 , MOVE_SOFTBOILED), - LEVEL_UP_MOVE( 17 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 35 , MOVE_EGG_BOMB), - LEVEL_UP_MOVE( 41 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 49 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBlisseyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_REFRESH), - LEVEL_UP_MOVE( 13 , MOVE_SOFTBOILED), - LEVEL_UP_MOVE( 17 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 35 , MOVE_EGG_BOMB), - LEVEL_UP_MOVE( 41 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 49 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_EDGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGogetteyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_REFRESH), - LEVEL_UP_MOVE( 13 , MOVE_SOFTBOILED), - LEVEL_UP_MOVE( 17 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 35 , MOVE_EGG_BOMB), - LEVEL_UP_MOVE( 41 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 49 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 58 , MOVE_RECOVER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLukkeyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_REFRESH), - LEVEL_UP_MOVE( 13 , MOVE_SOFTBOILED), - LEVEL_UP_MOVE( 17 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 35 , MOVE_EGG_BOMB), - LEVEL_UP_MOVE( 41 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 49 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 58 , MOVE_RECOVER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFortuniteyLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 5 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 9 , MOVE_REFRESH), - LEVEL_UP_MOVE( 13 , MOVE_SOFTBOILED), - LEVEL_UP_MOVE( 17 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 23 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 29 , MOVE_SING), - LEVEL_UP_MOVE( 35 , MOVE_EGG_BOMB), - LEVEL_UP_MOVE( 41 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 49 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE( 58 , MOVE_RECOVER), - LEVEL_UP_MOVE( 68 , MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE( 72 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_TANGELA -static const struct LevelUpMove sTangelaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 4 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_ABSORB), - LEVEL_UP_MOVE( 13 , MOVE_GROWTH), - LEVEL_UP_MOVE( 19 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 28 , MOVE_BIND), - LEVEL_UP_MOVE( 31 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 37 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 40 , MOVE_SLAM), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTangrowthLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 4 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_ABSORB), - LEVEL_UP_MOVE( 13 , MOVE_GROWTH), - LEVEL_UP_MOVE( 19 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 28 , MOVE_BIND), - LEVEL_UP_MOVE( 31 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 37 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 40 , MOVE_SLAM), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_MOVE( 68 , MOVE_SYNTHESIS), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTangatherLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 4 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_ABSORB), - LEVEL_UP_MOVE( 13 , MOVE_GROWTH), - LEVEL_UP_MOVE( 19 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 28 , MOVE_BIND), - LEVEL_UP_MOVE( 31 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 37 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 40 , MOVE_SLAM), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_MOVE( 50 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 50 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 50 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 52 , MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE( 56 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 60 , MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE( 68 , MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 75 , MOVE_REVENGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTangoliathLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 4 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_ABSORB), - LEVEL_UP_MOVE( 13 , MOVE_GROWTH), - LEVEL_UP_MOVE( 19 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 28 , MOVE_BIND), - LEVEL_UP_MOVE( 31 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 37 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 40 , MOVE_SLAM), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_MOVE( 50 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 50 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 50 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 52 , MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE( 56 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 60 , MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE( 68 , MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 75 , MOVE_REVENGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTangrappleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_CONSTRICT), - LEVEL_UP_MOVE( 1 , MOVE_LOW_KICK), - LEVEL_UP_MOVE( 1 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 4 , MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE( 10 , MOVE_ABSORB), - LEVEL_UP_MOVE( 13 , MOVE_GROWTH), - LEVEL_UP_MOVE( 19 , MOVE_POISON_POWDER), - LEVEL_UP_MOVE( 22 , MOVE_VINE_WHIP), - LEVEL_UP_MOVE( 28 , MOVE_BIND), - LEVEL_UP_MOVE( 31 , MOVE_MEGA_DRAIN), - LEVEL_UP_MOVE( 37 , MOVE_STUN_SPORE), - LEVEL_UP_MOVE( 40 , MOVE_SLAM), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_MOVE( 50 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 50 , MOVE_ICE_PUNCH), - LEVEL_UP_MOVE( 50 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 52 , MOVE_NEEDLE_ARM), - LEVEL_UP_MOVE( 56 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 60 , MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE( 65 , MOVE_MACH_PUNCH), - LEVEL_UP_MOVE( 68 , MOVE_SYNTHESIS), - LEVEL_UP_MOVE( 75 , MOVE_REVENGE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_KANGAKID -static const struct LevelUpMove sKangakidLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 5 , MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 9 , MOVE_COMET_PUNCH), - LEVEL_UP_MOVE( 13 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 16 , MOVE_BITE), - LEVEL_UP_MOVE( 25 , MOVE_DIZZY_PUNCH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKangaskhanLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 7 , MOVE_BITE), - LEVEL_UP_MOVE( 13 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 19 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 25 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 31 , MOVE_RAGE), - LEVEL_UP_MOVE( 37 , MOVE_ENDURE), - LEVEL_UP_MOVE( 43 , MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE( 49 , MOVE_REVERSAL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKangallousLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 7 , MOVE_BITE), - LEVEL_UP_MOVE( 13 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 19 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 25 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 31 , MOVE_RAGE), - LEVEL_UP_MOVE( 37 , MOVE_ENDURE), - LEVEL_UP_MOVE( 40 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 43 , MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE( 49 , MOVE_REVERSAL), - LEVEL_UP_MOVE( 54 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 56 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 60 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 66 , MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 70 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKangarutalLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 7 , MOVE_BITE), - LEVEL_UP_MOVE( 13 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 19 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 25 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 31 , MOVE_RAGE), - LEVEL_UP_MOVE( 37 , MOVE_ENDURE), - LEVEL_UP_MOVE( 40 , MOVE_BONE_CLUB), - LEVEL_UP_MOVE( 43 , MOVE_DIZZY_PUNCH), - LEVEL_UP_MOVE( 49 , MOVE_REVERSAL), - LEVEL_UP_MOVE( 54 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 56 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 60 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 66 , MOVE_NIGHT_SLASH), - LEVEL_UP_MOVE( 70 , MOVE_SUPERPOWER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_HORSEA -static const struct LevelUpMove sHorseaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 8 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 15 , MOVE_LEER), - LEVEL_UP_MOVE( 22 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 29 , MOVE_TWISTER), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 43 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 50 , MOVE_DRAGON_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSeadraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1 , MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 8 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 15 , MOVE_LEER), - LEVEL_UP_MOVE( 22 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 29 , MOVE_TWISTER), - LEVEL_UP_MOVE( 32 , MOVE_AGILITY), - LEVEL_UP_MOVE( 35 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 42 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 48 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 70 , MOVE_WATER_SPOUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKingdraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1 , MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 8 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 15 , MOVE_LEER), - LEVEL_UP_MOVE( 22 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 29 , MOVE_TWISTER), - LEVEL_UP_MOVE( 32 , MOVE_AGILITY), - LEVEL_UP_MOVE( 35 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 37 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 42 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 48 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 50 , MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 70 , MOVE_WATER_SPOUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLordraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1 , MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 8 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 15 , MOVE_LEER), - LEVEL_UP_MOVE( 22 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 29 , MOVE_TWISTER), - LEVEL_UP_MOVE( 32 , MOVE_AGILITY), - LEVEL_UP_MOVE( 35 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 37 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 42 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 48 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 50 , MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 70 , MOVE_WATER_SPOUT), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPinnadraLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1 , MOVE_WHIRLPOOL), - LEVEL_UP_MOVE( 1 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 8 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 15 , MOVE_LEER), - LEVEL_UP_MOVE( 22 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 29 , MOVE_TWISTER), - LEVEL_UP_MOVE( 32 , MOVE_AGILITY), - LEVEL_UP_MOVE( 35 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 37 , MOVE_DRAGONBREATH), - LEVEL_UP_MOVE( 42 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 48 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 50 , MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 70 , MOVE_WATER_SPOUT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_GOLDEEN -static const struct LevelUpMove sGoldeenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 10 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 15 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 24 , MOVE_FLAIL), - LEVEL_UP_MOVE( 29 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 38 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 43 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 52 , MOVE_AGILITY), - LEVEL_UP_MOVE( 57 , MOVE_MEGAHORN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSeakingLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 10 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 15 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 24 , MOVE_FLAIL), - LEVEL_UP_MOVE( 29 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 38 , MOVE_SLACK_OFF), - LEVEL_UP_MOVE( 41 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 49 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 55 , MOVE_ICE_FANG), - LEVEL_UP_MOVE( 59 , MOVE_AGILITY), - LEVEL_UP_MOVE( 64 , MOVE_MEGAHORN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSearexLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 1 , MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 1 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 10 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 15 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 24 , MOVE_FLAIL), - LEVEL_UP_MOVE( 29 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 38 , MOVE_SLACK_OFF), - LEVEL_UP_MOVE( 41 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 45 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 49 , MOVE_TAUNT), - LEVEL_UP_MOVE( 53 , MOVE_FLATTER), - LEVEL_UP_MOVE( 55 , MOVE_ICE_FANG), - LEVEL_UP_MOVE( 59 , MOVE_AGILITY), - LEVEL_UP_MOVE( 64 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 68 , MOVE_REVENGE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sCapriseaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_WATER_SPORT), - LEVEL_UP_MOVE( 1 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 1 , MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 1 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 10 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 15 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 24 , MOVE_FLAIL), - LEVEL_UP_MOVE( 29 , MOVE_FURY_ATTACK), - LEVEL_UP_MOVE( 38 , MOVE_SLACK_OFF), - LEVEL_UP_MOVE( 41 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 45 , MOVE_HORN_DRILL), - LEVEL_UP_MOVE( 49 , MOVE_TAUNT), - LEVEL_UP_MOVE( 53 , MOVE_FLATTER), - LEVEL_UP_MOVE( 55 , MOVE_ICE_FANG), - LEVEL_UP_MOVE( 59 , MOVE_AGILITY), - LEVEL_UP_MOVE( 64 , MOVE_MEGAHORN), - LEVEL_UP_MOVE( 68 , MOVE_REVENGE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_STARYU -static const struct LevelUpMove sStaryuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 6 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 10 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 15 , MOVE_RECOVER), - LEVEL_UP_MOVE( 19 , MOVE_CAMOUFLAGE), - LEVEL_UP_MOVE( 23 , MOVE_SWIFT), - LEVEL_UP_MOVE( 26 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 33 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 42 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 46 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sStarmieLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 6 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 10 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 15 , MOVE_RECOVER), - LEVEL_UP_MOVE( 19 , MOVE_CAMOUFLAGE), - LEVEL_UP_MOVE( 23 , MOVE_SWIFT), - LEVEL_UP_MOVE( 26 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 33 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 42 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 46 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 50 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sStarusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 6 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 10 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 15 , MOVE_RECOVER), - LEVEL_UP_MOVE( 19 , MOVE_CAMOUFLAGE), - LEVEL_UP_MOVE( 23 , MOVE_SWIFT), - LEVEL_UP_MOVE( 26 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 33 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 42 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 46 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 50 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 56 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 62 , MOVE_ICE_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sStarweLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 6 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 10 , MOVE_RAPID_SPIN), - LEVEL_UP_MOVE( 15 , MOVE_RECOVER), - LEVEL_UP_MOVE( 19 , MOVE_CAMOUFLAGE), - LEVEL_UP_MOVE( 23 , MOVE_SWIFT), - LEVEL_UP_MOVE( 26 , MOVE_BUBBLEBEAM), - LEVEL_UP_MOVE( 30 , MOVE_MINIMIZE), - LEVEL_UP_MOVE( 33 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 33 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 42 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 46 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 50 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 56 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 62 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 68 , MOVE_DESTINY_BOND), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MR_MIME -static const struct LevelUpMove sMr_mimeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 8 , MOVE_SUBSTITUTE), - LEVEL_UP_MOVE( 12 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 15 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 19 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 19 , MOVE_REFLECT), - LEVEL_UP_MOVE( 22 , MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 26 , MOVE_ENCORE), - LEVEL_UP_MOVE( 29 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 33 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 36 , MOVE_TRICK), - LEVEL_UP_MOVE( 40 , MOVE_ROLE_PLAY), - LEVEL_UP_MOVE( 43 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 47 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 50 , MOVE_SAFEGUARD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMr_jestLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 1 , MOVE_TICKLE), - LEVEL_UP_MOVE( 5 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 8 , MOVE_SUBSTITUTE), - LEVEL_UP_MOVE( 12 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 15 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 19 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 19 , MOVE_REFLECT), - LEVEL_UP_MOVE( 22 , MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 26 , MOVE_ENCORE), - LEVEL_UP_MOVE( 29 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 33 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 36 , MOVE_TRICK), - LEVEL_UP_MOVE( 38 , MOVE_TAUNT), - LEVEL_UP_MOVE( 38 , MOVE_TEETER_DANCE), - LEVEL_UP_MOVE( 40 , MOVE_ROLE_PLAY), - LEVEL_UP_MOVE( 43 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 47 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 50 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 58 , MOVE_SKILL_SWAP), - LEVEL_UP_MOVE( 60 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 60 , MOVE_ICE_BALL), - LEVEL_UP_MOVE( 60 , MOVE_WEATHER_BALL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMr_foolLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_FAKE_OUT), - LEVEL_UP_MOVE( 1 , MOVE_TICKLE), - LEVEL_UP_MOVE( 5 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 8 , MOVE_SUBSTITUTE), - LEVEL_UP_MOVE( 12 , MOVE_MEDITATE), - LEVEL_UP_MOVE( 15 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 19 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 19 , MOVE_REFLECT), - LEVEL_UP_MOVE( 22 , MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE( 26 , MOVE_ENCORE), - LEVEL_UP_MOVE( 29 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 33 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 36 , MOVE_TRICK), - LEVEL_UP_MOVE( 38 , MOVE_TAUNT), - LEVEL_UP_MOVE( 38 , MOVE_TEETER_DANCE), - LEVEL_UP_MOVE( 40 , MOVE_ROLE_PLAY), - LEVEL_UP_MOVE( 43 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 47 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 50 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 58 , MOVE_SKILL_SWAP), - LEVEL_UP_MOVE( 60 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 60 , MOVE_ICE_BALL), - LEVEL_UP_MOVE( 60 , MOVE_WEATHER_BALL), - LEVEL_UP_MOVE( 70 , MOVE_MIMIC), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SCYTHER -static const struct LevelUpMove sScytherLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 6 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 11 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 16 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 21 , MOVE_AGILITY), - LEVEL_UP_MOVE( 26 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 41 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 44 , MOVE_X_SCISSOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sScizorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 6 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 11 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 16 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 21 , MOVE_AGILITY), - LEVEL_UP_MOVE( 26 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 41 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 44 , MOVE_X_SCISSOR), - LEVEL_UP_MOVE( 49 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 54 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 59 , MOVE_LEAF_BLADE), - LEVEL_UP_MOVE( 63 , MOVE_SWORDS_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRazerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 6 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 11 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 16 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 21 , MOVE_AGILITY), - LEVEL_UP_MOVE( 26 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 41 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 41 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 44 , MOVE_X_SCISSOR), - LEVEL_UP_MOVE( 49 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 54 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 59 , MOVE_LEAF_BLADE), - LEVEL_UP_MOVE( 63 , MOVE_SWORDS_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sClaymorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 6 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 11 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 16 , MOVE_FALSE_SWIPE), - LEVEL_UP_MOVE( 21 , MOVE_AGILITY), - LEVEL_UP_MOVE( 26 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 31 , MOVE_SLASH), - LEVEL_UP_MOVE( 36 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 41 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 41 , MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE( 44 , MOVE_X_SCISSOR), - LEVEL_UP_MOVE( 49 , MOVE_IRON_HEAD), - LEVEL_UP_MOVE( 54 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 59 , MOVE_LEAF_BLADE), - LEVEL_UP_MOVE( 63 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 70 , MOVE_CLOSE_COMBAT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_JYNX -static const struct LevelUpMove sJynxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_LOVELY_KISS), - LEVEL_UP_MOVE( 1 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 9 , MOVE_LOVELY_KISS), - LEVEL_UP_MOVE( 13 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 21 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 25 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 30 , MOVE_HAIL), - LEVEL_UP_MOVE( 35 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 45 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 51 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 57 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 60 , MOVE_HAZE), - LEVEL_UP_MOVE( 67 , MOVE_BLIZZARD), - LEVEL_UP_MOVE( 73 , MOVE_PERISH_SONG), - LEVEL_UP_END -}; - -static const struct LevelUpMove sJynkiesLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_LOVELY_KISS), - LEVEL_UP_MOVE( 1 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 9 , MOVE_LOVELY_KISS), - LEVEL_UP_MOVE( 13 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 21 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 25 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 35 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 30 , MOVE_HAIL), - LEVEL_UP_MOVE( 41 , MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 45 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 51 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 57 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 60 , MOVE_HAZE), - LEVEL_UP_MOVE( 67 , MOVE_BLIZZARD), - LEVEL_UP_MOVE( 73 , MOVE_PERISH_SONG), - LEVEL_UP_END -}; - -static const struct LevelUpMove sJeepersLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LICK), - LEVEL_UP_MOVE( 1 , MOVE_LOVELY_KISS), - LEVEL_UP_MOVE( 1 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 1 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 9 , MOVE_LOVELY_KISS), - LEVEL_UP_MOVE( 13 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 21 , MOVE_DOUBLESLAP), - LEVEL_UP_MOVE( 25 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 30 , MOVE_HAIL), - LEVEL_UP_MOVE( 35 , MOVE_MEAN_LOOK), - LEVEL_UP_MOVE( 41 , MOVE_FAKE_TEARS), - LEVEL_UP_MOVE( 45 , MOVE_NIGHT_SHADE), - LEVEL_UP_MOVE( 51 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 57 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 60 , MOVE_HAZE), - LEVEL_UP_MOVE( 67 , MOVE_BLIZZARD), - LEVEL_UP_MOVE( 73 , MOVE_PERISH_SONG), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_ELECTABUZZ -static const struct LevelUpMove sElectabuzzLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 9 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 17 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 20 , MOVE_CHARGE), - LEVEL_UP_MOVE( 25 , MOVE_SWIFT), - LEVEL_UP_MOVE( 31 , MOVE_SCREECH), - LEVEL_UP_MOVE( 36 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 41 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 55 , MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectivireLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 9 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 17 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 20 , MOVE_CHARGE), - LEVEL_UP_MOVE( 25 , MOVE_SWIFT), - LEVEL_UP_MOVE( 31 , MOVE_SCREECH), - LEVEL_UP_MOVE( 36 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 41 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 55 , MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectivineLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 9 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 17 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 20 , MOVE_CHARGE), - LEVEL_UP_MOVE( 25 , MOVE_SWIFT), - LEVEL_UP_MOVE( 31 , MOVE_SCREECH), - LEVEL_UP_MOVE( 36 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 41 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 48 , MOVE_WOOD_HAMMER), - LEVEL_UP_MOVE( 55 , MOVE_THUNDER), - LEVEL_UP_MOVE( 59 , MOVE_FRENZY_PLANT), - LEVEL_UP_MOVE( 65 , MOVE_EARTHQUAKE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sElectiwizzLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 9 , MOVE_THUNDERPUNCH), - LEVEL_UP_MOVE( 17 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 20 , MOVE_CHARGE), - LEVEL_UP_MOVE( 25 , MOVE_SWIFT), - LEVEL_UP_MOVE( 31 , MOVE_SCREECH), - LEVEL_UP_MOVE( 36 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 41 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 48 , MOVE_WOOD_HAMMER), - LEVEL_UP_MOVE( 55 , MOVE_THUNDER), - LEVEL_UP_MOVE( 59 , MOVE_FRENZY_PLANT), - LEVEL_UP_MOVE( 65 , MOVE_EARTHQUAKE), - LEVEL_UP_MOVE( 70 , MOVE_MIRROR_COAT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MAGMAR -static const struct LevelUpMove sMagmarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_SMOG), - LEVEL_UP_MOVE( 1 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_SMOG), - LEVEL_UP_MOVE( 19 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 33 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 41 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 49 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 57 , MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagmortarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_SMOG), - LEVEL_UP_MOVE( 1 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1 , MOVE_CURSE), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_SMOG), - LEVEL_UP_MOVE( 19 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 30 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 33 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 35 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 40 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 57 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 70 , MOVE_ERUPTION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagmoreLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_SMOG), - LEVEL_UP_MOVE( 1 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 1 , MOVE_CURSE), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_SMOG), - LEVEL_UP_MOVE( 19 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 30 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 33 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 35 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 40 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 48 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 57 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 70 , MOVE_ERUPTION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMagmoltenLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_SMOG), - LEVEL_UP_MOVE( 1 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 1 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 1 , MOVE_DESTINY_BOND), - LEVEL_UP_MOVE( 1 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 1 , MOVE_CURSE), - LEVEL_UP_MOVE( 7 , MOVE_LEER), - LEVEL_UP_MOVE( 13 , MOVE_SMOG), - LEVEL_UP_MOVE( 19 , MOVE_FIRE_PUNCH), - LEVEL_UP_MOVE( 25 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 30 , MOVE_SUNNY_DAY), - LEVEL_UP_MOVE( 33 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 35 , MOVE_FOUL_PLAY), - LEVEL_UP_MOVE( 40 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 48 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 57 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 65 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 70 , MOVE_ERUPTION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PINSIR -static const struct LevelUpMove sPinsirLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 7 , MOVE_BIND), - LEVEL_UP_MOVE( 13 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 37 , MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 43 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 49 , MOVE_SWORDS_DANCE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPinsiriorLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 7 , MOVE_BIND), - LEVEL_UP_MOVE( 13 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 37 , MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 40 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 43 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 45 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 49 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 51 , MOVE_BEAT_UP), - LEVEL_UP_MOVE( 58 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 60 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 62 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 64 , MOVE_X_SCISSOR), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAbyssirLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_FOCUS_ENERGY), - LEVEL_UP_MOVE( 7 , MOVE_BIND), - LEVEL_UP_MOVE( 13 , MOVE_SEISMIC_TOSS), - LEVEL_UP_MOVE( 19 , MOVE_HARDEN), - LEVEL_UP_MOVE( 25 , MOVE_REVENGE), - LEVEL_UP_MOVE( 31 , MOVE_BRICK_BREAK), - LEVEL_UP_MOVE( 37 , MOVE_GUILLOTINE), - LEVEL_UP_MOVE( 40 , MOVE_KNOCK_OFF), - LEVEL_UP_MOVE( 43 , MOVE_METAL_CLAW), - LEVEL_UP_MOVE( 45 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 49 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 51 , MOVE_BEAT_UP), - LEVEL_UP_MOVE( 58 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 60 , MOVE_CRUNCH), - LEVEL_UP_MOVE( 62 , MOVE_BULK_UP), - LEVEL_UP_MOVE( 64 , MOVE_X_SCISSOR), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_TAUROS -static const struct LevelUpMove sTaurosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 4 , MOVE_RAGE), - LEVEL_UP_MOVE( 8 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 13 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 19 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 23 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 26 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 30 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 34 , MOVE_THRASH), - LEVEL_UP_MOVE( 40 , MOVE_REST), - LEVEL_UP_MOVE( 46 , MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_TEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sTauroxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 4 , MOVE_RAGE), - LEVEL_UP_MOVE( 8 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 13 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 19 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 23 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 26 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 30 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 34 , MOVE_THRASH), - LEVEL_UP_MOVE( 40 , MOVE_REST), - LEVEL_UP_MOVE( 46 , MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_TEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sOxenfreeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 4 , MOVE_RAGE), - LEVEL_UP_MOVE( 8 , MOVE_HORN_ATTACK), - LEVEL_UP_MOVE( 13 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 19 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 23 , MOVE_PURSUIT), - LEVEL_UP_MOVE( 26 , MOVE_SWAGGER), - LEVEL_UP_MOVE( 30 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 34 , MOVE_THRASH), - LEVEL_UP_MOVE( 40 , MOVE_REST), - LEVEL_UP_MOVE( 46 , MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE( 54 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 58 , MOVE_PHANTOM_FORCE), - LEVEL_UP_MOVE( 62 , MOVE_SKULL_BASH), - LEVEL_UP_MOVE( 65 , MOVE_MEGAHORN), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MAGIKARP -static const struct LevelUpMove sMagikarpLevelUpLearnset[] = { - LEVEL_UP_MOVE( 15 , MOVE_TACKLE), - LEVEL_UP_MOVE( 30 , MOVE_FLAIL), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGyaradosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 26 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_LEER), - LEVEL_UP_MOVE( 33 , MOVE_TWISTER), - LEVEL_UP_MOVE( 38 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 52 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 55 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sHydradosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 26 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_LEER), - LEVEL_UP_MOVE( 33 , MOVE_TWISTER), - LEVEL_UP_MOVE( 38 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 52 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 55 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 60 , MOVE_DRAGON_PULSE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDracosmicLevelUpLearnset[] = { - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 26 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_LEER), - LEVEL_UP_MOVE( 33 , MOVE_TWISTER), - LEVEL_UP_MOVE( 38 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 52 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 55 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 60 , MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE( 66 , MOVE_EXTRASENSORY), - LEVEL_UP_END -}; - -static const struct LevelUpMove sQuazarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 20 , MOVE_BITE), - LEVEL_UP_MOVE( 23 , MOVE_WATER_PULSE), - LEVEL_UP_MOVE( 26 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_LEER), - LEVEL_UP_MOVE( 33 , MOVE_TWISTER), - LEVEL_UP_MOVE( 38 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 52 , MOVE_DRAGON_DANCE), - LEVEL_UP_MOVE( 55 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 60 , MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE( 66 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 75 , MOVE_WISH), - LEVEL_UP_MOVE( 80 , MOVE_COSMIC_POWER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_LAPRAS -static const struct LevelUpMove sLaprasLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_SING), - LEVEL_UP_MOVE( 7 , MOVE_MIST), - LEVEL_UP_MOVE( 13 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 19 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_PERISH_SONG), - LEVEL_UP_MOVE( 31 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 37 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 40 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 43 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 49 , MOVE_SURF), - LEVEL_UP_MOVE( 55 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 58 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 62 , MOVE_UPROAR), - LEVEL_UP_MOVE( 65 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 72 , MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sLochlassLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_SING), - LEVEL_UP_MOVE( 7 , MOVE_MIST), - LEVEL_UP_MOVE( 13 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 19 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_PERISH_SONG), - LEVEL_UP_MOVE( 31 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 37 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 40 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 43 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 49 , MOVE_SURF), - LEVEL_UP_MOVE( 55 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 58 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 62 , MOVE_UPROAR), - LEVEL_UP_MOVE( 65 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 72 , MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNesseaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_GROWL), - LEVEL_UP_MOVE( 1 , MOVE_SING), - LEVEL_UP_MOVE( 7 , MOVE_MIST), - LEVEL_UP_MOVE( 13 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 19 , MOVE_CONFUSE_RAY), - LEVEL_UP_MOVE( 25 , MOVE_PERISH_SONG), - LEVEL_UP_MOVE( 31 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 37 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 40 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 43 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 49 , MOVE_SURF), - LEVEL_UP_MOVE( 55 , MOVE_SHEER_COLD), - LEVEL_UP_MOVE( 58 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 62 , MOVE_UPROAR), - LEVEL_UP_MOVE( 65 , MOVE_MOONLIGHT), - LEVEL_UP_MOVE( 72 , MOVE_HYPER_VOICE), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_DITTO -static const struct LevelUpMove sDittoLevelUpLearnset[] = { - LEVEL_UP_END -}; - -static const struct LevelUpMove sMorphoLevelUpLearnset[] = { - LEVEL_UP_END -}; - -static const struct LevelUpMove sMetamorphoLevelUpLearnset[] = { - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_EEVEE -static const struct LevelUpMove sEeveeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_GROWL), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_BITE), - LEVEL_UP_MOVE( 36 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 42 , MOVE_TAKE_DOWN), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVaporeonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_BITE), - LEVEL_UP_MOVE( 36 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 42 , MOVE_HAZE), - LEVEL_UP_MOVE( 47 , MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sRiveonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_BITE), - LEVEL_UP_MOVE( 36 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 42 , MOVE_HAZE), - LEVEL_UP_MOVE( 47 , MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sBrineonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_RAIN_DANCE), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_BITE), - LEVEL_UP_MOVE( 36 , MOVE_AURORA_BEAM), - LEVEL_UP_MOVE( 42 , MOVE_HAZE), - LEVEL_UP_MOVE( 47 , MOVE_ACID_ARMOR), - LEVEL_UP_MOVE( 52 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 55 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 65 , MOVE_TRI_ATTACK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sJolteonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_AGILITY), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 36 , MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 42 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 47 , MOVE_AGILITY), - LEVEL_UP_MOVE( 52 , MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPlasmeonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_AGILITY), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 36 , MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 42 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 47 , MOVE_AGILITY), - LEVEL_UP_MOVE( 52 , MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGalveonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_AGILITY), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_DOUBLE_KICK), - LEVEL_UP_MOVE( 36 , MOVE_PIN_MISSILE), - LEVEL_UP_MOVE( 42 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 47 , MOVE_AGILITY), - LEVEL_UP_MOVE( 52 , MOVE_THUNDER), - LEVEL_UP_MOVE( 55 , MOVE_EXTREMESPEED), - LEVEL_UP_MOVE( 65 , MOVE_TRI_ATTACK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFlareonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_EMBER), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_BITE), - LEVEL_UP_MOVE( 36 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 42 , MOVE_SMOG), - LEVEL_UP_MOVE( 47 , MOVE_LEER), - LEVEL_UP_MOVE( 52 , MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSmoldeonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_EMBER), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_BITE), - LEVEL_UP_MOVE( 36 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 42 , MOVE_SMOG), - LEVEL_UP_MOVE( 47 , MOVE_LEER), - LEVEL_UP_MOVE( 52 , MOVE_FLAMETHROWER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sInferneonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TAIL_WHIP), - LEVEL_UP_MOVE( 1 , MOVE_HELPING_HAND), - LEVEL_UP_MOVE( 1 , MOVE_BATON_PASS), - LEVEL_UP_MOVE( 1 , MOVE_SMOKESCREEN), - LEVEL_UP_MOVE( 8 , MOVE_SAND_ATTACK), - LEVEL_UP_MOVE( 16 , MOVE_EMBER), - LEVEL_UP_MOVE( 23 , MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 30 , MOVE_BITE), - LEVEL_UP_MOVE( 36 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 42 , MOVE_SMOG), - LEVEL_UP_MOVE( 47 , MOVE_LEER), - LEVEL_UP_MOVE( 52 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 55 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 65 , MOVE_TRI_ATTACK), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_PORYGON -static const struct LevelUpMove sPorygonLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 9 , MOVE_AGILITY), - LEVEL_UP_MOVE( 12 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 20 , MOVE_RECOVER), - LEVEL_UP_MOVE( 24 , MOVE_SHARPEN), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 48 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 52 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPorygon2LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 9 , MOVE_AGILITY), - LEVEL_UP_MOVE( 12 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 20 , MOVE_RECOVER), - LEVEL_UP_MOVE( 24 , MOVE_SHARPEN), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 48 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 52 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPorygonzLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 9 , MOVE_AGILITY), - LEVEL_UP_MOVE( 12 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 20 , MOVE_RECOVER), - LEVEL_UP_MOVE( 24 , MOVE_SHARPEN), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 48 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 52 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPorygonxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 9 , MOVE_AGILITY), - LEVEL_UP_MOVE( 12 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 20 , MOVE_RECOVER), - LEVEL_UP_MOVE( 24 , MOVE_SHARPEN), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 48 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 52 , MOVE_PSYCHIC), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPorygonqLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 9 , MOVE_AGILITY), - LEVEL_UP_MOVE( 12 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 20 , MOVE_RECOVER), - LEVEL_UP_MOVE( 24 , MOVE_SHARPEN), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 48 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 52 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 56 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 62 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 67 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sPorygon2a4LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_TACKLE), - LEVEL_UP_MOVE( 1 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 9 , MOVE_AGILITY), - LEVEL_UP_MOVE( 12 , MOVE_PSYBEAM), - LEVEL_UP_MOVE( 20 , MOVE_RECOVER), - LEVEL_UP_MOVE( 24 , MOVE_SHARPEN), - LEVEL_UP_MOVE( 32 , MOVE_LOCK_ON), - LEVEL_UP_MOVE( 36 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 44 , MOVE_RECYCLE), - LEVEL_UP_MOVE( 48 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 52 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 56 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 62 , MOVE_SELFDESTRUCT), - LEVEL_UP_MOVE( 67 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_OMANYTE -static const struct LevelUpMove sOmanyteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 19 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 31 , MOVE_LEER), - LEVEL_UP_MOVE( 37 , MOVE_PROTECT), - LEVEL_UP_MOVE( 43 , MOVE_TICKLE), - LEVEL_UP_MOVE( 49 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 55 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sOmastarLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 1 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 19 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 31 , MOVE_LEER), - LEVEL_UP_MOVE( 37 , MOVE_PROTECT), - LEVEL_UP_MOVE( 40 , MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_MOVE( 55 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 65 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sOmapalLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 1 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 1 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 19 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 31 , MOVE_LEER), - LEVEL_UP_MOVE( 37 , MOVE_PROTECT), - LEVEL_UP_MOVE( 40 , MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_MOVE( 55 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 62 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 65 , MOVE_HYDRO_PUMP), - LEVEL_UP_END -}; - -static const struct LevelUpMove sOmagusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_WITHDRAW), - LEVEL_UP_MOVE( 1 , MOVE_BITE), - LEVEL_UP_MOVE( 1 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 1 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 1 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 13 , MOVE_BITE), - LEVEL_UP_MOVE( 19 , MOVE_WATER_GUN), - LEVEL_UP_MOVE( 25 , MOVE_MUD_SHOT), - LEVEL_UP_MOVE( 31 , MOVE_LEER), - LEVEL_UP_MOVE( 37 , MOVE_PROTECT), - LEVEL_UP_MOVE( 40 , MOVE_SPIKE_CANNON), - LEVEL_UP_MOVE( 46 , MOVE_TICKLE), - LEVEL_UP_MOVE( 55 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 62 , MOVE_COSMIC_POWER), - LEVEL_UP_MOVE( 65 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 70 , MOVE_FUTURE_SIGHT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_KABUTO -static const struct LevelUpMove sKabutoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 13 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_CLAMP), - LEVEL_UP_MOVE( 25 , MOVE_LEER), - LEVEL_UP_MOVE( 31 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 37 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 43 , MOVE_ENDURE), - LEVEL_UP_MOVE( 49 , MOVE_METAL_SOUND), - LEVEL_UP_MOVE( 53 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 56 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_POISON_JAB), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKabutopsLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 13 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_CLAMP), - LEVEL_UP_MOVE( 25 , MOVE_LEER), - LEVEL_UP_MOVE( 31 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 37 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 43 , MOVE_ENDURE), - LEVEL_UP_MOVE( 49 , MOVE_METAL_SOUND), - LEVEL_UP_MOVE( 53 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 56 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_POISON_JAB), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKabutakLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 13 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_CLAMP), - LEVEL_UP_MOVE( 25 , MOVE_LEER), - LEVEL_UP_MOVE( 31 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 37 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 43 , MOVE_ENDURE), - LEVEL_UP_MOVE( 49 , MOVE_METAL_SOUND), - LEVEL_UP_MOVE( 51 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 53 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 56 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 64 , MOVE_METEOR_MASH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sKabustionLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_HARDEN), - LEVEL_UP_MOVE( 13 , MOVE_ROCK_THROW), - LEVEL_UP_MOVE( 19 , MOVE_CLAMP), - LEVEL_UP_MOVE( 25 , MOVE_LEER), - LEVEL_UP_MOVE( 31 , MOVE_WATERFALL), - LEVEL_UP_MOVE( 37 , MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE( 43 , MOVE_ENDURE), - LEVEL_UP_MOVE( 49 , MOVE_METAL_SOUND), - LEVEL_UP_MOVE( 51 , MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE( 53 , MOVE_MAGNITUDE), - LEVEL_UP_MOVE( 56 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_POISON_JAB), - LEVEL_UP_MOVE( 64 , MOVE_METEOR_MASH), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_AERODACTYL -static const struct LevelUpMove sAerodactylLevelUpLearnset[] = { - LEVEL_UP_MOVE( 8 , MOVE_AGILITY), - LEVEL_UP_MOVE( 15 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 29 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 36 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 43 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 50 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMandiluftLevelUpLearnset[] = { - LEVEL_UP_MOVE( 8 , MOVE_AGILITY), - LEVEL_UP_MOVE( 15 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 29 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 36 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 40 , MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 43 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 50 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 55 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 60 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 70 , MOVE_SUPERPOWER), - LEVEL_UP_MOVE( 75 , MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sAmbalithicLevelUpLearnset[] = { - LEVEL_UP_MOVE( 8 , MOVE_AGILITY), - LEVEL_UP_MOVE( 15 , MOVE_BITE), - LEVEL_UP_MOVE( 22 , MOVE_SUPERSONIC), - LEVEL_UP_MOVE( 29 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 36 , MOVE_SCARY_FACE), - LEVEL_UP_MOVE( 40 , MOVE_DRAGON_CLAW), - LEVEL_UP_MOVE( 43 , MOVE_TAKE_DOWN), - LEVEL_UP_MOVE( 50 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 55 , MOVE_IRON_TAIL), - LEVEL_UP_MOVE( 60 , MOVE_CRUSH_CLAW), - LEVEL_UP_MOVE( 70 , MOVE_SUPERPOWER), - LEVEL_UP_MOVE( 75 , MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_SNORLAX -static const struct LevelUpMove sSnorlaxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 9 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 13 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 17 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 21 , MOVE_YAWN), - LEVEL_UP_MOVE( 25 , MOVE_REST), - LEVEL_UP_MOVE( 29 , MOVE_SNORE), - LEVEL_UP_MOVE( 33 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 37 , MOVE_SLEEP_TALK), - LEVEL_UP_MOVE( 41 , MOVE_BLOCK), - LEVEL_UP_MOVE( 45 , MOVE_COVET), - LEVEL_UP_MOVE( 49 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 53 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sActlaxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 9 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 13 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 17 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 21 , MOVE_YAWN), - LEVEL_UP_MOVE( 25 , MOVE_REST), - LEVEL_UP_MOVE( 29 , MOVE_SNORE), - LEVEL_UP_MOVE( 33 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 37 , MOVE_SLEEP_TALK), - LEVEL_UP_MOVE( 41 , MOVE_BLOCK), - LEVEL_UP_MOVE( 45 , MOVE_COVET), - LEVEL_UP_MOVE( 49 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 53 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 65 , MOVE_SUBMISSION), - LEVEL_UP_END -}; - -static const struct LevelUpMove sGrizzlaxLevelUpLearnset[] = { - LEVEL_UP_MOVE( 5 , MOVE_AMNESIA), - LEVEL_UP_MOVE( 9 , MOVE_DEFENSE_CURL), - LEVEL_UP_MOVE( 13 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 17 , MOVE_HEADBUTT), - LEVEL_UP_MOVE( 21 , MOVE_YAWN), - LEVEL_UP_MOVE( 25 , MOVE_REST), - LEVEL_UP_MOVE( 29 , MOVE_SNORE), - LEVEL_UP_MOVE( 33 , MOVE_BODY_SLAM), - LEVEL_UP_MOVE( 37 , MOVE_SLEEP_TALK), - LEVEL_UP_MOVE( 41 , MOVE_BLOCK), - LEVEL_UP_MOVE( 45 , MOVE_COVET), - LEVEL_UP_MOVE( 49 , MOVE_ROLLOUT), - LEVEL_UP_MOVE( 53 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 60 , MOVE_COUNTER), - LEVEL_UP_MOVE( 65 , MOVE_SUBMISSION), - LEVEL_UP_MOVE( 70 , MOVE_SMELLINGSALT), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_ARTICUNO -static const struct LevelUpMove sArticunoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 13 , MOVE_MIST), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 49 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 55 , MOVE_REFLECT), - LEVEL_UP_MOVE( 61 , MOVE_BLIZZARD), - LEVEL_UP_MOVE( 65 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 70 , MOVE_AEROBLAST), - LEVEL_UP_MOVE( 75 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 85 , MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sSnowoneLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 13 , MOVE_MIST), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 49 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 55 , MOVE_REFLECT), - LEVEL_UP_MOVE( 61 , MOVE_BLIZZARD), - LEVEL_UP_MOVE( 65 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 70 , MOVE_AEROBLAST), - LEVEL_UP_MOVE( 75 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 85 , MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -static const struct LevelUpMove sFrostunusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 13 , MOVE_MIST), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_MIND_READER), - LEVEL_UP_MOVE( 49 , MOVE_ICE_BEAM), - LEVEL_UP_MOVE( 55 , MOVE_REFLECT), - LEVEL_UP_MOVE( 61 , MOVE_BLIZZARD), - LEVEL_UP_MOVE( 65 , MOVE_AURORA_VEIL), - LEVEL_UP_MOVE( 70 , MOVE_AEROBLAST), - LEVEL_UP_MOVE( 75 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 85 , MOVE_SHEER_COLD), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_ZAPDOS -static const struct LevelUpMove sZapdosLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 13 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_DETECT), - LEVEL_UP_MOVE( 49 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 50 , MOVE_THUNDER), - LEVEL_UP_MOVE( 55 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 60 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 70 , MOVE_AEROBLAST), - LEVEL_UP_MOVE( 73 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 75 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 85 , MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sShockatooLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 13 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_DETECT), - LEVEL_UP_MOVE( 49 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 50 , MOVE_THUNDER), - LEVEL_UP_MOVE( 55 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 60 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 70 , MOVE_AEROBLAST), - LEVEL_UP_MOVE( 73 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 75 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 85 , MOVE_THUNDER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sVoltduoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_THUNDERSHOCK), - LEVEL_UP_MOVE( 13 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_DETECT), - LEVEL_UP_MOVE( 49 , MOVE_DRILL_PECK), - LEVEL_UP_MOVE( 50 , MOVE_THUNDER), - LEVEL_UP_MOVE( 55 , MOVE_THUNDERBOLT), - LEVEL_UP_MOVE( 60 , MOVE_SHOCK_WAVE), - LEVEL_UP_MOVE( 70 , MOVE_AEROBLAST), - LEVEL_UP_MOVE( 73 , MOVE_LIGHT_SCREEN), - LEVEL_UP_MOVE( 75 , MOVE_ZAP_CANNON), - LEVEL_UP_MOVE( 85 , MOVE_THUNDER), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MOLTRES -static const struct LevelUpMove sMoltresLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_ENDURE), - LEVEL_UP_MOVE( 49 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 55 , MOVE_OVERHEAT), - LEVEL_UP_MOVE( 58 , MOVE_AIR_CUTTER), - LEVEL_UP_MOVE( 61 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 73 , MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 75 , MOVE_BLAST_BURN), - LEVEL_UP_MOVE( 85 , MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sIgnithreeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_ENDURE), - LEVEL_UP_MOVE( 49 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 55 , MOVE_OVERHEAT), - LEVEL_UP_MOVE( 58 , MOVE_AIR_CUTTER), - LEVEL_UP_MOVE( 61 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 73 , MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 75 , MOVE_BLAST_BURN), - LEVEL_UP_MOVE( 85 , MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -static const struct LevelUpMove sInferntriLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_EMBER), - LEVEL_UP_MOVE( 13 , MOVE_FIRE_SPIN), - LEVEL_UP_MOVE( 25 , MOVE_AGILITY), - LEVEL_UP_MOVE( 37 , MOVE_ENDURE), - LEVEL_UP_MOVE( 49 , MOVE_FLAMETHROWER), - LEVEL_UP_MOVE( 55 , MOVE_OVERHEAT), - LEVEL_UP_MOVE( 58 , MOVE_AIR_CUTTER), - LEVEL_UP_MOVE( 61 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 73 , MOVE_HEAT_WAVE), - LEVEL_UP_MOVE( 75 , MOVE_BLAST_BURN), - LEVEL_UP_MOVE( 85 , MOVE_SKY_ATTACK), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_DRATINI -static const struct LevelUpMove sDratiniLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 15 , MOVE_TWISTER), - LEVEL_UP_MOVE( 22 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_SLAM), - LEVEL_UP_MOVE( 36 , MOVE_AGILITY), - LEVEL_UP_MOVE( 43 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 50 , MOVE_OUTRAGE), - LEVEL_UP_MOVE( 57 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDragonairLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1 , MOVE_TWISTER), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 15 , MOVE_TWISTER), - LEVEL_UP_MOVE( 22 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_SLAM), - LEVEL_UP_MOVE( 38 , MOVE_AGILITY), - LEVEL_UP_MOVE( 47 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 56 , MOVE_OUTRAGE), - LEVEL_UP_MOVE( 65 , MOVE_HYPER_BEAM), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDragoniteLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1 , MOVE_TWISTER), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 15 , MOVE_TWISTER), - LEVEL_UP_MOVE( 22 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_SLAM), - LEVEL_UP_MOVE( 35 , MOVE_AGILITY), - LEVEL_UP_MOVE( 41 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 45 , MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE( 47 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 51 , MOVE_OUTRAGE), - LEVEL_UP_MOVE( 51 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 58 , MOVE_FLY), - LEVEL_UP_MOVE( 60 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 63 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 63 , MOVE_FIRE_BLAST), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDragonierLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1 , MOVE_TWISTER), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 15 , MOVE_TWISTER), - LEVEL_UP_MOVE( 22 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_SLAM), - LEVEL_UP_MOVE( 35 , MOVE_AGILITY), - LEVEL_UP_MOVE( 41 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 45 , MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE( 47 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 51 , MOVE_OUTRAGE), - LEVEL_UP_MOVE( 51 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 58 , MOVE_FLY), - LEVEL_UP_MOVE( 60 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 63 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 63 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 73 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 75 , MOVE_HEAL_BELL), - LEVEL_UP_MOVE( 80 , MOVE_WISH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDragonaceLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1 , MOVE_TWISTER), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 15 , MOVE_TWISTER), - LEVEL_UP_MOVE( 22 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_SLAM), - LEVEL_UP_MOVE( 35 , MOVE_AGILITY), - LEVEL_UP_MOVE( 41 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 45 , MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE( 47 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 51 , MOVE_OUTRAGE), - LEVEL_UP_MOVE( 51 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 58 , MOVE_FLY), - LEVEL_UP_MOVE( 60 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 63 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 63 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 73 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 75 , MOVE_HEAL_BELL), - LEVEL_UP_MOVE( 80 , MOVE_WISH), - LEVEL_UP_END -}; - -static const struct LevelUpMove sDragontaleLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_LEER), - LEVEL_UP_MOVE( 1 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 1 , MOVE_TWISTER), - LEVEL_UP_MOVE( 8 , MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE( 15 , MOVE_TWISTER), - LEVEL_UP_MOVE( 22 , MOVE_DRAGON_RAGE), - LEVEL_UP_MOVE( 29 , MOVE_SLAM), - LEVEL_UP_MOVE( 35 , MOVE_AGILITY), - LEVEL_UP_MOVE( 41 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 45 , MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE( 47 , MOVE_WING_ATTACK), - LEVEL_UP_MOVE( 51 , MOVE_OUTRAGE), - LEVEL_UP_MOVE( 51 , MOVE_BELLY_DRUM), - LEVEL_UP_MOVE( 58 , MOVE_FLY), - LEVEL_UP_MOVE( 60 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 63 , MOVE_HYDRO_PUMP), - LEVEL_UP_MOVE( 63 , MOVE_FIRE_BLAST), - LEVEL_UP_MOVE( 73 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 75 , MOVE_HEAL_BELL), - LEVEL_UP_MOVE( 80 , MOVE_WISH), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MEWTWO -static const struct LevelUpMove sMewtwoLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 11 , MOVE_BARRIER), - LEVEL_UP_MOVE( 22 , MOVE_MIST), - LEVEL_UP_MOVE( 33 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_RECOVER), - LEVEL_UP_MOVE( 55 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 60 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 66 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 75 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 78 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 81 , MOVE_TRANSFORM), - LEVEL_UP_MOVE( 88 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 90 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 99 , MOVE_AMNESIA), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMewthreeLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 11 , MOVE_BARRIER), - LEVEL_UP_MOVE( 22 , MOVE_MIST), - LEVEL_UP_MOVE( 33 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_RECOVER), - LEVEL_UP_MOVE( 55 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 60 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 66 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 75 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 78 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 81 , MOVE_TRANSFORM), - LEVEL_UP_MOVE( 88 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 90 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 99 , MOVE_AMNESIA), - LEVEL_UP_END -}; - -static const struct LevelUpMove sMewfourLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_DISABLE), - LEVEL_UP_MOVE( 11 , MOVE_BARRIER), - LEVEL_UP_MOVE( 22 , MOVE_MIST), - LEVEL_UP_MOVE( 33 , MOVE_SWIFT), - LEVEL_UP_MOVE( 44 , MOVE_RECOVER), - LEVEL_UP_MOVE( 55 , MOVE_SAFEGUARD), - LEVEL_UP_MOVE( 60 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 66 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 75 , MOVE_DARK_PULSE), - LEVEL_UP_MOVE( 78 , MOVE_EXTRASENSORY), - LEVEL_UP_MOVE( 81 , MOVE_TRANSFORM), - LEVEL_UP_MOVE( 88 , MOVE_FUTURE_SIGHT), - LEVEL_UP_MOVE( 90 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 99 , MOVE_AMNESIA), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MEW -static const struct LevelUpMove sMewLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_TRANSFORM), - LEVEL_UP_MOVE( 10 , MOVE_TELEPORT), - LEVEL_UP_MOVE( 20 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 30 , MOVE_METRONOME), - LEVEL_UP_MOVE( 40 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 50 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_RECOVER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sNyuLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_TRANSFORM), - LEVEL_UP_MOVE( 10 , MOVE_TELEPORT), - LEVEL_UP_MOVE( 20 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 30 , MOVE_METRONOME), - LEVEL_UP_MOVE( 40 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 50 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_RECOVER), - LEVEL_UP_END -}; - -static const struct LevelUpMove sIotaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 10 , MOVE_TRANSFORM), - LEVEL_UP_MOVE( 10 , MOVE_TELEPORT), - LEVEL_UP_MOVE( 20 , MOVE_MEGA_PUNCH), - LEVEL_UP_MOVE( 30 , MOVE_METRONOME), - LEVEL_UP_MOVE( 40 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 50 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 60 , MOVE_RECOVER), - LEVEL_UP_MOVE( 75 , MOVE_PSYCHO_BOOST), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MISSINGNO1 -static const struct LevelUpMove sMissingno1LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BIND), - LEVEL_UP_MOVE( 1 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 5 , MOVE_TACKLE), - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 15 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 20 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 26 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 32 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 38 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_METRONOME), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 52 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 56 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 61 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 68 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 75 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MISSINGNO2 -static const struct LevelUpMove sMissingno2LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BIND), - LEVEL_UP_MOVE( 1 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 5 , MOVE_TACKLE), - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 15 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 20 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 26 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 32 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 38 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_METRONOME), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 52 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 56 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 61 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 68 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 75 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MISSINGNO3 -static const struct LevelUpMove sMissingno3LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BIND), - LEVEL_UP_MOVE( 1 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 5 , MOVE_TACKLE), - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 15 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 20 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 26 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 32 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 38 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_METRONOME), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 52 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 56 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 61 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 68 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 75 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MISSINGNO4 -static const struct LevelUpMove sMissingno4LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BIND), - LEVEL_UP_MOVE( 1 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 5 , MOVE_TACKLE), - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 15 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 20 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 26 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 32 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 38 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_METRONOME), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 52 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 56 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 61 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 68 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 75 , MOVE_EXPLOSION), - LEVEL_UP_END -}; - -#endif - -#if P_FAMILY_MISSINGNO5 -static const struct LevelUpMove sMissingno5LevelUpLearnset[] = { - LEVEL_UP_MOVE( 1 , MOVE_BIND), - LEVEL_UP_MOVE( 1 , MOVE_SKY_ATTACK), - LEVEL_UP_MOVE( 1 , MOVE_PAY_DAY), - LEVEL_UP_MOVE( 5 , MOVE_TACKLE), - LEVEL_UP_MOVE( 10 , MOVE_CONFUSION), - LEVEL_UP_MOVE( 15 , MOVE_CONVERSION), - LEVEL_UP_MOVE( 20 , MOVE_PSYWAVE), - LEVEL_UP_MOVE( 26 , MOVE_TRI_ATTACK), - LEVEL_UP_MOVE( 32 , MOVE_DOUBLE_TEAM), - LEVEL_UP_MOVE( 38 , MOVE_PSYCHIC), - LEVEL_UP_MOVE( 40 , MOVE_METRONOME), - LEVEL_UP_MOVE( 44 , MOVE_AIR_SLASH), - LEVEL_UP_MOVE( 48 , MOVE_ANCIENTPOWER), - LEVEL_UP_MOVE( 52 , MOVE_SHADOW_BALL), - LEVEL_UP_MOVE( 56 , MOVE_FLASH_CANNON), - LEVEL_UP_MOVE( 61 , MOVE_HYPER_BEAM), - LEVEL_UP_MOVE( 68 , MOVE_MIRROR_COAT), - LEVEL_UP_MOVE( 75 , MOVE_EXPLOSION), - LEVEL_UP_END -}; -#endif - diff --git a/pokeemerald-tools/test.h b/pokeemerald-tools/test.h new file mode 100644 index 0000000000..c2e280ff6f --- /dev/null +++ b/pokeemerald-tools/test.h @@ -0,0 +1,12095 @@ +static const u16 sNoneTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +#if P_FAMILY_BULBASAUR +static const u16 sBulbasaurTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sIvysaurTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVenusaurTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sEcosaurTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sTerarisaurTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSymbisaurTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER +static const u16 sCharmanderTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sCharmeleonTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sCharizardTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sChariguanaTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sCharianaTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_UNAVAILABLE, +}; +static const u16 sChariathanTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE +static const u16 sSquirtleTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sWartortleTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sBlastoiseTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sFerrapinTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sFortoiseTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sTurtilleryTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE +static const u16 sCaterpieTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +static const u16 sMetapodTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +static const u16 sButterfreeTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sButteflareTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPyrefreeTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sImpsectTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE +static const u16 sWeedleTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +static const u16 sKakunaTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +static const u16 sBeedrillTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sBeebruteTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sDronarchTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSepistrikeTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY +static const u16 sPidgeyTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sPidgeottoTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sPidgeotTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sPidgaeroTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sPidgeozoneTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sPidgephyrTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +static const u16 sRattataTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRaticateTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRattchetTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRattaruleTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW +static const u16 sSpearowTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sFearowTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sSneerowTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sOrnithowTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS +static const u16 sEkansTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sArbokTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sNohtypTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sAdnokanaTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +static const u16 sPikachuTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRaichuTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGorochuTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sStromachuTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +static const u16 sSandshrewTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSandslashTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSandslamTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sFerodilloTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN_F +static const u16 sNidoran_fTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidorinaTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidoqueenTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidoregalTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidoarchyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_NIDORAN_F + +#if P_FAMILY_NIDORAN_M +static const u16 sNidoran_mTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidorinoTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidokingTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidorulyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sNidominateTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_NIDORAN_M + +#if P_FAMILY_CLEFAIRY +static const u16 sClefairyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sClefableTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sClefaefaeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sClefanautTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +static const u16 sVulpixTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_UNAVAILABLE, +}; +static const u16 sNinetalesTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_UNAVAILABLE, +}; +static const u16 sSpiritalesTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_UNAVAILABLE, +}; +static const u16 sYokayubiTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +static const u16 sJigglypuffTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sWigglytuffTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGigglyhuffTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sBogglyfuffTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT +static const u16 sZubatTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SNATCH, + MOVE_UNAVAILABLE, +}; +static const u16 sGolbatTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SNATCH, + MOVE_UNAVAILABLE, +}; +static const u16 sCrobatTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SNATCH, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sPolabatTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SNATCH, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sVisibatTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SNATCH, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sHorribatTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SNATCH, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH +static const u16 sOddishTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGloomTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVileplumeTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRafflurkTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sConcorpsiaTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS +static const u16 sParasTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sParasectTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSectasiteTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sFungalithTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT +static const u16 sVenonatTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVenomothTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVenomenaTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVenomenonTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +static const u16 sDiglettTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sDugtrioTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sDugroupleTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sUnearthletTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sDiglenoidTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +static const u16 sMeowthTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPersianTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sFelankhTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPatraphinxTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SNATCH, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK +static const u16 sPsyduckTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sGolduckTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sGilduckTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPlatinupusTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY +static const u16 sMankeyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPrimeapeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGorillashTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sBonumbellTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +static const u16 sGrowlitheTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sArcanineTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSingeshaTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGuardianceTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG +static const u16 sPoliwagTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPoliwhirlTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPoliwrathTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPolitoesTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPoliwiseTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPoliathTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA +static const u16 sAbraTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sKadabraTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sAlakazamTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSimsalabimTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVohooduTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sTzarkartzTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const u16 sMachopTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMachokeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMachampTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMachulkTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sAbomachulkTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMachitanTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT +static const u16 sBellsproutTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sWeepinbellTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVictreebelTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMucktribelTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sCarnabellTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sDevloraTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL +static const u16 sTentacoolTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sTentacruelTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sTentacateTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sTentabomaTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +static const u16 sGeodudeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGravelerTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGolemTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSlagolemTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMoltremTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVolcanicolTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +static const u16 sPonytaTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sRapidashTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sCombustangTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sKnightmareTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +static const u16 sSlowpokeTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sSlowbroTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sSlowmateTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sSlowchumTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE +static const u16 sMagnemiteTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMagnetonTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMagnezoneTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMagnemeldTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMagnemastrTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +static const u16 sFarfetchdTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sForfowldTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sFowlntomTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO +static const u16 sDoduoTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sDodrioTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_DRAGON_CLAW, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sQuadodoTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +static const u16 sDodozenTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL +static const u16 sSeelTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sDewgongTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPrecipedTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sManatiiTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +static const u16 sGrimerTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_UNAVAILABLE, +}; +static const u16 sMukTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGunkTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSkumTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER +static const u16 sShellderTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sCloysterTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sAnenemyTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sGlaishellTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY +static const u16 sGastlyTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_UNAVAILABLE, +}; +static const u16 sHaunterTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_UNAVAILABLE, +}; +static const u16 sGengarTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGengoneTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPoltergastTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGrimmTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +static const u16 sOnixTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSteelixTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPlatnixTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sObsidianixTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sStalagmixTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE +static const u16 sDrowzeeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sHypnoTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sLullooTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSomnisoothTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY +static const u16 sKrabbyTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sKinglerTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sKraklawTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sTeklawnoTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +static const u16 sVoltorbTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sElectrodeTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sElectrodesTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sElectrodexTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sElectrodemTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE +static const u16 sExeggcuteTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sExeggutorTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sExeggityTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sExeggtricTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE +static const u16 sCuboneTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMarowakTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sOsselobberTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sWraiwrathTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONLEE +static const u16 sHitmonleeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sCleevoyantTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSpirituleeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_HITMONLEE + +#if P_FAMILY_HITMONCHAN +static const u16 sHitmonchanTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sEnchancedTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRadiachanTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_HITMONCHAN + +#if P_FAMILY_LICKITUNG +static const u16 sLickitungTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sLickilickyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sLickilollyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sLickilatoTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING +static const u16 sKoffingTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sWeezingTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sHeevingTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sChohkingTeachableLearnset[] = { + MOVE_MIMIC, + MOVE_EXPLOSION, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN +static const u16 sRhyhornTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRhydonTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRhyperiorTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRhymarkablTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRhylicTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRhybornTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +static const u16 sChanseyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sBlisseyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGogetteyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sLukkeyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sFortuniteyTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA +static const u16 sTangelaTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sTangrowthTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sTangatherTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sTangoliathTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sTangrappleTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SLUDGE_BOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGAKID +static const u16 sKangakidTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sKangaskhanTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sKangallousTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sKangarutalTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_KANGAKID + +#if P_FAMILY_HORSEA +static const u16 sHorseaTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sSeadraTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sKingdraTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sLordraTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sPinnadraTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN +static const u16 sGoldeenTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sSeakingTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sSearexTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sCapriseaTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU +static const u16 sStaryuTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_SURF, + MOVE_FLASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sStarmieTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_FLASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sStarusTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_FLASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sStarweTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_SKILL_SWAP, + MOVE_SURF, + MOVE_FLASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +static const u16 sMr_mimeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMr_jestTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMr_foolTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER +static const u16 sScytherTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sScizorTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sRazerTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sClaymorTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +static const u16 sJynxTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sJynkiesTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sJeepersTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SKILL_SWAP, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +static const u16 sElectabuzzTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sElectivireTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sElectivineTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sElectiwizzTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +static const u16 sMagmarTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMagmortarTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMagmoreTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMagmoltenTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +static const u16 sPinsirTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPinsiriorTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sAbyssirTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_TOXIC, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_ROCK_TOMB, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +static const u16 sTaurosTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sTauroxTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sOxenfreeTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP +static const u16 sMagikarpTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +static const u16 sGyaradosTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sHydradosTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sDracosmicTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sQuazarTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +static const u16 sLaprasTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sLochlassTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sNesseaTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO +static const u16 sDittoTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +static const u16 sMorphoTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +static const u16 sMetamorphoTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +static const u16 sEeveeTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_UNAVAILABLE, +}; +static const u16 sVaporeonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sRiveonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sBrineonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sJolteonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPlasmeonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sGalveonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sFlareonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_UNAVAILABLE, +}; +static const u16 sSmoldeonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_UNAVAILABLE, +}; +static const u16 sInferneonTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_RETURN, + MOVE_DIG, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_OVERHEAT, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON +static const u16 sPorygonTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPorygon2TeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPorygonzTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPorygonxTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_THIEF, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPorygonqTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_OVERHEAT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +static const u16 sPorygon2a4TeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_OVERHEAT, + MOVE_FLASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE +static const u16 sOmanyteTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sOmastarTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sOmapalTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sOmagusTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO +static const u16 sKabutoTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_UNAVAILABLE, +}; +static const u16 sKabutopsTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sKabutakTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sKabustionTeachableLearnset[] = { + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DIG, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SANDSTORM, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_CUT, + MOVE_SURF, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +static const u16 sAerodactylTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_DRAGON_CLAW, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMandiluftTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_DRAGON_CLAW, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sAmbalithicTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_DRAGON_CLAW, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +static const u16 sSnorlaxTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sActlaxTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +static const u16 sGrizzlaxTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +static const u16 sArticunoTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sSnowoneTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sFrostunusTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +static const u16 sZapdosTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sShockatooTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sVoltduoTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_FRUSTRATION, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_SANDSTORM, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_FLY, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +static const u16 sMoltresTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_OVERHEAT, + MOVE_FLY, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sIgnithreeTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_OVERHEAT, + MOVE_FLY, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sInferntriTeachableLearnset[] = { + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_SUBSTITUTE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_STEEL_WING, + MOVE_OVERHEAT, + MOVE_FLY, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI +static const u16 sDratiniTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_UNAVAILABLE, +}; +static const u16 sDragonairTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_WATER_PULSE, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_RETURN, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_FIRE_BLAST, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_SURF, + MOVE_WATERFALL, + MOVE_UNAVAILABLE, +}; +static const u16 sDragoniteTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sDragonierTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sDragonaceTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sDragontaleTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_MIMIC, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_STEEL_WING, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +static const u16 sMewtwoTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMewthreeTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +static const u16 sMewfourTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW +static const u16 sMewTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sNyuTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +static const u16 sIotaTeachableLearnset[] = { + MOVE_MEGA_PUNCH, + MOVE_SWORDS_DANCE, + MOVE_MEGA_KICK, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, + MOVE_COUNTER, + MOVE_SEISMIC_TOSS, + MOVE_MIMIC, + MOVE_METRONOME, + MOVE_SOFTBOILED, + MOVE_DREAM_EATER, + MOVE_THUNDER_WAVE, + MOVE_EXPLOSION, + MOVE_ROCK_SLIDE, + MOVE_SUBSTITUTE, + MOVE_FOCUS_PUNCH, + MOVE_DRAGON_CLAW, + MOVE_WATER_PULSE, + MOVE_CALM_MIND, + MOVE_ROAR, + MOVE_TOXIC, + MOVE_HAIL, + MOVE_BULK_UP, + MOVE_BULLET_SEED, + MOVE_HIDDEN_POWER, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_GIGA_DRAIN, + MOVE_SAFEGUARD, + MOVE_FRUSTRATION, + MOVE_SOLARBEAM, + MOVE_IRON_TAIL, + MOVE_THUNDERBOLT, + MOVE_THUNDER, + MOVE_EARTHQUAKE, + MOVE_RETURN, + MOVE_DIG, + MOVE_PSYCHIC, + MOVE_SHADOW_BALL, + MOVE_BRICK_BREAK, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SHOCK_WAVE, + MOVE_FLAMETHROWER, + MOVE_SLUDGE_BOMB, + MOVE_SANDSTORM, + MOVE_FIRE_BLAST, + MOVE_ROCK_TOMB, + MOVE_AERIAL_ACE, + MOVE_TORMENT, + MOVE_FACADE, + MOVE_SECRET_POWER, + MOVE_REST, + MOVE_ATTRACT, + MOVE_THIEF, + MOVE_STEEL_WING, + MOVE_SKILL_SWAP, + MOVE_SNATCH, + MOVE_OVERHEAT, + MOVE_CUT, + MOVE_FLY, + MOVE_SURF, + MOVE_STRENGTH, + MOVE_FLASH, + MOVE_ROCK_SMASH, + MOVE_WATERFALL, + MOVE_DIVE, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MEW + +#if P_FAMILY_MISSINGNO1 +static const u16 sMissingno1TeachableLearnset[] = { + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SECRET_POWER, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MISSINGNO1 + +#if P_FAMILY_MISSINGNO2 +static const u16 sMissingno2TeachableLearnset[] = { + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SECRET_POWER, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MISSINGNO2 + +#if P_FAMILY_MISSINGNO3 +static const u16 sMissingno3TeachableLearnset[] = { + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SECRET_POWER, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MISSINGNO3 + +#if P_FAMILY_MISSINGNO4 +static const u16 sMissingno4TeachableLearnset[] = { + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SECRET_POWER, + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_MISSINGNO4 + +#if P_FAMILY_MISSINGNO5 +static const u16 sMissingno5TeachableLearnset[] = { + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_PROTECT, + MOVE_DOUBLE_TEAM, + MOVE_REFLECT, + MOVE_SECRET_POWER, + MOVE_UNAVAILABLE, +};